<?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 id="query_options">

  <title>Query Options for the SET Statement</title>
  <prolog>
    <metadata>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="Impala"/>
      <data name="Category" value="impala-shell"/>
      <data name="Category" value="SQL"/>
      <data name="Category" value="Querying"/>
      <data name="Category" value="Configuring"/>
      <data name="Category" value="Data Analysts"/>
      <data name="Category" value="Developers"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      You can specify the following options using the <codeph>SET</codeph> statement, and those settings affect all
      queries issued from that session.
    </p>

    <p>
      Some query options are useful in day-to-day operations for improving usability, performance, or flexibility.
    </p>

    <p>
      Other query options control special-purpose aspects of Impala operation and are intended primarily for
      advanced debugging or troubleshooting.
    </p>

    <p>
      Options with Boolean parameters can be set to 1 or <codeph>true</codeph> to enable, or 0 or <codeph>false</codeph>
      to turn off.
    </p>

    <note rev="2.0.0">
      <p rev="2.0.0">
        In Impala 2.0 and later, you can set query options directly through the JDBC and ODBC interfaces by using the
        <codeph>SET</codeph> statement. Formerly, <codeph>SET</codeph> was only available as a command within the
        <cmdname>impala-shell</cmdname> interpreter.
      </p>
      <p rev="2.11.0">
        In <keyword keyref="impala211_full"/> and later, you can set query options for an <cmdname>impala-shell</cmdname> session
        by specifying one or more command-line arguments of the form
        <codeph>--query_option=<varname>option</varname>=<varname>value</varname></codeph>.
        See <xref keyref="shell_options"/> for details.
      </p>
    </note>

<!-- This is the list including defaults from the pre-release 1.2 impala-shell:
        ABORT_ON_DEFAULT_LIMIT_EXCEEDED: 0
        ABORT_ON_ERROR: 0
        ALLOW_UNSUPPORTED_FORMATS: 0
        BATCH_SIZE: 0
        DEBUG_ACTION:
        DEFAULT_ORDER_BY_LIMIT: -1
        DISABLE_CODEGEN: 0
        HBASE_CACHE_BLOCKS: 0
        HBASE_CACHING: 0
        MAX_ERRORS: 0
        MAX_IO_BUFFERS: 0
        MAX_SCAN_RANGE_LENGTH: 0
        MEM_LIMIT: 0
        NUM_NODES: 0
        NUM_SCANNER_THREADS: 0
        PARQUET_COMPRESSION_CODEC: SNAPPY
        PARQUET_FILE_SIZE: 0
        SUPPORT_START_OVER: false
-->

    <p outputclass="toc"/>

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

    <p>
      <xref href="impala_set.xml#set"/>
    </p>
  </conbody>
</concept>
