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

  <title>REFRESH FUNCTIONS Statement</title>

  <titlealts audience="PDF">

    <navtitle>REFRESH FUNCTIONS</navtitle>

  </titlealts>

  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="SQL"/>
      <data name="Category" value="DDL"/>
      <data name="Category" value="Tables"/>
      <data name="Category" value="Hive"/>
      <data name="Category" value="Metastore"/>
      <data name="Category" value="ETL"/>
      <data name="Category" value="Ingest"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Data Analysts"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      In <keyword keyref="impala29_full"/> and higher, you can run the <codeph>REFRESH
      FUNCTIONS</codeph> statement to refresh the user-defined functions (UDFs) created outside
      of Impala. For example, you can add Java-based UDFs to the metastore database through the
      Hive <codeph>CREATE FUNCTION</codeph> statements and make those UDFs visible to Impala at
      the database level by subsequently running <codeph>REFRESH FUNCTIONS</codeph>.
    </p>

    <p>
      The <codeph>REFRESH FUNCTIONS</codeph> statement is only required if you create or modify
      UDFs from outside of Impala. Updated metadata, as a result of running <codeph>REFRESH
      FUNCTIONS</codeph>, is broadcast to all Impala coordinators.
    </p>

    <p>
      Once issued, the <codeph>REFRESH FUNCTIONS</codeph> statement cannot be cancelled.
    </p>

    <p conref="../shared/impala_common.xml#common/syntax_blurb">
      <ph rev="2.9.0 IMPALA-5259"> <codeph>REFRESH FUNCTIONS <varname>db_name</varname></codeph>
      </ph>
    </p>

    <p>
      <ph rev="2.9.0 IMPALA-5259"><codeph>REFRESH FUNCTIONS</codeph>
      <varname>db_name</varname></ph>
    </p>

  </conbody>

</concept>
