forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
131 lines
31 KiB
HTML
131 lines
31 KiB
HTML
<a name="EN-US_TOPIC_0000001510520973"></a><a name="EN-US_TOPIC_0000001510520973"></a>
|
|
|
|
<h1 class="topictitle1">ALTER FUNCTION</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001510520973__s0213cde7e4d84cf2aff83d6897cb4160"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001510520973__aef5d0abc6f274e17803b890a3b4445a4">Modifies the attributes of a customized function.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001510520973__s29e588dc38964f9a9933c5bebd443033"><h4 class="sectiontitle">Precautions</h4><p id="EN-US_TOPIC_0000001510520973__p21666797145042">Only the owner of a function or a system administrator can run this statement. The user who wants to change the owner of a function must be a direct or indirect member of the new owning role. If a function involves operations on temporary tables, the <strong id="EN-US_TOPIC_0000001510520973__b1817181193715">ALTER FUNCTION</strong> cannot be used.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001510520973__s6e9c663e91684282b6f7697549b3e2f8"><h4 class="sectiontitle">Syntax</h4><ul id="EN-US_TOPIC_0000001510520973__ude82242444ad4d8c9b91b9c8cb7c33fc"><li id="EN-US_TOPIC_0000001510520973__ld4ace1a4b6694dbd9c34b1846b7c7786">Modify the additional parameter of the customized function.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__sefe31fbc90fb40de90df06912cae5b67"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">function_name</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argmode</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argname</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">argtype</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="n">action</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">RESTRICT</span><span class="w"> </span><span class="p">];</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001510520973__ab4621c803f174190ae843c657146696d">The syntax of the <strong id="EN-US_TOPIC_0000001510520973__b1279325773313">action</strong> clause is as follows:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__s796b61c9112a47e79d78a544591208ad"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><span class="err">{</span><span class="k">CALLED</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">INPUT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">RETURNS</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">INPUT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">STRICT</span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="k">IMMUTABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">STABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">VOLATILE</span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">SHIPPABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="n">SHIPPABLE</span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="k">NOT</span><span class="w"> </span><span class="n">FENCED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">FENCED</span><span class="err">}</span>
|
|
<span class="w"> </span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">LEAKPROOF</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">EXTERNAL</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">SECURITY</span><span class="w"> </span><span class="k">INVOKER</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">EXTERNAL</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">SECURITY</span><span class="w"> </span><span class="k">DEFINER</span><span class="w"> </span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">AUTHID</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">DEFINER</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">CURRENT_USER</span><span class="w"> </span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">COST</span><span class="w"> </span><span class="n">execution_cost</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ROWS</span><span class="w"> </span><span class="n">result_rows</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">configuration_parameter</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="err">}</span><span class="o">|</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">CURRENT</span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">RESET</span><span class="w"> </span><span class="err">{</span><span class="n">configuration_parameter</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ALL</span><span class="err">}</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l2fb90f492c5740158af6e305f1865c65">Change the name of a user-defined function. The new function name can be prefixed with the name of the schema where the original function is located. The schema name cannot be changed at the same time.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__s128502a3a38a4dd492418e8db8118daf"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">funname</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argmode</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argname</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">argtype</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">new_name</span><span class="p">;</span>
|
|
<span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">funname</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argmode</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argname</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">argtype</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="k">schema</span><span class="p">.</span><span class="n">new_name</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l833620e488254177ba498fd25a468504">Modify the owner of the customized function.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__s6a99f639f9b54f53ad172d871e30371a"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">funname</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argmode</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argname</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">argtype</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">OWNER</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">new_owner</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__lc82ed64fc791417db5ccbfae28210a1a">Modify the schema of the customized function.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__s9b6407b967524a17aed2166e5b0d238c"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">funname</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argmode</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argname</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">argtype</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="k">SCHEMA</span><span class="w"> </span><span class="n">new_schema</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001510520973__s1d8efaf4663848839cccbe6992e74a57"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001510520973__u81c4e8b7351b4779a41d6c031cbb9486"><li id="EN-US_TOPIC_0000001510520973__le4836f02ff8d44138ccbfb9453e3880d"><strong id="EN-US_TOPIC_0000001510520973__ae263799f45c74592b446940bba891a4f">function_name</strong><p id="EN-US_TOPIC_0000001510520973__ab04fb4f83e134b4082b8daf6495fa626">Specifies the function name to be modified.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a3d1677a2f3e34cc79f59c77d1a719c42">Value range: An existing function name.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l7fd84b6669964ff68b78d99b8ad9c231"><strong id="EN-US_TOPIC_0000001510520973__a404a9b8728f643e2835495d2be8b300f">argmode</strong><p id="EN-US_TOPIC_0000001510520973__a780fc2fa12194385a8fc47717764a660">Specifies whether a parameter is an input or output parameter.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a84055016b9544df38926b6cbdf376997">Value range: <strong id="EN-US_TOPIC_0000001510520973__b8236467103734">IN</strong>, <strong id="EN-US_TOPIC_0000001510520973__b63174119103734">OUT</strong>, <strong id="EN-US_TOPIC_0000001510520973__b16830015103734">IN OUT</strong></p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l15f483275cb941619257e41f9d55e810"><strong id="EN-US_TOPIC_0000001510520973__a37c0e604117040eea868fdf53c9192a6">argname</strong><p id="EN-US_TOPIC_0000001510520973__a7560315719cf4f34afee789f6f9601a4">Indicates the parameter name.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a576a2c80b4334a9c8d6051a4816a5bf0">Value range: A string. It must comply with the naming convention.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l92bd41f1e2504eb99ca8a94f436be4b7"><strong id="EN-US_TOPIC_0000001510520973__a5b20aa7e4efa4a3d8716ee75dd9c4169">argtype</strong><p id="EN-US_TOPIC_0000001510520973__aefd88ce46b6f446785f87b2e7ee7e43f">Specifies the parameter type.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__adb055c3fb9804cab855a0b9702cf7122">Value range: A valid type. For details, see <a href="dws_06_0008.html">Data Types</a>.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l8db5ba3f06dc4c8195cd2139a8045f73"><strong id="EN-US_TOPIC_0000001510520973__a290e7f00988840d4a031ff510ecb773a">CALLED ON NULL INPUT</strong><p id="EN-US_TOPIC_0000001510520973__a96bae6cb981a40ca9a829fcd89702b6b">Declares that some parameters of the function can be invoked in normal mode if the parameter values are <strong id="EN-US_TOPIC_0000001510520973__b140546266017272">NULL</strong>. By default, the usage is the same as specifying the parameters.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l81ba887b59d546cfaac0a2cb67c3f92f"><strong id="EN-US_TOPIC_0000001510520973__ad8aa0e58c1fe4c85a275358d48e293ff">RETURNS NULL ON NULL INPUT</strong><p id="EN-US_TOPIC_0000001510520973__aa1fb4219ebd947e0a8fa8fe38d8d195b"><strong id="EN-US_TOPIC_0000001510520973__a15e228e74cb2446c8d8110a33e7bc0d9">STRICT</strong></p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a4178d62204994b1aad7b596832fc56da">Indicates that the function always returns <strong id="EN-US_TOPIC_0000001510520973__b595248359421">NULL</strong> whenever any of its arguments are <strong id="EN-US_TOPIC_0000001510520973__b659614749421">NULL</strong>. If this parameter is specified, the function is not executed when there are null arguments; instead a null result is assumed automatically.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a914b6f3c60d2410daf1bb5a742e4292f">The usage of <strong id="EN-US_TOPIC_0000001510520973__b544294742115">RETURNS NULL ON NULL INPUT</strong> is the same as that of <strong id="EN-US_TOPIC_0000001510520973__b8443847142116">STRICT</strong>.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l46028f7c3d714aa6888c8b5c4a531753"><strong id="EN-US_TOPIC_0000001510520973__abacbf523363c42a580cb42fb4bebe0ac">IMMUTABLE</strong><p id="EN-US_TOPIC_0000001510520973__a3256390bcf6b42b9bb878dabc40cf26f">Indicates that the function always returns the same result if the parameter values are the same.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l2068b0ea17624c9b81f959aaaa38c1f4"><strong id="EN-US_TOPIC_0000001510520973__aba2b09f5864642c88091bee7d7b56984">STABLE</strong><p id="EN-US_TOPIC_0000001510520973__a937add02f9ff42788bb7faea9408e15c">Indicates that the function cannot modify the database, and that within a single table scan it will consistently return the same result for the same parameter values, but that its result varies by SQL statements.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__lbe364bf39fb644e8b2748cbd871a9917"><strong id="EN-US_TOPIC_0000001510520973__ad4549a384f3e46aca3149a6b89c32ed6">VOLATILE</strong><p id="EN-US_TOPIC_0000001510520973__aad0926cbddec4cf7b9147fbfad091552">Indicates that the function value can change in one table scanning and no optimization is performed.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__li11812123132615"><strong id="EN-US_TOPIC_0000001510520973__b168441114182618">SHIPPABLE</strong><p id="EN-US_TOPIC_0000001510520973__p1768723112312"><strong id="EN-US_TOPIC_0000001510520973__b410311328198">NOT SHIPPABLE</strong></p>
|
|
<p id="EN-US_TOPIC_0000001510520973__p2010314322198">Indicates whether the function can be pushed down to DNs for execution.</p>
|
|
<ul id="EN-US_TOPIC_0000001510520973__ul1680264292310"><li id="EN-US_TOPIC_0000001510520973__li2905541202314">Functions of the IMMUTABLE type can always be pushed down to the DNs.</li><li id="EN-US_TOPIC_0000001510520973__li3907134113235">Functions of the STABLE or VOLATILE type can be pushed down to DNs only if their attribute is <strong id="EN-US_TOPIC_0000001510520973__b86569481074">SHIPPABLE</strong>.</li></ul>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l6cd380b6005d4032b10f3f060f0825f4"><strong id="EN-US_TOPIC_0000001510520973__a4e7e94720584478eb8ce2a7578ec2e72">LEAKPROOF</strong><p id="EN-US_TOPIC_0000001510520973__aec107291a1cf48ef8d373e83f9dd5580">Indicates that the function has no side effect and specifies that the parameter includes only the returned value. <strong id="EN-US_TOPIC_0000001510520973__b1944463351418">LEAKPROOF</strong> can be set only by the system administrator.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__lf3b07dc713b54914a5792ac37194a5a0">(Optional) <strong id="EN-US_TOPIC_0000001510520973__b82014618351">EXTERNAL</strong><p id="EN-US_TOPIC_0000001510520973__a881aa3a13193412f8a56ffb9b3017a90">The objective is to be compatible with SQL. This feature applies to all functions, including external functions.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l1394f86001004c7ebeb6ef34c8c48ceb"><strong id="EN-US_TOPIC_0000001510520973__a345e80c3cd2a4a05a51bdaa5e9c5fa01">SECURITY INVOKER</strong><p id="EN-US_TOPIC_0000001510520973__ae7b192e2386042c183e267613c5a40b5"><strong id="EN-US_TOPIC_0000001510520973__ade749d88dce94428b9dbc3cc11556d5c">AUTHID CURREN_USER</strong></p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a253a069e13404bf99f3e2d324eba57a1">Declares that the function will be executed according to the permission of the user that invokes it. By default, the usage is the same as specifying the parameters.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a73ff151a00134bbc8460979abe9ef300"><strong id="EN-US_TOPIC_0000001510520973__b66388649421">SECURITY INVOKER</strong> and <strong id="EN-US_TOPIC_0000001510520973__b597497839421">AUTHID CURREN_USER</strong> have the same functions.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l26d38a9d1cd34d629383556559a0a60e"><strong id="EN-US_TOPIC_0000001510520973__aceb6e625a0614153a6d555b071ddb88a">SECURITY DEFINER</strong><p id="EN-US_TOPIC_0000001510520973__a5534db2c0eff48ccb2af5ec27258567e"><strong id="EN-US_TOPIC_0000001510520973__a40b7f179899e4e00807120ba5a15d4d0">AUTHID DEFINER</strong></p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a697cffd27b444526a6c6ef25b7fb7a5f">Specifies that the function is to be executed with the permissions of the user that created it.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a089542ceb31747df8a86eeec5be69838">The usage of <strong id="EN-US_TOPIC_0000001510520973__b5296950093526">AUTHID DEFINER</strong> is the same as that of <strong id="EN-US_TOPIC_0000001510520973__b696345793526">SECURITY DEFINER</strong>.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__lf05c3b77fb844dc681a6996e9cd091ce"><strong id="EN-US_TOPIC_0000001510520973__a93ad5ca02386426da98a8a7688a0e6a6">COST execution_cost</strong><p id="EN-US_TOPIC_0000001510520973__a2215fb6836f44c2587f1a0bd3f034540">A positive number giving the estimated execution cost for the function.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a897893e8ae0d41ca940e937eb3cb98c0">The unit of <strong id="EN-US_TOPIC_0000001510520973__b1801909104051">execution_cost</strong> is cpu_operator_cost.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a0f1433740c5944ff97a42bb6a24197c8">Value range: A positive number.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l2694035eb7514b0b8674a1a7499a9250"><strong id="EN-US_TOPIC_0000001510520973__a4e35a02a674648b1be283f9307bd6561">ROWS result_rows</strong><p id="EN-US_TOPIC_0000001510520973__a8cdca4f2d1ea4b44802fee7f8891090d">Estimates the number of rows returned by the function. This is only allowed when the function is declared to return a set.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__ad5df332414ba4021bf2029263a4fbdae">Value range: A positive number. The default is 1000 rows.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__lf7486188b82746b6b8b1bd212cebaeb7"><strong id="EN-US_TOPIC_0000001510520973__ad8efc8ddfc75407a88e0c50672d83752">configuration_parameter</strong><ul id="EN-US_TOPIC_0000001510520973__u1fc7180c8d2148449531c2f40cb31138"><li id="EN-US_TOPIC_0000001510520973__l43a2f2f982ec4a35a76f5605622be082"><strong id="EN-US_TOPIC_0000001510520973__a8e795454b0f54f84969d25cb02363f2d">value</strong><p id="EN-US_TOPIC_0000001510520973__a6859d59e07ad48b19d51ef6bcc76ecb7">Sets a specified database session parameter to a specified value. If the value is <strong id="EN-US_TOPIC_0000001510520973__b1147211475212">DEFAULT</strong> or <strong id="EN-US_TOPIC_0000001510520973__b104721747142111">RESET</strong>, the default setting is used in the new session. <strong id="EN-US_TOPIC_0000001510520973__b1747244732112">OFF</strong> closes the setting.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a83769e27894b44979b9c7a8a4f7331f2">Value range: A string</p>
|
|
<ul id="EN-US_TOPIC_0000001510520973__u2b828e9e55d248f9a49cb42967f49d2e"><li id="EN-US_TOPIC_0000001510520973__le2103c4f820345d5ae9c1814c38314d1">DEFAULT</li><li id="EN-US_TOPIC_0000001510520973__l712e13afda8f4b139264c2062033808a">OFF</li><li id="EN-US_TOPIC_0000001510520973__lf4253174167a48dda063288370f7708a">RESET</li></ul>
|
|
<p id="EN-US_TOPIC_0000001510520973__ab917eed86710460d9f7888a521a5f32f">Specifies the default value.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l4e340b2259f1405fbc611311dc307fa7"><strong id="EN-US_TOPIC_0000001510520973__a7ff05db235c943eb9da0e210dfad4b35">from current</strong><p id="EN-US_TOPIC_0000001510520973__af5fdc49c70d34b96baf07cef31c1a4fa">Uses the value of <strong id="EN-US_TOPIC_0000001510520973__b842352706205857">configuration_parameter</strong> of the current session.</p>
|
|
</li></ul>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l7ca95b227f664cc5b0bec5f1a5a67aa5"><strong id="EN-US_TOPIC_0000001510520973__a0bbe489c2a0043ca994f9eb7fada8a9b">new_name</strong><p id="EN-US_TOPIC_0000001510520973__a35c8a73e113b468886e3f33fde20b1af">Specifies the new name of a function. To change a function's schema, you must also have the CREATE permission on the new schema.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a0f72bbf8a285413fa2d76d0bff80ba6a">Value range: A string. It must comply with the naming convention.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l960c21406590416b80435ef2a6e07689"><strong id="EN-US_TOPIC_0000001510520973__ad39f35f1fcf24989b988141bf84849dd">new_owner</strong><p id="EN-US_TOPIC_0000001510520973__a6120bc9f14654797a6595c90261c73bb">Specifies the new owner of a function. To alter the owner, the new owner must also be a direct or indirect member of the new owning role, and that role must have CREATE permission on the function's schema.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a0f9272214b0f49bbb338dc8630bbd1ee">Value range: Existing user roles.</p>
|
|
</li><li id="EN-US_TOPIC_0000001510520973__l1059beee8cd4453299332e2948129ce3"><strong id="EN-US_TOPIC_0000001510520973__a664081e4738b42cf87c224c72e1b4a48">new_schema</strong><p id="EN-US_TOPIC_0000001510520973__a0faf06028f4a4b9ea3bd76e7145f576e">Specifies the new schema of a function.</p>
|
|
<p id="EN-US_TOPIC_0000001510520973__a41ca645f0d894bcda1274a23a93dfe3f">Value range: Existing schemas.</p>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001510520973__s3e71d9f4c2284f9ea887ad45270a002d"><h4 class="sectiontitle">Examples</h4><p id="EN-US_TOPIC_0000001510520973__p19199151184913">Alter the execution rule of function add to IMMUTABLE (that is, the same result is returned if the parameter remains unchanged):</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__screen141231842185116"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_add_sql2</span><span class="p">(</span><span class="nb">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">)</span><span class="w"> </span><span class="k">IMMUTABLE</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001510520973__p154791658204919">Change the name of the <strong id="EN-US_TOPIC_0000001510520973__b83858546333638">add</strong> function to <strong id="EN-US_TOPIC_0000001510520973__b113107583833638">add_two_number</strong>.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__screen13934125575116"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">func_add_sql2</span><span class="p">(</span><span class="nb">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">)</span><span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">add_two_number</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001510520973__p74656519133">Change the name of the function <strong id="EN-US_TOPIC_0000001510520973__b2556258142420">add</strong> in tpcds to <strong id="EN-US_TOPIC_0000001510520973__b357817516252">add_two_number</strong>, and prefix it with the original schema name.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__screen1053992610138"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">func_add_sql2</span><span class="p">(</span><span class="nb">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">)</span><span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">add_two_number</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001510520973__p2352143325013">Change the owner of function <strong id="EN-US_TOPIC_0000001510520973__b173892713033638">add</strong> to <strong id="EN-US_TOPIC_0000001510520973__b46599463233638"><span id="EN-US_TOPIC_0000001510520973__text19847144565017">dbadmin</span></strong>:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510520973__screen1527112418525"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">add_two_number</span><span class="p">(</span><span class="nb">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">)</span><span class="w"> </span><span class="k">OWNER</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">dbadmin</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001510520973__sfd1ea78952c04793822a35b4e92b3b63"><h4 class="sectiontitle">Helpful Links</h4><p id="EN-US_TOPIC_0000001510520973__a95e553d97d0b448aa7aaefbcbbb6cc43"><a href="dws_06_0163.html">CREATE FUNCTION</a>, <a href="dws_06_0193.html">DROP FUNCTION</a></p>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0118.html">DDL Syntax</a></div>
|
|
</div>
|
|
</div>
|
|
|