{"kind": "language", "major": "18", "item": {"slug": "internal", "name": "internal", "name_zh": "", "category": "Native function languages", "summary": "built-in functions", "aliases": [], "content_hash": "327a404d56489f3bde4df5e0355167f5d0cc004aded2cc4820126ea837634a8a", "versions": {"10": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "PGUID", "laninline": "0", "lanpltrusted": "f", "lanvalidator": "2246", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "catalog_fingerprint": "691be281b476dde4374d7f805b2bacc2e75bdef40f1e9d3d42e91f97fe95cfd0"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, {"url": "/docs/10/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 10 English manual", "sha256": "e54bffe2ec51b941c753ded217e7b5ceeffc0f016e7c66b4e1e12e45d6880147"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">37.8.\u00a0Internal Functions</h2>\n</div>\n</div>\n</div>\n\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/10/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/10/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "11": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "PGUID", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "catalog_fingerprint": "8f21f4444b7f68923f4762af0eb7937fa2907026e91249483e79050de012c901"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, {"url": "/docs/11/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 11 English manual", "sha256": "5109dd6f19709c3c8b06e653b4ea364764a675aad7d7b7afce32c58a11601e26"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">38.9.\u00a0Internal Functions</h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/11/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/11/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "12": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "PGUID", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "catalog_fingerprint": "9f857f4ee4875f9c7de6bfc9df4b757dec8b3a0bb88eadb519c7bd267bd56149"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, {"url": "/docs/12/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 12 English manual", "sha256": "c7521ebfcaabed8038efbb61dacaf2d8125cb912f7a6d537ac3bf5584a576d2c"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">37.9.\u00a0Internal Functions</h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/12/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/12/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "13": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "PGUID", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "catalog_fingerprint": "c7015c845255c9d721c547c8ab9ef37825d332588c9691d982e6906b7d571002"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, {"url": "/docs/13/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 13 English manual", "sha256": "2f3eb274dee59dd91a96962d2601c5e6bfd46926034049f8c9f1519a7a688010"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">37.9.\u00a0Internal Functions</h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/13/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/13/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "14": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "catalog_fingerprint": "b272e6a82e4c46efda81c3a6a4cdf7de6a83dfff7f02f226a392fbe9acdd3adb"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, {"url": "/docs/14/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 14 English manual", "sha256": "2e24cbfac4e38b946421ecf539aa1fb8ba7eaa64c54ca4f20ace2772aa0c9a2f"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">38.9.\u00a0Internal Functions</h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/14/creating-cluster.html\" title=\"19.2.\u00a0Creating a Database Cluster\">Section\u00a019.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/14/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "15": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "catalog_fingerprint": "fefe3c425147a86defada190c9b0663cfe02caa1724f5dede93e46457572252d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, {"url": "/docs/15/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 15 English manual", "sha256": "c91d85d896b02153441767b1bd6e8efd61a00a292f175a18b8ed8a641d2c60a9"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">38.9.\u00a0Internal Functions</h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/15/creating-cluster.html\" title=\"19.2.\u00a0Creating a Database Cluster\">Section\u00a019.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/15/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "16": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "catalog_fingerprint": "fa133458dc8f52e15083b4f59b7a582e2e378b608d3ac5c53054df458a374e23"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, {"url": "/docs/16/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 16 English manual", "sha256": "e94ab2ead1c2e000871e064e951f2de5841e4287b87df2d7953feed554d321e1"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">38.9.\u00a0Internal Functions </h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/16/creating-cluster.html\" title=\"19.2.\u00a0Creating a Database Cluster\">Section\u00a019.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/16/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "17": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "catalog_fingerprint": "4bbe3ac77becd618478f66aec420a533e9017be356c5c1d51a4b17f0fd497c07"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, {"url": "/docs/17/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 17 English manual", "sha256": "07263f83eeb1ce450dab51c258dfefb251f88937bf0696f82b2ed4cd9e9f70fd"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">36.9.\u00a0Internal Functions </h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/17/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/17/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "18": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "catalog_fingerprint": "65c93d6048ef30e61023a84f9680fa6a92b1c383b7eb226741170077eb078502"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 18 English manual", "sha256": "643c2623380e298d3a3f2f371d32f3b208ac6717275b64ec75f681a2c3f2fa7f"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">36.9.\u00a0Internal Functions </h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/18/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/18/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "19": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "catalog_fingerprint": "62fbf1a3689dbe8bf7e6b3372cfe6fbf867581427b3858a94c8419b77a4d2d1d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, {"url": "/docs/19/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 19 English manual", "sha256": "861731280e3f3a54e8a0ccd073b3e7c2f8dc2654f4ab8f0640827513d7a4eb59"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">36.9.\u00a0Internal Functions </h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/19/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/19/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "20": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "catalog_fingerprint": "398fbb9f262264053c02fbf79f88be0a6770c1473faa6ecd5931d6ec41b8258b", "source_snapshot_utc": "26-Sep-2026 20:22"}, "sources": [{"url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, {"url": "/docs/devel/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 20 English manual", "sha256": "a10f420226393550b9305be3ebda1ea11c49077cf412415df2f5cfe83b159127"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">36.9.\u00a0Internal Functions </h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/devel/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/devel/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}}}, "snapshot": {"facts": [{"label": "Kind", "value": "Native function language"}, {"label": "Trusted", "value": "f"}, {"label": "Validator", "value": "fmgr_internal_validator"}], "tables": [], "aliases": [], "catalog": {"oid": "12", "descr": "built-in functions", "lanacl": "_null_", "lanispl": "f", "lanname": "internal", "lanowner": "POSTGRES", "laninline": "0", "oid_symbol": "INTERNALlanguageId", "lanpltrusted": "f", "lanvalidator": "fmgr_internal_validator", "lanplcallfoid": "0"}, "related": [], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "catalog_fingerprint": "65c93d6048ef30e61023a84f9680fa6a92b1c383b7eb226741170077eb078502"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/xfunc-internal.html", "path": "xfunc-internal.html", "label": "PostgreSQL 18 English manual", "sha256": "643c2623380e298d3a3f2f371d32f3b208ac6717275b64ec75f681a2c3f2fa7f"}], "sections": [], "signature": "", "attributes": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "description": ["built-in functions"], "manual_html": "<div class=\"sect1\" id=\"XFUNC-INTERNAL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\">36.9.\u00a0Internal Functions </h2>\n</div>\n</div>\n</div>\n<p>Internal functions are functions written in C that have been statically linked into the <span class=\"productname\">PostgreSQL</span> server. The <span class=\"quote\">\u201c<span class=\"quote\">body</span>\u201d</span> of the function definition specifies the C-language name of the function, which need not be the same as the name being declared for SQL use. (For reasons of backward compatibility, an empty body is accepted as meaning that the C-language function name is the same as the SQL name.)</p>\n<p>Normally, all internal functions present in the server are declared during the initialization of the database cluster (see <a class=\"xref\" href=\"/docs/18/creating-cluster.html\" title=\"18.2.\u00a0Creating a Database Cluster\">Section\u00a018.2</a>), but a user could use <code class=\"command\">CREATE FUNCTION</code> to create additional alias names for an internal function. Internal functions are declared in <code class=\"command\">CREATE FUNCTION</code> with language name <code class=\"literal\">internal</code>. For instance, to create an alias for the <code class=\"function\">sqrt</code> function:</p>\n<pre class=\"programlisting\">CREATE FUNCTION square_root(double precision) RETURNS double precision\n    AS 'dsqrt'\n    LANGUAGE internal\n    STRICT;\n</pre>\n<p>(Most internal functions expect to be declared <span class=\"quote\">\u201c<span class=\"quote\">strict</span>\u201d</span>.)</p>\n<div class=\"note\">\n<h3 class=\"title\">Note</h3>\n<p>Not all <span class=\"quote\">\u201c<span class=\"quote\">predefined</span>\u201d</span> functions are <span class=\"quote\">\u201c<span class=\"quote\">internal</span>\u201d</span> in the above sense. Some predefined functions are written in SQL.</p>\n</div>\n</div>", "manual_path": "/docs/18/xfunc-internal.html", "comparison_data": {"kind": "Native function language", "handler": "", "trusted": "f", "validator": "fmgr_internal_validator"}, "comparison_hash": "d6ad14fc74d34352071f1975e70a9077d1bd11b93deb9f26398e7de1d5cc18b9"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}