<?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="disable_codegen">

  <title>DISABLE_CODEGEN Query Option</title>

  <titlealts audience="PDF">

    <navtitle>DISABLE_CODEGEN</navtitle>

  </titlealts>

  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="Troubleshooting"/>
      <data name="Category" value="Performance"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      The <codeph>DISABLE_CODEGEN</codeph> is a debug option, and it's used to work around any
      issues with Impala's runtime code generation. If a query fails with an <q>illegal
      instruction</q> or other hardware-specific message, try setting
      <codeph>DISABLE_CODEGEN=true</codeph> and running the query again. If the query succeeds
      only when the <codeph>DISABLE_CODEGEN</codeph> option is turned on, submit the problem to
      <keyword keyref="support_org"> </keyword> and include that detail in the problem report.
    </p>

    <p>
      Most queries will run significantly slower with <codeph>DISABLE_CODEGEN=true</codeph>.
    </p>

    <p>
      In Impala 2.10 and higher, the <codeph>DISABLE_CODEGEN_ROWS_THRESHOLD</codeph>
      optimisation automatically disables codegen for small queries because short-running
      queries may run faster without the overhead of codegen.
    </p>

    <p>
      The following values are supported:
      <ul>
        <li>
          <codeph>TRUE</codeph> or <codeph>1</codeph>: Disables codegen.
        </li>

        <li>
          <codeph>FALSE</codeph> or <codeph>0</codeph>: Enables codegen.
        </li>
      </ul>
    </p>

    <p>
      <b>Type:</b> Boolean
    </p>

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

  </conbody>

</concept>
