<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept rev="1.2.1" id="sync_ddl">

  <title>SYNC_DDL Query Option</title>
  <titlealts audience="PDF"><navtitle>SYNC_DDL</navtitle></titlealts>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="DDL"/>
      <data name="Category" value="SQL"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Data Analysts"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      <indexterm audience="hidden">SYNC_DDL query option</indexterm>
      When enabled, causes any DDL operation such as <codeph>CREATE TABLE</codeph> or <codeph>ALTER TABLE</codeph>
      to return only when the changes have been propagated to all other Impala nodes in the cluster by the Impala
      catalog service. That way, if you issue a subsequent <codeph>CONNECT</codeph> statement in
      <cmdname>impala-shell</cmdname> to connect to a different node in the cluster, you can be sure that other
      node will already recognize any added or changed tables. (The catalog service automatically broadcasts the
      DDL changes to all nodes automatically, but without this option there could be a period of inconsistency if
      you quickly switched to another node, such as by issuing a subsequent query through a load-balancing proxy.)
    </p>

    <p>
      Although <codeph>INSERT</codeph> is classified as a DML statement, when the <codeph>SYNC_DDL</codeph> option
      is enabled, <codeph>INSERT</codeph> statements also delay their completion until all the underlying data and
      metadata changes are propagated to all Impala nodes. Internally, Impala inserts have similarities with DDL
      statements in traditional database systems, because they create metadata needed to track HDFS block locations
      for new files and they potentially add new partitions to partitioned tables.
    </p>

    <note>
      Because this option can introduce a delay after each write operation, if you are running a sequence of
      <codeph>CREATE DATABASE</codeph>, <codeph>CREATE TABLE</codeph>, <codeph>ALTER TABLE</codeph>,
      <codeph>INSERT</codeph>, and similar statements within a setup script, to minimize the overall delay you can
      enable the <codeph>SYNC_DDL</codeph> query option only near the end, before the final DDL statement.
    </note>

    <p conref="../shared/impala_common.xml#common/type_boolean"/>
    <p conref="../shared/impala_common.xml#common/default_false_0"/>

    <!-- To do:
      Example could be useful here.
    -->

    <p conref="../shared/impala_common.xml#common/related_info"/>
    <p>
      <xref href="impala_ddl.xml#ddl"/>
    </p>

  </conbody>
</concept>
