Files
impala/docs/topics/impala_drop_function.xml
Jim Apple 3be0f122a5 IMPALA-3398: Add docs to main Impala branch.
These are refugees from doc_prototype. They can be rendered with the
DITA Open Toolkit version 2.3.3 by:

/tmp/dita-ot-2.3.3/bin/dita \
  -i impala.ditamap \
  -f html5 \
  -o $(mktemp -d) \
  -filter impala_html.ditaval

Change-Id: I8861e99adc446f659a04463ca78c79200669484f
Reviewed-on: http://gerrit.cloudera.org:8080/5014
Reviewed-by: John Russell <jrussell@cloudera.com>
Tested-by: John Russell <jrussell@cloudera.com>
2016-11-17 22:38:44 +00:00

128 lines
5.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept rev="1.2" id="drop_function">
<title>DROP FUNCTION Statement</title>
<titlealts audience="PDF"><navtitle>DROP FUNCTION</navtitle></titlealts>
<prolog>
<metadata>
<data name="Category" value="Impala"/>
<data name="Category" value="SQL"/>
<data name="Category" value="DDL"/>
<data name="Category" value="Impala Functions"/>
<data name="Category" value="UDFs"/>
<data name="Category" value="Schemas"/>
<data name="Category" value="Developers"/>
<data name="Category" value="Data Analysts"/>
</metadata>
</prolog>
<conbody>
<p>
<indexterm audience="Cloudera">DROP FUNCTION statement</indexterm>
Removes a user-defined function (UDF), so that it is not available for execution during Impala
<codeph>SELECT</codeph> or <codeph>INSERT</codeph> operations.
</p>
<p conref="../shared/impala_common.xml#common/syntax_blurb"/>
<p>
To drop C++ UDFs and UDAs:
</p>
<codeblock>DROP [AGGREGATE] FUNCTION [IF EXISTS] [<varname>db_name</varname>.]<varname>function_name</varname>(<varname>type</varname>[, <varname>type</varname>...])</codeblock>
<note rev="2.5.0 IMPALA-2843 CDH-39148">
<p rev="2.5.0 IMPALA-2843 CDH-39148">
The preceding syntax, which includes the function signature, also applies to Java UDFs that were created
using the corresponding <codeph>CREATE FUNCTION</codeph> syntax that includes the argument and return types.
After upgrading to <keyword keyref="impala25_full"/> or higher, consider re-creating all Java UDFs with the
<codeph>CREATE FUNCTION</codeph> syntax that does not include the function signature. Java UDFs created this
way are now persisted in the metastore database and do not need to be re-created after an Impala restart.
</p>
</note>
<p rev="2.5.0 IMPALA-2843 CDH-39148">
To drop Java UDFs (created using the <codeph>CREATE FUNCTION</codeph> syntax with no function signature):
</p>
<codeblock rev="2.5.0">DROP FUNCTION [IF EXISTS] [<varname>db_name</varname>.]<varname>function_name</varname></codeblock>
<!--
Examples:
CREATE FUNCTION IF NOT EXISTS foo location '/path/to/jar' SYMBOL='TestUdf';
CREATE FUNCTION bar location '/path/to/jar' SYMBOL='TestUdf2';
DROP FUNCTION foo;
DROP FUNCTION IF EXISTS bar;
-->
<p conref="../shared/impala_common.xml#common/ddl_blurb"/>
<p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
<p>
Because the same function name could be overloaded with different argument signatures, you specify the
argument types to identify the exact function to drop.
</p>
<p conref="../shared/impala_common.xml#common/restrictions_blurb"/>
<p conref="../shared/impala_common.xml#common/udf_persistence_restriction"/>
<p conref="../shared/impala_common.xml#common/cancel_blurb_no"/>
<p conref="../shared/impala_common.xml#common/permissions_blurb"/>
<p rev="CDH-19187">
The user ID that the <cmdname>impalad</cmdname> daemon runs under,
typically the <codeph>impala</codeph> user, does not need any
particular HDFS permissions to perform this statement.
All read and write operations are on the metastore database,
not HDFS files and directories.
</p>
<p conref="../shared/impala_common.xml#common/example_blurb"/>
<p rev="2.5.0 IMPALA-2843 CDH-39148">
The following example shows how to drop Java functions created with the signatureless
<codeph>CREATE FUNCTION</codeph> syntax in <keyword keyref="impala25_full"/> and higher.
Issuing <codeph>DROP FUNCTION <varname>function_name</varname></codeph> removes all the
overloaded functions under that name.
(See <xref href="impala_create_function.xml#create_function"/> for a longer example
showing how to set up such functions in the first place.)
</p>
<codeblock rev="2.5.0 IMPALA-2843 CDH-39148">
create function my_func location '/user/impala/udfs/udf-examples-cdh570.jar'
symbol='com.cloudera.impala.TestUdf';
show functions;
+-------------+---------------------------------------+-------------+---------------+
| return type | signature | binary type | is persistent |
+-------------+---------------------------------------+-------------+---------------+
| BIGINT | my_func(BIGINT) | JAVA | true |
| BOOLEAN | my_func(BOOLEAN) | JAVA | true |
| BOOLEAN | my_func(BOOLEAN, BOOLEAN) | JAVA | true |
...
| BIGINT | testudf(BIGINT) | JAVA | true |
| BOOLEAN | testudf(BOOLEAN) | JAVA | true |
| BOOLEAN | testudf(BOOLEAN, BOOLEAN) | JAVA | true |
...
drop function my_func;
show functions;
+-------------+---------------------------------------+-------------+---------------+
| return type | signature | binary type | is persistent |
+-------------+---------------------------------------+-------------+---------------+
| BIGINT | testudf(BIGINT) | JAVA | true |
| BOOLEAN | testudf(BOOLEAN) | JAVA | true |
| BOOLEAN | testudf(BOOLEAN, BOOLEAN) | JAVA | true |
...
</codeblock>
<p conref="../shared/impala_common.xml#common/related_info"/>
<p>
<xref href="impala_udf.xml#udfs"/>, <xref href="impala_create_function.xml#create_function"/>
</p>
</conbody>
</concept>