{"kind": "language", "major": "18", "item": {"slug": "plpython2u", "name": "plpython2u", "name_zh": "", "category": "PL/Python", "summary": "\u6240\u9009\u7248\u672c\u672a\u6536\u5f55\u6b64\u6761\u76ee\u3002", "aliases": [], "content_hash": "257537da9b49406a5b7d4177283b5bd1fcf54fe65afd4ba6c6ae910448ec428d", "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": "plpython2_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython2_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython2_validator"}, {"label": "\u5e93", "value": "$libdir/plpython2"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython2"}, {"label": "\u6ce8\u91ca", "value": "PL/Python2U \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/plpython2u--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 plpython2u;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpython2u IS 'PL/Python2U 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/Python2U untrusted procedural language", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython2"}, "description": ["PL/Python2U \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/Python2U 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/Python2U 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": "a9fcaa4b44600b3b03fff67f731fdefe8917a57c1edad83b3a1842475b029ca0"}, "source_files": {"src/pl/plpython/plpython2u.control": "c09792a1d7b0e512559e1c4c72b0c3e1ab0bf37b85dd5c8ebec16e0c3b333209", "src/pl/plpython/plpython2u--1.0.sql": "8a526d5cefc57917393eff8a5a1ce4d468affb31c1e63de71a6cd57cdf2575cf"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0"}, "comparison_hash": "97802e2b3133abfc2be638d7f109df527604bcc726c8a2ce9fdc47a82b753410", "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": "plpython2_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython2_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython2_validator"}, {"label": "\u5e93", "value": "$libdir/plpython2"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython2"}, {"label": "\u6ce8\u91ca", "value": "PL/Python2U \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/plpython2u--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 plpython2u;\n\nCOMMENT ON PROCEDURAL LANGUAGE plpython2u IS 'PL/Python2U 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/Python2U untrusted procedural language", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython2"}, "description": ["PL/Python2U \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/Python2U 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/Python2U 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": "9c8c19ee15b9f32986792e8ae898a593192ce2570c69e2f1e79b84bd0075ca40"}, "source_files": {"src/pl/plpython/plpython2u.control": "c09792a1d7b0e512559e1c4c72b0c3e1ab0bf37b85dd5c8ebec16e0c3b333209", "src/pl/plpython/plpython2u--1.0.sql": "8a526d5cefc57917393eff8a5a1ce4d468affb31c1e63de71a6cd57cdf2575cf"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0"}, "comparison_hash": "97802e2b3133abfc2be638d7f109df527604bcc726c8a2ce9fdc47a82b753410", "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": "plpython2_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython2_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython2_validator"}, {"label": "\u5e93", "value": "$libdir/plpython2"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython2"}, {"label": "\u6ce8\u91ca", "value": "PL/Python2U \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/plpython2u--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 plpython2u;\n\nCOMMENT ON LANGUAGE plpython2u IS 'PL/Python2U 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/Python2U untrusted procedural language", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython2"}, "description": ["PL/Python2U \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/Python2U 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/Python2U 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": "dd9556387d68feafeb627b945382b5256057f003711f92b3e293bdc010471d02"}, "source_files": {"src/pl/plpython/plpython2u.control": "c09792a1d7b0e512559e1c4c72b0c3e1ab0bf37b85dd5c8ebec16e0c3b333209", "src/pl/plpython/plpython2u--1.0.sql": "58b7c3fcd5335fb56b4138a645975e53d6fd663b39b631a605fd0ae915b95daa"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0"}, "comparison_hash": "97802e2b3133abfc2be638d7f109df527604bcc726c8a2ce9fdc47a82b753410", "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": "plpython2_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython2_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython2_validator"}, {"label": "\u5e93", "value": "$libdir/plpython2"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython2"}, {"label": "\u6ce8\u91ca", "value": "PL/Python2U \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/plpython2u--1.0.sql */\n\nCREATE FUNCTION plpython2_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython2_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython2_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython2u\n  HANDLER plpython2_call_handler\n  INLINE plpython2_inline_handler\n  VALIDATOR plpython2_validator;\n\nCOMMENT ON LANGUAGE plpython2u IS 'PL/Python2U 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/Python2U untrusted procedural language", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython2"}, "description": ["PL/Python2U \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/Python2U 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/Python2U 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": "7ed51296de40a8adb72216669aa8ed7de3d487f80dbb9f65d9d8dbcc61c470d2"}, "source_files": {"src/pl/plpython/plpython2u.control": "c09792a1d7b0e512559e1c4c72b0c3e1ab0bf37b85dd5c8ebec16e0c3b333209", "src/pl/plpython/plpython2u--1.0.sql": "2e7dcdbf0cb5eddc11ffce175e5e0c89e27076ac26ab2764ca5a90180db99a70"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0"}, "comparison_hash": "97802e2b3133abfc2be638d7f109df527604bcc726c8a2ce9fdc47a82b753410", "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": "plpython2_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plpython2_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plpython2_validator"}, {"label": "\u5e93", "value": "$libdir/plpython2"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plpython2"}, {"label": "\u6ce8\u91ca", "value": "PL/Python2U \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/plpython2u--1.0.sql */\n\nCREATE FUNCTION plpython2_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython2_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plpython2_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE LANGUAGE plpython2u\n  HANDLER plpython2_call_handler\n  INLINE plpython2_inline_handler\n  VALIDATOR plpython2_validator;\n\nCOMMENT ON LANGUAGE plpython2u IS 'PL/Python2U 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/Python2U untrusted procedural language", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plpython2"}, "description": ["PL/Python2U \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": {"/summary": "PL/Python2U untrusted procedural language", "/versions/14/description/0": "PL/Python2U 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/Python2U 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": "48c00a463997e7136e57ed2f37e2304b4cb55dee737de501f4779542ad1c62ab"}, "source_files": {"src/pl/plpython/plpython2u.control": "c09792a1d7b0e512559e1c4c72b0c3e1ab0bf37b85dd5c8ebec16e0c3b333209", "src/pl/plpython/plpython2u--1.0.sql": "2e7dcdbf0cb5eddc11ffce175e5e0c89e27076ac26ab2764ca5a90180db99a70"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Python", "handler": "plpython2_call_handler", "library": "$libdir/plpython2", "trusted": "f", "validator": "plpython2_validator", "inline_handler": "plpython2_inline_handler", "default_version": "1.0"}, "comparison_hash": "97802e2b3133abfc2be638d7f109df527604bcc726c8a2ce9fdc47a82b753410", "manual_language": "zh"}}}, "snapshot": null, "comparison": {"left": "14", "right": "15", "status": "removed", "diff": "--- PostgreSQL 14\n+++ PostgreSQL 15\n@@ -1,10 +1 @@\n-{\n-  \"default_version\": \"1.0\",\n-  \"family\": \"PL/Python\",\n-  \"handler\": \"plpython2_call_handler\",\n-  \"inline_handler\": \"plpython2_inline_handler\",\n-  \"kind\": \"Bundled procedural-language variant\",\n-  \"library\": \"$libdir/plpython2\",\n-  \"trusted\": \"f\",\n-  \"validator\": \"plpython2_validator\"\n-}\n+\u8be5\u7248\u672a\u6536\u5f55"}}