<?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="runtime_filter_wait_time_ms" rev="2.5.0">

  <title>RUNTIME_FILTER_WAIT_TIME_MS Query Option (<keyword keyref="impala25"/> or higher only)</title>
  <titlealts audience="PDF"><navtitle>RUNTIME_FILTER_WAIT_TIME_MS</navtitle></titlealts>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="Performance"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Data Analysts"/>
    </metadata>
  </prolog>

  <conbody>

    <p rev="2.5.0">
      <indexterm audience="hidden">RUNTIME_FILTER_WAIT_TIME_MS query option</indexterm>
      The <codeph>RUNTIME_FILTER_WAIT_TIME_MS</codeph> query option
      adjusts the settings for the runtime filtering feature.
      It specifies a time in milliseconds that each scan node waits for
      runtime filters to be produced by other plan fragments.
    </p>

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

    <p>
      <b>Default:</b> 0 (meaning use the value from the corresponding <cmdname>impalad</cmdname> startup option)
    </p>

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

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

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

    <p conref="../shared/impala_common.xml#common/related_info"/>
    <p>
      <xref href="impala_runtime_filtering.xml"/>,
      <xref href="impala_runtime_filter_mode.xml#runtime_filter_mode"/>
      <!-- , <xref href="impala_partitioning.xml#dynamic_partition_pruning"/> -->
    </p>

  </conbody>
</concept>
