Home Explore Blog CI



postgresql

2nd chunk of `doc/src/sgml/ref/create_language.sgml`
5ab8aa4c8659d79f4b35b590ee563c5d30eebb7fa07ad7170000000100000bb1
 <listitem>
      <para><literal>TRUSTED</literal> specifies that the language does
       not grant access to data that the user would not otherwise
       have.  If this key word is omitted
       when registering the language, only users with the
       <productname>PostgreSQL</productname> superuser privilege can
       use this language to create new functions.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term><literal>PROCEDURAL</literal></term>

     <listitem>
      <para>
       This is a noise word.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term><replaceable class="parameter">name</replaceable></term>

     <listitem>
      <para>
       The name of the new procedural language.
       The name must be unique among the languages in the database.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term><literal>HANDLER</literal> <replaceable class="parameter">call_handler</replaceable></term>

     <listitem>
      <para><replaceable class="parameter">call_handler</replaceable> is
       the name of a previously registered function that will be
       called to execute the procedural language's functions.  The call
       handler for a procedural language must be written in a compiled
       language such as C with version 1 call convention and
       registered with <productname>PostgreSQL</productname> as a
       function taking no arguments and returning the
       <type>language_handler</type> type, a placeholder type that is
       simply used to identify the function as a call handler.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term><literal>INLINE</literal> <replaceable class="parameter">inline_handler</replaceable></term>

     <listitem>
      <para><replaceable class="parameter">inline_handler</replaceable> is the
       name of a previously registered function that will be called
       to execute an anonymous code block
       (<link linkend="sql-do"><command>DO</command></link> command)
       in this language.
       If no <replaceable class="parameter">inline_handler</replaceable>
       function is specified, the language does not support anonymous code
       blocks.
       The handler function must take one argument of
       type <type>internal</type>, which will be the <command>DO</command> command's
       internal representation, and it will typically return
       <type>void</type>.  The return value of the handler is ignored.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term><literal>VALIDATOR</literal> <replaceable class="parameter">valfunction</replaceable></term>

     <listitem>
      <para><replaceable class="parameter">valfunction</replaceable> is the
       name of a previously registered function that will be called
       when a new function in the language is created, to validate the
       new function.
       If no
       validator function

Title: CREATE LANGUAGE Parameters
Summary
This section describes the parameters used with the CREATE LANGUAGE command. It includes: TRUSTED (specifies whether the language grants unauthorized data access), PROCEDURAL (a noise word), name (the unique name of the language), HANDLER call_handler (the function to execute the language's functions), INLINE inline_handler (the function to execute anonymous code blocks), and VALIDATOR valfunction (the function to validate new functions).