{"kind": "language", "major": "18", "item": {"slug": "plpython3u", "name": "plpython3u", "name_zh": "", "category": "PL/Python", "summary": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00", "aliases": [], "content_hash": "f7e77e0076ed9302b0d1ac10d2fd920acd834302f1441d739e60478715f4b310", "versions": {"10": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/10/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/10/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/10/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/10/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/10/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/10/plpython-python23.html", "label": "plpython-python23"}, {"url": "/docs/10/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/10/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/10/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/10/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/10/plpython.html", "path": "plpython.html", "label": "PostgreSQL 10 English manual", "sha256": "777855a2e6a6df222fc5e19074d038225bdeba971ad195673ff034adb58aeff1", "language": "en", "original_url": "/docs/10/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpython3u;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Python - Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span> \u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u7528 <a class=\"ulink\" href=\"http://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpythonu</code>\uff08\u53e6\u89c1<a class=\"xref\" href=\"/docs/10/plpython.html#PLPYTHON-PYTHON23\" title=\"45.1.\u00a0Python 2 \u4e0e Python 3\">\u7b2c\u00a045.1\u00a0\u8282</a>\uff09\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpythonu</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpythonu</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/10/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/10/plpython-data.html", "method": "same-major semantic node", "sha256": "e4220772a2b28ea3e4638b1ce4135fa910152956d5680caf0dbf7e909d0eabb2", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-database.html", "method": "same-major semantic node", "sha256": "9589d6ec7f61f98a440bbe8c7a2259e4f8964ad127c31971ba52f3d44e20ac21", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-do.html", "method": "same-major semantic node", "sha256": "643b5021861b4a9374e20903a9eb85b1707c11144990c35ac221e3c52e146776", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-envar.html", "method": "same-major semantic node", "sha256": "c79ca8728df0f1face330e5c545944d99a00837a7016643dd03064ad9642a40d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-funcs.html", "method": "same-major semantic node", "sha256": "143ac8077d3d7cfb08b04324ccc55ea0e05e6fc8cb16c411ef3cfa9d65616e3b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-sharing.html", "method": "same-major semantic node", "sha256": "7531b33091c90fb0a4c672d28ebf8621def3ab8ea8be09687cdc53babc24b9e1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "a9b5f431a9988fd1ca6d29d1a578d270fb8c0312de279eb618d5013f7a15647b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-trigger.html", "method": "same-major semantic node", "sha256": "498a545b8de7b47a04d2e560837baa9ed7830a49e9fa8b57f0084085a89fd00c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython-util.html", "method": "same-major semantic node", "sha256": "d121c159cf8ddd85765ed1382b2068dc7f594bba77a4ba32adea53505c3c6da8", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plpython.html", "method": "same-major semantic node", "sha256": "4fcc10b7c72551a84bead734ecd8c7194f429d337fe25a6e1e77c822a6a69d99", "language": "zh", "matched_nodes": ["#PLPYTHON/h3[0]", "#PLPYTHON/h3[1]", "#PLPYTHON/p[1]", "#PLPYTHON/p[2]", "#PLPYTHON/p[3]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]"]}], "language": "zh", "original_text": {"/versions/10/description/0": "PL/Python3U untrusted procedural language", "/versions/10/facts/0/label": "Kind", "/versions/10/facts/0/value": "Bundled procedural-language variant", "/versions/10/facts/1/label": "Family", "/versions/10/facts/2/label": "Trusted", "/versions/10/facts/3/label": "Handler", "/versions/10/facts/4/label": "Inline handler", "/versions/10/facts/5/label": "Validator", "/versions/10/facts/6/label": "Library", "/versions/10/facts/7/label": "Default version", "/versions/10/facts/8/label": "Module pathname", "/versions/10/facts/9/label": "Comment", "/versions/10/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/10/related/0/label": "plpython-data", "/versions/10/related/1/label": "plpython-database", "/versions/10/related/2/label": "plpython-do", "/versions/10/related/3/label": "plpython-envar", "/versions/10/related/4/label": "plpython-funcs", "/versions/10/related/6/label": "plpython-sharing", "/versions/10/related/7/label": "plpython-subtransaction", "/versions/10/related/8/label": "plpython-trigger", "/versions/10/related/9/label": "plpython-util", "/versions/10/sections/0/title": "Installation definition from the matching source archive", "/versions/10/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "48982c4e2b4761b9d26fb8dbce1b1244f50ca2cc4b60bd05b6f937138f8ef9d3"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "efd75d202f9855b1cab3bc611f185813194c53902056037864632afc37dc3fb3"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "11": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/11/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/11/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/11/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/11/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/11/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/11/plpython-python23.html", "label": "plpython-python23"}, {"url": "/docs/11/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/11/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/11/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/11/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/11/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/11/plpython.html", "path": "plpython.html", "label": "PostgreSQL 11 English manual", "sha256": "6612b4c6b8dba6b9955dcd42a8c833715fe386b40b40aac2c9ea3743516726c1", "language": "en", "original_url": "/docs/11/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plpython3u;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 46 \u7ae0. PL/Python - Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpythonu</code>\uff08\u53e6\u89c1<a class=\"xref\" href=\"/docs/11/plpython.html#PLPYTHON-PYTHON23\" title=\"46.1.\u00a0Python 2 \u4e0e Python 3\">\u7b2c\u00a046.1\u00a0\u8282</a>\uff09\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpythonu</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpythonu</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/11/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/11/plpython-data.html", "method": "same-major semantic node", "sha256": "f92102890cb634e02ba0721d96e8cd0d1a586e73fd0f62dfd7222d4f2c738a1a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-database.html", "method": "same-major semantic node", "sha256": "7faf93b18525108eb8d4e65c5b9e3e2858e432e17cae9a711c7b499371ca195b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-do.html", "method": "same-major semantic node", "sha256": "63f82de5387305aef6106abec1707f807da3b448129785b91efd15dc76b89593", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-envar.html", "method": "same-major semantic node", "sha256": "d4baaf2fc2f94e5bc20672626b1f3afbd3ac6ed6d8a09ea613ba1162e1975e9f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-funcs.html", "method": "same-major semantic node", "sha256": "d96f97154ad397c197f4e96699c6176591512204776d8bb385ca77391ade269a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-sharing.html", "method": "same-major semantic node", "sha256": "08f876aaa9339c495c63e5c7679c86daf16c4dac89cb78c1fdfea27b16212434", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "d31579f22ab904df15ad65a186373e190ec27b416fc12aae1cf2e77006c2b4bb", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-transactions.html", "method": "same-major semantic node", "sha256": "b4df6796a02e70412a7d0f700db45a56c2c4721b9bfbf97e98a88f7e13b858e2", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-trigger.html", "method": "same-major semantic node", "sha256": "d00395b3146774ec69b97c79d7a61f59ecfd528c7aba3c265b28d7e03d5dd0ce", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython-util.html", "method": "same-major semantic node", "sha256": "2141b62ee41f7cbf479ddc0cb8ca66177cbe07bd35acc1a2aac347eb5ce012d6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plpython.html", "method": "same-major semantic node", "sha256": "cf9a52450dce86ac9ba6ceffb5b8b7079c352787c6b17443e515ca8fa027e069", "language": "zh", "matched_nodes": ["#PLPYTHON/h3[0]", "#PLPYTHON/h3[1]", "#PLPYTHON/p[1]", "#PLPYTHON/p[2]", "#PLPYTHON/p[3]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]"]}], "language": "zh", "original_text": {"/versions/11/description/0": "PL/Python3U untrusted procedural language", "/versions/11/facts/0/label": "Kind", "/versions/11/facts/0/value": "Bundled procedural-language variant", "/versions/11/facts/1/label": "Family", "/versions/11/facts/2/label": "Trusted", "/versions/11/facts/3/label": "Handler", "/versions/11/facts/4/label": "Inline handler", "/versions/11/facts/5/label": "Validator", "/versions/11/facts/6/label": "Library", "/versions/11/facts/7/label": "Default version", "/versions/11/facts/8/label": "Module pathname", "/versions/11/facts/9/label": "Comment", "/versions/11/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/11/related/0/label": "plpython-data", "/versions/11/related/1/label": "plpython-database", "/versions/11/related/2/label": "plpython-do", "/versions/11/related/3/label": "plpython-envar", "/versions/11/related/4/label": "plpython-funcs", "/versions/11/related/6/label": "plpython-sharing", "/versions/11/related/7/label": "plpython-subtransaction", "/versions/11/related/8/label": "plpython-transactions", "/versions/11/related/9/label": "plpython-trigger", "/versions/11/related/10/label": "plpython-util", "/versions/11/sections/0/title": "Installation definition from the matching source archive", "/versions/11/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "cabeb9040a2a2185b00e69321210dadc781cf616c7769adf4d8db55893f3f3b9"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "efd75d202f9855b1cab3bc611f185813194c53902056037864632afc37dc3fb3"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "12": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/12/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/12/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/12/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/12/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/12/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/12/plpython-python23.html", "label": "plpython-python23"}, {"url": "/docs/12/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/12/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/12/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/12/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/12/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/12/plpython.html", "path": "plpython.html", "label": "PostgreSQL 12 English manual", "sha256": "0f4eac1e31aff3e6ae5dc99e7bc6c34c50ab44222ab12d1c578a86ea5af19a33", "language": "en", "original_url": "/docs/12/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE LANGUAGE plpython3u;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Python - Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpythonu</code>\uff08\u53e6\u89c1<a class=\"xref\" href=\"/docs/12/plpython.html#PLPYTHON-PYTHON23\" title=\"45.1.\u00a0Python 2 \u4e0e Python 3\">\u7b2c\u00a045.1\u00a0\u8282</a>\uff09\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpythonu</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpythonu</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/12/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/12/plpython-data.html", "method": "same-major semantic node", "sha256": "f488f6a97b1e71e55099632c70b2e892e379860e411936a8f03ceca1c4242cba", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-database.html", "method": "same-major semantic node", "sha256": "227b2f7bab7b22723ecb31a2982f3bb0e17ec5adfe3f57ece8bd42a5b5ea1211", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-do.html", "method": "same-major semantic node", "sha256": "e82e58583d85d3405630258e84a6df4715b5e279a8a242cfd5f2711a915b76cd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-envar.html", "method": "same-major semantic node", "sha256": "263862906618d35847ea9e43f868acb389948451e767bbc3063cc47fa3a435e9", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-funcs.html", "method": "same-major semantic node", "sha256": "9ab95ab6c02878133a3e726e905bcff5878f671ca99ac3fb0cb6eef3c6bf23ad", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-sharing.html", "method": "same-major semantic node", "sha256": "db900924b34cda6c270aa5f9d9bd38632be3c5a809a4e2708565c83ea8693cc0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "72ec295c7ff674969736baf432bc277dfb928b86eefbe45fad7e19394aaaf995", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-transactions.html", "method": "same-major semantic node", "sha256": "c2625b4550bc0cc580cfa25ed44853132ff01b962456183daba0b5f5ac960550", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-trigger.html", "method": "same-major semantic node", "sha256": "05cc3497f6ddfd3880efbcc02354f50df0f9efb4e6ca29477b3d10ce281e88e4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython-util.html", "method": "same-major semantic node", "sha256": "e89b618bd7153fedca316861c59cbf1031794fd4498f3b57d33b3ce66b9465ac", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plpython.html", "method": "same-major semantic node", "sha256": "84fcb5aa6ae3d590e33266bd30f128007ff28c9d454ece03e444b272e79c0c5a", "language": "zh", "matched_nodes": ["#PLPYTHON/h3[0]", "#PLPYTHON/h3[1]", "#PLPYTHON/p[1]", "#PLPYTHON/p[2]", "#PLPYTHON/p[3]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]"]}], "language": "zh", "original_text": {"/versions/12/description/0": "PL/Python3U untrusted procedural language", "/versions/12/facts/0/label": "Kind", "/versions/12/facts/0/value": "Bundled procedural-language variant", "/versions/12/facts/1/label": "Family", "/versions/12/facts/2/label": "Trusted", "/versions/12/facts/3/label": "Handler", "/versions/12/facts/4/label": "Inline handler", "/versions/12/facts/5/label": "Validator", "/versions/12/facts/6/label": "Library", "/versions/12/facts/7/label": "Default version", "/versions/12/facts/8/label": "Module pathname", "/versions/12/facts/9/label": "Comment", "/versions/12/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/12/related/0/label": "plpython-data", "/versions/12/related/1/label": "plpython-database", "/versions/12/related/2/label": "plpython-do", "/versions/12/related/3/label": "plpython-envar", "/versions/12/related/4/label": "plpython-funcs", "/versions/12/related/6/label": "plpython-sharing", "/versions/12/related/7/label": "plpython-subtransaction", "/versions/12/related/8/label": "plpython-transactions", "/versions/12/related/9/label": "plpython-trigger", "/versions/12/related/10/label": "plpython-util", "/versions/12/sections/0/title": "Installation definition from the matching source archive", "/versions/12/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "147048d3964f5363567eeeb00dda790f74d9dfafaed17ae16a9d5892276551ca"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "fb7eb4dcf90bb30a1c2333c0a05bff5c24eb63bc1849c7bca4acd6c909524c5a"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "13": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/13/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/13/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/13/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/13/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/13/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/13/plpython-python23.html", "label": "plpython-python23"}, {"url": "/docs/13/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/13/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/13/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/13/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/13/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/13/plpython.html", "path": "plpython.html", "label": "PostgreSQL 13 English manual", "sha256": "5aee74b10a6edbfc58ef0eaea73e5b33975c31f01bdb30741676c261023e88c4", "language": "en", "original_url": "/docs/13/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpythonu</code>\uff08\u53e6\u89c1<a class=\"xref\" href=\"/docs/13/plpython.html#PLPYTHON-PYTHON23\" title=\"45.1.\u00a0Python 2 \u4e0e Python 3\">\u7b2c\u00a045.1\u00a0\u8282</a>\uff09\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpythonu</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpythonu</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/13/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/13/plpython-data.html", "method": "same-major semantic node", "sha256": "91fe00220d4b025bad9c5680c8ab25abda6101d6764671c30b8e57c460908cd2", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-database.html", "method": "same-major semantic node", "sha256": "26a7bd1527941c915fb8a232e1ac4383b7947cc5b22a19e776b6ca670ca35a94", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-do.html", "method": "same-major semantic node", "sha256": "7997ec146e66b831b0bcfbd45300ef4a18bc2dd9db9f3231347932539084169f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-envar.html", "method": "same-major semantic node", "sha256": "1044aa28dc9f0b2249c56b7f00079eefed36d9e3b885e61a2fabf89e119b0f50", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-funcs.html", "method": "same-major semantic node", "sha256": "a69fd11cfe92f7358ae38ce0110fbed6e8c72b39d006a9e81952b4216a908a95", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-sharing.html", "method": "same-major semantic node", "sha256": "0799ab2a1d2a2a43cbb2326e552da819a34bedeb80eb6071e54d6826642afbbf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "7521b68e3ecbb0e34017df86e15089daacbbc669ee769eff1b7f31da432115e9", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-transactions.html", "method": "same-major semantic node", "sha256": "6c5ce10571f6f375823b4eda83c346e8f43cee53873955d48f5e27d8e103c74c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-trigger.html", "method": "same-major semantic node", "sha256": "536316cd0b0e638de95c02e91cd7c8df1e0bb3725a4a12d08d19850c8e16be60", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython-util.html", "method": "same-major semantic node", "sha256": "cd294dba8cc9e555abfa13670de1df7bc2c4d947832bca1b460651fd9cbe28c4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plpython.html", "method": "same-major semantic node", "sha256": "ba208aa0503bb88a2d206f7228208348fb82bf3e79893a5a7fe344dfd8d7da17", "language": "zh", "matched_nodes": ["#PLPYTHON/h3[0]", "#PLPYTHON/h3[1]", "#PLPYTHON/p[1]", "#PLPYTHON/p[2]", "#PLPYTHON/p[3]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]"]}], "language": "zh", "original_text": {"/versions/13/description/0": "PL/Python3U untrusted procedural language", "/versions/13/facts/0/label": "Kind", "/versions/13/facts/0/value": "Bundled procedural-language variant", "/versions/13/facts/1/label": "Family", "/versions/13/facts/2/label": "Trusted", "/versions/13/facts/3/label": "Handler", "/versions/13/facts/4/label": "Inline handler", "/versions/13/facts/5/label": "Validator", "/versions/13/facts/6/label": "Library", "/versions/13/facts/7/label": "Default version", "/versions/13/facts/8/label": "Module pathname", "/versions/13/facts/9/label": "Comment", "/versions/13/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/13/related/0/label": "plpython-data", "/versions/13/related/1/label": "plpython-database", "/versions/13/related/2/label": "plpython-do", "/versions/13/related/3/label": "plpython-envar", "/versions/13/related/4/label": "plpython-funcs", "/versions/13/related/6/label": "plpython-sharing", "/versions/13/related/7/label": "plpython-subtransaction", "/versions/13/related/8/label": "plpython-transactions", "/versions/13/related/9/label": "plpython-trigger", "/versions/13/related/10/label": "plpython-util", "/versions/13/sections/0/title": "Installation definition from the matching source archive", "/versions/13/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "787846c1a55cecb8a8a983b7a628f98dd9c4ae18e20054e76d5e8e2af8488750"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "14": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/14/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/14/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/14/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/14/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/14/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/14/plpython-python23.html", "label": "plpython-python23"}, {"url": "/docs/14/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/14/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/14/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/14/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/14/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/14/plpython.html", "path": "plpython.html", "label": "PostgreSQL 14 English manual", "sha256": "3c84c78db04798bdd98ee4320a8d26749337373d29e6f05c0a76997f03b73b61", "language": "en", "original_url": "/docs/14/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 46 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpythonu</code>\uff08\u53e6\u89c1<a class=\"xref\" href=\"/docs/14/plpython.html#PLPYTHON-PYTHON23\" title=\"46.1.\u00a0Python 2 \u4e0e Python 3\">\u7b2c\u00a046.1\u00a0\u8282</a>\uff09\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpythonu</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpythonu</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/14/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/14/plpython-data.html", "method": "same-major semantic node", "sha256": "177e1d8d2aa7791808809b72417a982c4b0bb7c12069b266580ef0d7d93fbee9", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-database.html", "method": "same-major semantic node", "sha256": "a1b0b8d2cd2ddb274fe1ac35b5be35e3a68994b2c5f89a3b7b1610614043675d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-do.html", "method": "same-major semantic node", "sha256": "19dada5307d92528838e5939a218e3713b5aded97fc7d8b17901e4cf227fbc44", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-envar.html", "method": "same-major semantic node", "sha256": "eaada9c8e2438fffeda89ac85c75caab26b991be48cd4edcbbc140918dcd8063", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-funcs.html", "method": "same-major semantic node", "sha256": "a4095930aa7cc4977ca5b4e5ceb148db75087eaca3dd8a45a6dff84444b11574", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-sharing.html", "method": "same-major semantic node", "sha256": "25419bc6e4cf4f20ee4afbfc659a4d5272da264709cf750fabaf49b56f381167", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "912f32bbb4b1ff6695b46fada307f3f9f4886e78873a5462738ffa0199794a43", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-transactions.html", "method": "same-major semantic node", "sha256": "6a2b0bd0b49893ca2ca1684fbad0350aac4d874ddbbcaf284c1cfd4d0d796a64", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-trigger.html", "method": "same-major semantic node", "sha256": "524a1cc3750b2e09dba2f434b11b503bb245f475baf0e7db84f206fdee1c1c99", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython-util.html", "method": "same-major semantic node", "sha256": "3d86410d4d244de6c0cf20ef95552fa930ff50bd18ea3d70dd957b5a772aa344", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plpython.html", "method": "same-major semantic node", "sha256": "970b6a414751b416498b035edb6818c2e91b8bdd668c7afbce5f7d905767231b", "language": "zh", "matched_nodes": ["#PLPYTHON/h3[0]", "#PLPYTHON/h3[1]", "#PLPYTHON/p[1]", "#PLPYTHON/p[2]", "#PLPYTHON/p[3]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]"]}], "language": "zh", "original_text": {"/versions/14/description/0": "PL/Python3U untrusted procedural language", "/versions/14/facts/0/label": "Kind", "/versions/14/facts/0/value": "Bundled procedural-language variant", "/versions/14/facts/1/label": "Family", "/versions/14/facts/2/label": "Trusted", "/versions/14/facts/3/label": "Handler", "/versions/14/facts/4/label": "Inline handler", "/versions/14/facts/5/label": "Validator", "/versions/14/facts/6/label": "Library", "/versions/14/facts/7/label": "Default version", "/versions/14/facts/8/label": "Module pathname", "/versions/14/facts/9/label": "Comment", "/versions/14/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/14/related/0/label": "plpython-data", "/versions/14/related/1/label": "plpython-database", "/versions/14/related/2/label": "plpython-do", "/versions/14/related/3/label": "plpython-envar", "/versions/14/related/4/label": "plpython-funcs", "/versions/14/related/6/label": "plpython-sharing", "/versions/14/related/7/label": "plpython-subtransaction", "/versions/14/related/8/label": "plpython-transactions", "/versions/14/related/9/label": "plpython-trigger", "/versions/14/related/10/label": "plpython-util", "/versions/14/sections/0/title": "Installation definition from the matching source archive", "/versions/14/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "6ed111aef9768734db6ea36b1d7160c01513280ace02984c56cf96fcccace88d"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "15": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/15/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/15/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/15/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/15/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/15/plpython-funcs.html", "label": "plpython-funcs"}, {"url": "/docs/15/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/15/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/15/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/15/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/15/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/15/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/15/plpython.html", "path": "plpython.html", "label": "PostgreSQL 15 English manual", "sha256": "045256d5e475fdad5e4ef2ac0d139864649e493313cb27cd6a78548902c72e8d", "language": "en", "original_url": "/docs/15/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 46 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/15/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/15/plpython-data.html", "method": "same-major semantic node", "sha256": "d7e78fdaff51900c1fcd77dea150c76dbf4e390bf575ea37962e2a985c0494e7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-database.html", "method": "same-major semantic node", "sha256": "95ae0a862a274159ddce6bcdef9d760a220a6f41bb6fadf6460339b21408cafe", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-do.html", "method": "same-major semantic node", "sha256": "8f4a6db9a6f2f9374b3059939760db8c6592c3482bfa7c164d25f20a750086bd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-envar.html", "method": "same-major semantic node", "sha256": "fd9fb0b0baecc7c68f8c4e3f807de3939bd8608b93686f03b120ae360cb062ad", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-python23.html", "method": "same-major semantic node", "sha256": "538ac14f3840c9d96dddc392e9c81de4ca6549af739714e97b892abb681c80c9", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-sharing.html", "method": "same-major semantic node", "sha256": "0ae38a901641cd16e59df03bd3d029b4b08702966fb40b78e1668d786fb3bc8f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "d268235e2966fb24ea862903d8a5867410a5c9eec8151d9198714b7da3c42988", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-transactions.html", "method": "same-major semantic node", "sha256": "d5272031957d39033aa9e7885414cbaa2f48bc5b11c991fbf021546d78353fab", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-trigger.html", "method": "same-major semantic node", "sha256": "8678e6a2e0f7d2bc12372ad2238d83374ffc4c53286d764b84718f7d3f4ec9e3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython-util.html", "method": "same-major semantic node", "sha256": "7021753adf609831367b647274e02b37aac55458bb3454c7b07f1e20a6d5f1ad", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plpython.html", "method": "same-major semantic node", "sha256": "c28472f6c3b18cea1e2b42607ccc76ce347973d850b4effc06efd6342d435617", "language": "zh", "matched_nodes": ["#PLPYTHON/h3[0]", "#PLPYTHON/h3[1]", "#PLPYTHON/p[1]", "#PLPYTHON/p[2]", "#PLPYTHON/p[3]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]"]}], "language": "zh", "original_text": {"/versions/15/description/0": "PL/Python3U untrusted procedural language", "/versions/15/facts/0/label": "Kind", "/versions/15/facts/0/value": "Bundled procedural-language variant", "/versions/15/facts/1/label": "Family", "/versions/15/facts/2/label": "Trusted", "/versions/15/facts/3/label": "Handler", "/versions/15/facts/4/label": "Inline handler", "/versions/15/facts/5/label": "Validator", "/versions/15/facts/6/label": "Library", "/versions/15/facts/7/label": "Default version", "/versions/15/facts/8/label": "Module pathname", "/versions/15/facts/9/label": "Comment", "/versions/15/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/15/related/0/label": "plpython-data", "/versions/15/related/1/label": "plpython-database", "/versions/15/related/2/label": "plpython-do", "/versions/15/related/3/label": "plpython-envar", "/versions/15/related/5/label": "plpython-python23", "/versions/15/related/6/label": "plpython-sharing", "/versions/15/related/7/label": "plpython-subtransaction", "/versions/15/related/8/label": "plpython-transactions", "/versions/15/related/9/label": "plpython-trigger", "/versions/15/related/10/label": "plpython-util", "/versions/15/sections/0/title": "Installation definition from the matching source archive", "/versions/15/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "407fbb31c9092d4cc09ef51e3c2f98be7e7dc991548eee7d656509bcbf9535fb"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "16": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/16/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/16/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/16/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/16/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/16/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/16/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/16/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/16/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/16/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/16/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/16/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/16/plpython.html", "path": "plpython.html", "label": "PostgreSQL 16 English manual", "sha256": "c798fdce53ce5c73d31b3232729b7058c4319247ce26680c8613b72e8c0df2b7", "language": "en", "original_url": "/docs/16/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 46 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/16/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/16/plpython-data.html", "method": "same-major semantic node", "sha256": "72f7895e44593e85cf4670b29bd94c59a1defc218a55e57c4b0671eea5d1287a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-database.html", "method": "same-major semantic node", "sha256": "bb93103c550e4a4e1f75ab7ee47233739a49ca0012dc52166758755f3d15491a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-do.html", "method": "same-major semantic node", "sha256": "e24897a8c878f892f848d4666e38065ba049627fb56a10946269fa50161fe586", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-envar.html", "method": "same-major semantic node", "sha256": "9ff85a23c223c66ea4d1774d7b45679b859026c2e6fd388e4524ec5fd2acfe6e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-funcs.html", "method": "same-major semantic node", "sha256": "3d95aefd97175d875a16620d8c18cd7e08f2e0ae559fb7cd30f30c46fee301f3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-python23.html", "method": "same-major semantic node", "sha256": "57e82dc7946029283dfd3a6d3f55707206008a5182efed53ef81140c98152a54", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-sharing.html", "method": "same-major semantic node", "sha256": "2f48f303910947a50623c55d48638659114413b68f67ba5f7c115ad2f33b27cf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "836f70658cad9acf10dee6afb2b20e8dc2574cc0bf2f10e9754aded2db5a2a74", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-transactions.html", "method": "same-major semantic node", "sha256": "5adc5bab365571ac08ba50916339f811b8d661f1c07c0d1a5bc14ab713a4b32c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-trigger.html", "method": "same-major semantic node", "sha256": "93d3f9b035a9d15f45a0f583bb0c51185e1d1bb8bfc86fd77308520e072a72c5", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython-util.html", "method": "same-major semantic node", "sha256": "b2b9d06b656cb929b5d559acb67e9a9c7f0e44c31d4d7f335a06118f218030ef", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plpython.html", "method": "same-major semantic node", "sha256": "acc2af265ff53c062e7dac404bb125fbb0dc2cfb73ba1c905f44cee207f76619", "language": "zh", "matched_nodes": ["#PLPYTHON/div[6]/h3[0]", "#PLPYTHON/div[6]/p[1]", "#PLPYTHON/div[8]/h3[0]", "#PLPYTHON/div[8]/p[1]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]", "#PLPYTHON/p[7]"]}], "language": "zh", "original_text": {"/versions/16/description/0": "PL/Python3U untrusted procedural language", "/versions/16/facts/0/label": "Kind", "/versions/16/facts/0/value": "Bundled procedural-language variant", "/versions/16/facts/1/label": "Family", "/versions/16/facts/2/label": "Trusted", "/versions/16/facts/3/label": "Handler", "/versions/16/facts/4/label": "Inline handler", "/versions/16/facts/5/label": "Validator", "/versions/16/facts/6/label": "Library", "/versions/16/facts/7/label": "Default version", "/versions/16/facts/8/label": "Module pathname", "/versions/16/facts/9/label": "Comment", "/versions/16/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/16/related/0/label": "plpython-data", "/versions/16/related/1/label": "plpython-database", "/versions/16/related/2/label": "plpython-do", "/versions/16/related/3/label": "plpython-envar", "/versions/16/related/4/label": "plpython-funcs", "/versions/16/related/5/label": "plpython-python23", "/versions/16/related/6/label": "plpython-sharing", "/versions/16/related/7/label": "plpython-subtransaction", "/versions/16/related/8/label": "plpython-transactions", "/versions/16/related/9/label": "plpython-trigger", "/versions/16/related/10/label": "plpython-util", "/versions/16/sections/0/title": "Installation definition from the matching source archive", "/versions/16/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "c3820b4ee1358bcd4ceb1fd5281ba2de52ab64884f63c84528cb8d95269f9916"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "17": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/17/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/17/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/17/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/17/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/17/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/17/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/17/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/17/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/17/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/17/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/17/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/17/plpython.html", "path": "plpython.html", "label": "PostgreSQL 17 English manual", "sha256": "e4557b7b075b6480e6998241ad2a1234fc7c94e8a428faaf2725eccdf1aa64c3", "language": "en", "original_url": "/docs/17/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/17/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/17/plpython-data.html", "method": "same-major semantic node", "sha256": "a346336c796afc84a5f596423e775444d53fc44a5f6d3b0ed1c24605cf6b439d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-database.html", "method": "same-major semantic node", "sha256": "b8fff4b3faa78ae189e8497fd4cf2d0b76aa0f39679fd4bc2ce8d858130f16ca", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-do.html", "method": "same-major semantic node", "sha256": "1b9825ec7866fbcad90747bdc7d99d1e07375039ab1913ec0747e6ef74625b08", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-envar.html", "method": "same-major semantic node", "sha256": "4f95a429011ee67c8274c483c52af695c26485bb71b2eae81c4d5cf6e0661f27", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-funcs.html", "method": "same-major semantic node", "sha256": "d45a5213fa86a68417966d5757c3fbdb1dcbd62cd17885ee689759851bd640c5", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-python23.html", "method": "same-major semantic node", "sha256": "96c594e67a04ac21e9fd66a147a7db19956fc9c26fbeebcfad68394cd3928013", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-sharing.html", "method": "same-major semantic node", "sha256": "abf6b588aeb0a0bec16d1d6658c5355bf90703fda5ac5d1d1b5108e1ea9fd175", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "ccd554fde56e9e10c9b8103ecfcf262ae2c84acb4daeccbecbbb88657c7ff108", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-transactions.html", "method": "same-major semantic node", "sha256": "4d3245b203b294678ae05b10d8898a84f581f0248ff7db692382fa08b04ba81a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-trigger.html", "method": "same-major semantic node", "sha256": "db770d7b0033e317053470421492327a6ccd02c92a23c2112afce5c0623cb3e9", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython-util.html", "method": "same-major semantic node", "sha256": "82b1dbcf524ac85732c3b80370bccae74b82305f20570d9c3f7a5c6a74a9c827", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plpython.html", "method": "same-major semantic node", "sha256": "8a6e0abc3658f0eb6d1500270ad80e915b1acddb34079e890c46b06b70b4b8d4", "language": "zh", "matched_nodes": ["#PLPYTHON/div[6]/h3[0]", "#PLPYTHON/div[6]/p[1]", "#PLPYTHON/div[8]/h3[0]", "#PLPYTHON/div[8]/p[1]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]", "#PLPYTHON/p[7]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "PL/Python3U untrusted procedural language", "/versions/17/facts/0/label": "Kind", "/versions/17/facts/0/value": "Bundled procedural-language variant", "/versions/17/facts/1/label": "Family", "/versions/17/facts/2/label": "Trusted", "/versions/17/facts/3/label": "Handler", "/versions/17/facts/4/label": "Inline handler", "/versions/17/facts/5/label": "Validator", "/versions/17/facts/6/label": "Library", "/versions/17/facts/7/label": "Default version", "/versions/17/facts/8/label": "Module pathname", "/versions/17/facts/9/label": "Comment", "/versions/17/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/17/related/0/label": "plpython-data", "/versions/17/related/1/label": "plpython-database", "/versions/17/related/2/label": "plpython-do", "/versions/17/related/3/label": "plpython-envar", "/versions/17/related/4/label": "plpython-funcs", "/versions/17/related/5/label": "plpython-python23", "/versions/17/related/6/label": "plpython-sharing", "/versions/17/related/7/label": "plpython-subtransaction", "/versions/17/related/8/label": "plpython-transactions", "/versions/17/related/9/label": "plpython-trigger", "/versions/17/related/10/label": "plpython-util", "/versions/17/sections/0/title": "Installation definition from the matching source archive", "/versions/17/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "dc551d2061bbe6c0e040dd2d152d543b28c3d2335470f27815fd8f56fe5506fa"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "18": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/18/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/18/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/18/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/18/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/18/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/18/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/18/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/18/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/18/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/18/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/18/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/18/plpython.html", "path": "plpython.html", "label": "PostgreSQL 18 English manual", "sha256": "71a8ee61599ffebaf8d3b7369b3722728367c00fb6a108f3f16e7a93124d5a90", "language": "en", "original_url": "/docs/18/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/18/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/plpython-data.html", "method": "same-major semantic node", "sha256": "9a8c1510b8f31135adb257cd1cb1d853508eb27c1b4d93cbccd080ed1c2eadac", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-database.html", "method": "same-major semantic node", "sha256": "0c46cbbb0b22aff5288f24f515e888165ee239dc1f95a3b3da7661b95cd926ea", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-do.html", "method": "same-major semantic node", "sha256": "4a434723441f4ff4aad7afd0a4e8a29ce0d451d3c3d0d61f315c036b26d945c1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-envar.html", "method": "same-major semantic node", "sha256": "8696a1815220b7f78968796f9ff40975a26c67512e3c6757b7f61de91cb1640f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-funcs.html", "method": "same-major semantic node", "sha256": "7e6f4e1c9aea0122f397a0f48473ba8ec7d9363e6a18809a986a9b6e672938d6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-python23.html", "method": "same-major semantic node", "sha256": "4fbf41ecc9a70ef1a5ad807d99a0760a04329c9a293fb32c2c6b300fb85f125c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-sharing.html", "method": "same-major semantic node", "sha256": "47540eda825eff235220a1182da59a1e23e051ceabc2ba92ba01d5319ff2cd2c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "399e0404ae735132a340c846239784e641642f190fc9da82e7fbb3b665349c1e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-transactions.html", "method": "same-major semantic node", "sha256": "bd4ae8609f4ae55f005700446b74df19b686c9c7df674ab27f03fff7f54a3a60", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-trigger.html", "method": "same-major semantic node", "sha256": "c0ffdc0ca8befc5cae8f71ada7a888ea342a06fb303962527a4d16b5390c7dab", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-util.html", "method": "same-major semantic node", "sha256": "aa4dafe008afd2725d98128685527efe229793956f27c665dade721ceb9b6ed5", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython.html", "method": "same-major semantic node", "sha256": "bbe007458590ea72963d45ad65d4e9459149823382a71795bc0a89e991cfd0e6", "language": "zh", "matched_nodes": ["#PLPYTHON/div[6]/h3[0]", "#PLPYTHON/div[6]/p[1]", "#PLPYTHON/div[8]/h3[0]", "#PLPYTHON/div[8]/p[1]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]", "#PLPYTHON/p[7]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "PL/Python3U untrusted procedural language", "/versions/18/facts/0/label": "Kind", "/versions/18/facts/0/value": "Bundled procedural-language variant", "/versions/18/facts/1/label": "Family", "/versions/18/facts/2/label": "Trusted", "/versions/18/facts/3/label": "Handler", "/versions/18/facts/4/label": "Inline handler", "/versions/18/facts/5/label": "Validator", "/versions/18/facts/6/label": "Library", "/versions/18/facts/7/label": "Default version", "/versions/18/facts/8/label": "Module pathname", "/versions/18/facts/9/label": "Comment", "/versions/18/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/18/related/0/label": "plpython-data", "/versions/18/related/1/label": "plpython-database", "/versions/18/related/2/label": "plpython-do", "/versions/18/related/3/label": "plpython-envar", "/versions/18/related/4/label": "plpython-funcs", "/versions/18/related/5/label": "plpython-python23", "/versions/18/related/6/label": "plpython-sharing", "/versions/18/related/7/label": "plpython-subtransaction", "/versions/18/related/8/label": "plpython-transactions", "/versions/18/related/9/label": "plpython-trigger", "/versions/18/related/10/label": "plpython-util", "/versions/18/sections/0/title": "Installation definition from the matching source archive", "/versions/18/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "a4446f4dbee06aaa1ab899b468b791e7b69aedf008c2cc04947eb9c52c8e4787"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "19": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/19/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/19/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/19/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/19/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/19/plpython-event-trigger.html", "label": "\u4e8b\u4ef6\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/19/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/19/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/19/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/19/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/19/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/19/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/19/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/19/plpython.html", "path": "plpython.html", "label": "PostgreSQL 19 English manual", "sha256": "164a014046e3c9955a97cc083e6ed2e398f3588b222624a81f74a1e9b295e3c5", "language": "en", "original_url": "/docs/19/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/19/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/19/plpython-data.html", "method": "same-major semantic node", "sha256": "c498d6567282d0c68de6451548e982e840783473d6e409d6cc13fb3790ea820f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-database.html", "method": "same-major semantic node", "sha256": "ef9eb34f6eefa86523eb79af5c71d053defa2c53724174ee6d6fd5eb0fd85ab5", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-do.html", "method": "same-major semantic node", "sha256": "b06a78b17eb7d38cb47f9633743e67560f6469b2435fdf90d1d14cc4b3de1d8c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-envar.html", "method": "same-major semantic node", "sha256": "3fd37a156ebfb691f2626ba08e31f47cae52e700c0c917e080e1050430f8b60a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-event-trigger.html", "method": "same-major semantic node", "sha256": "8c11e042ac034ec845c292ca34e57a0abb393a7a78da22d69405162e769347de", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-funcs.html", "method": "same-major semantic node", "sha256": "9fadcea0a3b72abaf908d39440a438bebccd990ca70bafe5bfad93204d78e901", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-python23.html", "method": "same-major semantic node", "sha256": "412c18095ce2ad004441d37ee91b972696b7a26e2b37701aa775efc4c3b21627", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-sharing.html", "method": "same-major semantic node", "sha256": "c595b71bcddf3e448a84efbacdf7dd3e0d41ca2928db4efbaaf57046a7f59453", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "2a17cccf03c6de0fd004049ef473722f040e64fd1f81d64a54a9e9ecf27d38da", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-transactions.html", "method": "same-major semantic node", "sha256": "199e433723fbfd436024912e8cbbc52e75d55ab6ff232a2169f69c83ca35817b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-trigger.html", "method": "same-major semantic node", "sha256": "6d5b3f29660b9f88bba33e45ee703a1ae8b3e180c74945c309a5c8c16b4c7944", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython-util.html", "method": "same-major semantic node", "sha256": "d7d54a522d7b6c9a30da10db85da98009bb158162473d904883a361cdd6aa723", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plpython.html", "method": "same-major semantic node", "sha256": "d0a613cd6729c1c693617b0a818a38c44554200f18fcf9b3739db7767a832ea4", "language": "zh", "matched_nodes": ["#PLPYTHON/div[6]/h3[0]", "#PLPYTHON/div[6]/p[1]", "#PLPYTHON/div[8]/h3[0]", "#PLPYTHON/div[8]/p[1]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]", "#PLPYTHON/p[7]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "PL/Python3U untrusted procedural language", "/versions/19/facts/0/label": "Kind", "/versions/19/facts/0/value": "Bundled procedural-language variant", "/versions/19/facts/1/label": "Family", "/versions/19/facts/2/label": "Trusted", "/versions/19/facts/3/label": "Handler", "/versions/19/facts/4/label": "Inline handler", "/versions/19/facts/5/label": "Validator", "/versions/19/facts/6/label": "Library", "/versions/19/facts/7/label": "Default version", "/versions/19/facts/8/label": "Module pathname", "/versions/19/facts/9/label": "Comment", "/versions/19/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/19/related/0/label": "plpython-data", "/versions/19/related/1/label": "plpython-database", "/versions/19/related/2/label": "plpython-do", "/versions/19/related/3/label": "plpython-envar", "/versions/19/related/4/label": "plpython-event-trigger", "/versions/19/related/5/label": "plpython-funcs", "/versions/19/related/6/label": "plpython-python23", "/versions/19/related/7/label": "plpython-sharing", "/versions/19/related/8/label": "plpython-subtransaction", "/versions/19/related/9/label": "plpython-transactions", "/versions/19/related/10/label": "plpython-trigger", "/versions/19/related/11/label": "plpython-util", "/versions/19/sections/0/title": "Installation definition from the matching source archive", "/versions/19/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "eec7430573aabff612e9bc2b04bd75a2faadd4920d86dff8e8ea346f9ce238b3"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "20": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/devel/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/devel/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/devel/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/devel/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/devel/plpython-event-trigger.html", "label": "\u4e8b\u4ef6\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/devel/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/devel/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/devel/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/devel/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/devel/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/devel/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/devel/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/devel/plpython.html", "path": "plpython.html", "label": "PostgreSQL 20 English manual", "sha256": "fc014555f7a9ba9053b5ae1a669f11ec30ab51638b8ef1406f8006518d98d493", "language": "en", "original_url": "/docs/devel/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/devel/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/devel/plpython-data.html", "method": "same-major semantic node", "sha256": "f9a28f0ddf8baf9c7eafdf0ff883819a8985152463c29247688af76d685ba0fc", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-database.html", "method": "same-major semantic node", "sha256": "4d9b0dbf886b0997082af7f79fa9f96dfe5cd92183926bf42511732d5140d997", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-do.html", "method": "same-major semantic node", "sha256": "f3ca1773a6303a4026e229d8d85bd0d9a6deef8d2bdc3d8b2ef17b46d9f7765e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-envar.html", "method": "same-major semantic node", "sha256": "5378ac4cdef72dd808b353069322a2ebde1d028bc6d2f5ee1677a97dd6d8a96c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-event-trigger.html", "method": "same-major semantic node", "sha256": "bc65395942bdac8f9eae3c7324c57c6db3222e270b33224a6d4f73c8b5c1aa95", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-funcs.html", "method": "same-major semantic node", "sha256": "1bd081bc1af5bf778e461b6ab8c7ffe697abcb7fdc39c873753290c102242d77", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-python23.html", "method": "same-major semantic node", "sha256": "4290fb6b980ade71d2cd8774870bd1821f9b9bf7e01b43d553568a32f344f471", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-sharing.html", "method": "same-major semantic node", "sha256": "f826c8305861ed8f837b9878c1a66a17273e0fb7714740d1b6a456ae7c4789c4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "a6405ed77e533a62d16a7268c69192607169a2f06ce4f16306f0463efedae89f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-transactions.html", "method": "same-major semantic node", "sha256": "95848a6dee419df104fa2d797aaff2ed24cc5751f28aa73f73a40d8eb8f58057", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-trigger.html", "method": "same-major semantic node", "sha256": "66fcc58b1030ed2e303d78edc19c9e0989dced0a21b225748b7490d63b8da8b6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython-util.html", "method": "same-major semantic node", "sha256": "5dd7aeb278320f5bf89f0690030e645996760d88f144440fef8eeef329bc7d9a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plpython.html", "method": "same-major semantic node", "sha256": "82cbf68ad2aed6c3dd56e7df14f1273b8af613cd85720779a269d104b8feded3", "language": "zh", "matched_nodes": ["#PLPYTHON/div[6]/h3[0]", "#PLPYTHON/div[6]/p[1]", "#PLPYTHON/div[8]/h3[0]", "#PLPYTHON/div[8]/p[1]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]", "#PLPYTHON/p[7]"]}], "language": "zh", "original_text": {"/summary": "PL/Python3U untrusted procedural language", "/versions/20/description/0": "PL/Python3U untrusted procedural language", "/versions/20/facts/0/label": "Kind", "/versions/20/facts/0/value": "Bundled procedural-language variant", "/versions/20/facts/1/label": "Family", "/versions/20/facts/2/label": "Trusted", "/versions/20/facts/3/label": "Handler", "/versions/20/facts/4/label": "Inline handler", "/versions/20/facts/5/label": "Validator", "/versions/20/facts/6/label": "Library", "/versions/20/facts/7/label": "Default version", "/versions/20/facts/8/label": "Module pathname", "/versions/20/facts/9/label": "Comment", "/versions/20/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/20/related/0/label": "plpython-data", "/versions/20/related/1/label": "plpython-database", "/versions/20/related/2/label": "plpython-do", "/versions/20/related/3/label": "plpython-envar", "/versions/20/related/4/label": "plpython-event-trigger", "/versions/20/related/5/label": "plpython-funcs", "/versions/20/related/6/label": "plpython-python23", "/versions/20/related/7/label": "plpython-sharing", "/versions/20/related/8/label": "plpython-subtransaction", "/versions/20/related/9/label": "plpython-transactions", "/versions/20/related/10/label": "plpython-trigger", "/versions/20/related/11/label": "plpython-util", "/versions/20/sections/0/title": "Installation definition from the matching source archive", "/versions/20/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "d72597123dd68d79ed84d9b0e9eb34acd2d481642cd39cca9a9d6fedd93bf1b0"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}}}, "snapshot": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Python"}, {"label": "\u53ef\u4fe1", "value": "f"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plpython3_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython3_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython3_validator"}, {"label": "\u5e93", "value": "$libdir/plpython3"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython3"}, {"label": "\u6ce8\u91ca", "value": "PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/18/plpython-data.html", "label": "\u6570\u636e\u503c"}, {"url": "/docs/18/plpython-database.html", "label": "\u6570\u636e\u5e93\u8bbf\u95ee"}, {"url": "/docs/18/plpython-do.html", "label": "\u533f\u540d\u4ee3\u7801\u5757"}, {"url": "/docs/18/plpython-envar.html", "label": "\u73af\u5883\u53d8\u91cf"}, {"url": "/docs/18/plpython-funcs.html", "label": "PL/Python \u51fd\u6570"}, {"url": "/docs/18/plpython-python23.html", "label": "Python 2 \u4e0e Python 3"}, {"url": "/docs/18/plpython-sharing.html", "label": "\u5171\u4eab\u6570\u636e"}, {"url": "/docs/18/plpython-subtransaction.html", "label": "\u663e\u5f0f\u5b50\u4e8b\u52a1"}, {"url": "/docs/18/plpython-transactions.html", "label": "\u4e8b\u52a1\u7ba1\u7406"}, {"url": "/docs/18/plpython-trigger.html", "label": "\u89e6\u53d1\u5668\u51fd\u6570"}, {"url": "/docs/18/plpython-util.html", "label": "\u8f85\u52a9\u51fd\u6570"}], "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": "https://pg.center/docs/18/plpython.html", "path": "plpython.html", "label": "PostgreSQL 18 English manual", "sha256": "71a8ee61599ffebaf8d3b7369b3722728367c00fb6a108f3f16e7a93124d5a90", "language": "en", "original_url": "/docs/18/plpython.html"}], "sections": [{"code": "/* src/pl/plpython/plpython3u--1.0.sql */\n\nCREATE FUNCTION plpython3_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython3_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython3u\n  HANDLER plpython3_call_handler\n  INLINE plpython3_inline_handler\n  VALIDATOR plpython3_validator;\n\nCOMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "comment": "PL/Python3U untrusted procedural language", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython3"}, "description": ["PL/Python3U \u975e\u53ef\u4fe1\u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPYTHON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Python \u2014 Python Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\"><span class=\"application\">PL/Python</span>\u8fc7\u7a0b\u8bed\u8a00\u5141\u8bb8\u4f7f\u7528<a class=\"ulink\" href=\"https://www.python.org\" target=\"_top\">Python \u8bed\u8a00</a>\u7f16\u5199<span class=\"productname\">PostgreSQL</span>\u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Python\uff0c\u53ef\u4f7f\u7528<code class=\"literal\">CREATE EXTENSION plpython3u</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<p lang=\"zh\">PL/Python \u53ea\u80fd\u4f5c\u4e3a\u4e00\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u4e0d\u53d7\u4fe1\u4efb\u7684</span>\u201d</span>\u8bed\u8a00\u4f7f\u7528\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u4e0d\u63d0\u4f9b\u4efb\u4f55\u673a\u5236\u6765\u9650\u5236\u7528\u6237\u80fd\u5728\u5176\u4e2d\u505a\u4ec0\u4e48\uff0c\u56e0\u6b64\u5176\u540d\u79f0\u4e3a<code class=\"literal\">plpython3u</code>\u3002\u5982\u679c\u5c06\u6765\u80fd\u5728 Python \u4e2d\u5f00\u53d1\u51fa\u5b89\u5168\u7684\u6267\u884c\u673a\u5236\uff0c\u53d7\u4fe1\u4efb\u7684\u53d8\u4f53<code class=\"literal\">plpython</code>\u53ef\u80fd\u4f1a\u51fa\u73b0\u3002\u4f7f\u7528\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Python \u7f16\u5199\u51fd\u6570\u65f6\uff0c\u51fd\u6570\u7f16\u5199\u8005\u5fc5\u987b\u786e\u4fdd\u8be5\u51fd\u6570\u4e0d\u4f1a\u88ab\u7528\u6765\u505a\u4efb\u4f55\u4e0d\u5e0c\u671b\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u505a\u5230\u4efb\u4f55\u4ee5\u6570\u636e\u5e93\u7ba1\u7406\u5458\u8eab\u4efd\u767b\u5f55\u7684\u7528\u6237\u6240\u80fd\u505a\u7684\u4e8b\u60c5\u3002\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u624d\u80fd\u5728<code class=\"literal\">plpython3u</code>\u8fd9\u7c7b\u4e0d\u53d7\u4fe1\u4efb\u7684\u8bed\u8a00\u4e2d\u521b\u5efa\u51fd\u6570\u3002</p>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u6e90\u7801\u5305\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Python \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605\u5b89\u88c5\u8bf4\u660e\uff09\u3002\u4e8c\u8fdb\u5236\u5305\u7528\u6237\u5219\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Python\u3002</p>\n</div>\n</div>", "manual_path": "/docs/18/plpython.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/plpython-data.html", "method": "same-major semantic node", "sha256": "9a8c1510b8f31135adb257cd1cb1d853508eb27c1b4d93cbccd080ed1c2eadac", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-database.html", "method": "same-major semantic node", "sha256": "0c46cbbb0b22aff5288f24f515e888165ee239dc1f95a3b3da7661b95cd926ea", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-do.html", "method": "same-major semantic node", "sha256": "4a434723441f4ff4aad7afd0a4e8a29ce0d451d3c3d0d61f315c036b26d945c1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-envar.html", "method": "same-major semantic node", "sha256": "8696a1815220b7f78968796f9ff40975a26c67512e3c6757b7f61de91cb1640f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-funcs.html", "method": "same-major semantic node", "sha256": "7e6f4e1c9aea0122f397a0f48473ba8ec7d9363e6a18809a986a9b6e672938d6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-python23.html", "method": "same-major semantic node", "sha256": "4fbf41ecc9a70ef1a5ad807d99a0760a04329c9a293fb32c2c6b300fb85f125c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-sharing.html", "method": "same-major semantic node", "sha256": "47540eda825eff235220a1182da59a1e23e051ceabc2ba92ba01d5319ff2cd2c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-subtransaction.html", "method": "same-major semantic node", "sha256": "399e0404ae735132a340c846239784e641642f190fc9da82e7fbb3b665349c1e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-transactions.html", "method": "same-major semantic node", "sha256": "bd4ae8609f4ae55f005700446b74df19b686c9c7df674ab27f03fff7f54a3a60", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-trigger.html", "method": "same-major semantic node", "sha256": "c0ffdc0ca8befc5cae8f71ada7a888ea342a06fb303962527a4d16b5390c7dab", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython-util.html", "method": "same-major semantic node", "sha256": "aa4dafe008afd2725d98128685527efe229793956f27c665dade721ceb9b6ed5", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plpython.html", "method": "same-major semantic node", "sha256": "bbe007458590ea72963d45ad65d4e9459149823382a71795bc0a89e991cfd0e6", "language": "zh", "matched_nodes": ["#PLPYTHON/div[6]/h3[0]", "#PLPYTHON/div[6]/p[1]", "#PLPYTHON/div[8]/h3[0]", "#PLPYTHON/div[8]/p[1]", "#PLPYTHON/p[4]", "#PLPYTHON/p[5]", "#PLPYTHON/p[7]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "PL/Python3U untrusted procedural language", "/versions/18/facts/0/label": "Kind", "/versions/18/facts/0/value": "Bundled procedural-language variant", "/versions/18/facts/1/label": "Family", "/versions/18/facts/2/label": "Trusted", "/versions/18/facts/3/label": "Handler", "/versions/18/facts/4/label": "Inline handler", "/versions/18/facts/5/label": "Validator", "/versions/18/facts/6/label": "Library", "/versions/18/facts/7/label": "Default version", "/versions/18/facts/8/label": "Module pathname", "/versions/18/facts/9/label": "Comment", "/versions/18/facts/9/value": "PL/Python3U untrusted procedural language", "/versions/18/related/0/label": "plpython-data", "/versions/18/related/1/label": "plpython-database", "/versions/18/related/2/label": "plpython-do", "/versions/18/related/3/label": "plpython-envar", "/versions/18/related/4/label": "plpython-funcs", "/versions/18/related/5/label": "plpython-python23", "/versions/18/related/6/label": "plpython-sharing", "/versions/18/related/7/label": "plpython-subtransaction", "/versions/18/related/8/label": "plpython-transactions", "/versions/18/related/9/label": "plpython-trigger", "/versions/18/related/10/label": "plpython-util", "/versions/18/sections/0/title": "Installation definition from the matching source archive", "/versions/18/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "a4446f4dbee06aaa1ab899b468b791e7b69aedf008c2cc04947eb9c52c8e4787"}, "source_files": {"src/pl/plpython/plpython3u.control": "efdfc8503fb9e88e0ecf3c8352ea2fd187ef698e10d67f152b37c7855b9a6114", "src/pl/plpython/plpython3u--1.0.sql": "7c4588b4f1176b3bbec5f5b3fd851931fda88652ee3b3985cde4f88d75b11a65"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython3_call_handler", "library": "$libdir/plpython3", "trusted": "f", "validator": "plpython3_validator", "inline_handler": "plpython3_inline_handler", "default_version": "1.0"}, "comparison_hash": "5e975c2ecc8e375e26a1703928d39bd29f0cfaafa37f8e98a462e947107f78cd", "manual_language": "zh"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}