{"kind": "type", "slug": "polygon", "name": "polygon", "major": "18", "snapshot": {"casts": [{"castfunc": "polygon(path)", "castmethod": "f", "castsource": "path", "casttarget": "polygon", "castcontext": "a"}, {"castfunc": "polygon(box)", "castmethod": "f", "castsource": "box", "casttarget": "polygon", "castcontext": "a"}, {"castfunc": "point(polygon)", "castmethod": "f", "castsource": "polygon", "casttarget": "point", "castcontext": "e"}, {"castfunc": "path", "castmethod": "f", "castsource": "polygon", "casttarget": "path", "castcontext": "a"}, {"castfunc": "box(polygon)", "castmethod": "f", "castsource": "polygon", "casttarget": "box", "castcontext": "e"}, {"castfunc": "circle(polygon)", "castmethod": "f", "castsource": "polygon", "casttarget": "circle", "castcontext": "e"}, {"castfunc": "polygon(circle)", "castmethod": "f", "castsource": "circle", "casttarget": "polygon", "castcontext": "e"}], "facts": [{"label": "目录名称", "value": "pg_catalog.polygon"}, {"label": "类型 OID", "value": "604"}, {"label": "类型种类", "value": "基础类型"}, {"label": "声明长度", "value": "变长（varlena）"}, {"label": "存储策略", "value": "扩展"}, {"label": "输入函数", "value": "poly_in"}, {"label": "输出函数", "value": "poly_out"}, {"label": "手册中的声明", "value": "polygon"}, {"label": "存储大小", "value": "40+16n字节"}, {"label": "手册说明", "value": "多边形（类似于封闭路径）"}, {"label": "表示方式", "value": "((x1,y1),...)"}], "ranges": [], "aliases": [], "catalog": {"oid": "604", "descr": "geometric polygon, format '(point1,...)'", "typacl": "_null_", "typlen": "-1", "typelem": "0", "typname": "polygon", "typsend": "poly_send", "typtype": "b", "typalign": "d", "typarray": "0", "typbyval": "f", "typdelim": "','", "typinput": "poly_in", "typmodin": "-", "typndims": "0", "typowner": "POSTGRES", "typrelid": "0", "typmodout": "-", "typoutput": "poly_out", "typtypmod": "-1", "typanalyze": "-", "typdefault": "_null_", "typnotnull": "f", "typreceive": "poly_recv", "typstorage": "x", "typbasetype": "0", "typcategory": "G", "typcollation": "0", "typisdefined": "t", "typnamespace": "pg_catalog", "typsubscript": "-", "typdefaultbin": "_null_", "array_type_oid": "1027", "typispreferred": "f", "array_type_name": "_polygon"}, "related": [{"url": "/wiki/catalog/pg_type/?v=18", "label": "pg_type 系统目录"}, {"url": "/wiki/catalog/pg_cast/?v=18", "label": "pg_cast 系统目录"}, {"url": "/wiki/catalog/pg_operator/?v=18", "label": "pg_operator 系统目录"}, {"url": "/wiki/catalog/pg_opclass/?v=18", "label": "pg_opclass 系统目录"}, {"url": "/wiki/type/arrays/?v=18", "label": "数组"}, {"url": "/wiki/indexam/gist/?v=18", "label": "gist 索引访问方法"}, {"url": "/wiki/indexam/spgist/?v=18", "label": "spgist 索引访问方法"}], "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_files": {"doc/src/sgml/datatype.sgml": "86328daa77e20d81d222376ec0306d9841a17104e436c08d138eb763aefb3700", "src/include/catalog/pg_am.h": "3426799df799f32163fcc0765f43dbdb5e88e626acf31284fef9fc6014b69d8e", "src/include/catalog/pg_am.dat": "b3cb86b102a42fb0024cbd99779c9897afb40d12a71f5cc5a0e5aee7ff2f9969", "src/include/catalog/pg_cast.h": "de585c7df687d698e7d1d100dce8a794ac9da52414ea48169191019178c8f053", "src/include/catalog/pg_proc.h": "f7d59f07c5b95e2f3c7141762a0f576e8a3af7581ba54c27537f4d500472bea5", "src/include/catalog/pg_type.h": "8fb198749fd82b6c1818a3c18455f226f66116fcfeb3d4959c65ce3fda22802e", "src/include/catalog/pg_range.h": "45546d952b5181f989bd9234721897fc2b37005c8e49ce2ddc156f26974c3ca4", "src/include/catalog/pg_cast.dat": "97911281ca2c81917394ccb2ec13367e37c6801fd461d5e1a3d2f28b911b46b2", "src/include/catalog/pg_proc.dat": "1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a", "src/include/catalog/pg_type.dat": "5f5887b75677cba2d4a1a0cfeb355df5ed91f85d385fac88bd8d7c605b3578f9", "src/include/catalog/pg_opclass.h": "9c218537806c8ef0398302faaca7f91315dfc1198c48706cebffb479b68defaf", "src/include/catalog/pg_range.dat": "5c2271f8e89e9378d1887204e5785060b77405b5f0ff3e6c719250c9c1dcfcc4", "src/include/catalog/pg_operator.h": "621b18cfffe102413d79b746ce7a10f77fc60fdd097bac34c22b31070d3ee3c4", "src/include/catalog/pg_opfamily.h": "e1f5fc8aebd3042df847455bf66bf755f768c2aa8a9b03d22f7ec8563eba59c0", "src/include/catalog/pg_opclass.dat": "4ee7d3619a6aa106e1c0db55de903931c7d11b1c60ba053a022519c55f8ee668", "src/include/catalog/pg_operator.dat": "5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703", "src/include/catalog/pg_opfamily.dat": "3b694879027b858f2ecf1fa1152b7e30c6e15a216ba99c2384291c30e9d52311"}, "manual_sha256": {"arrays.html": "0e1d5c5a7b4a949d4439995f44f74ad4264e050d16eb9ad2a850fbaee04032df", "domains.html": "82d486973ccc35d14276627a67ac76b434452f23f9ed4d8aa3fbb01fdf285fc2", "datatype.html": "e581f67c74e42006289638c8659e9b338adbfd7f068bd8bf2b3be3880fcd2254", "rowtypes.html": "74f99e029c3a9edfd3e18810ba3c8cb66d3aada91eb67b86476560871e6617e9", "rangetypes.html": "e4960abc7ce8e51d794f94f1e57b099d30b7f75dd7f2b23a960eef91f6291c33", "datatype-bit.html": "c49124aad561636c18080b9e09572fde7785a6b9eae86f5a33283f0fd6774c37", "datatype-oid.html": "8b3360302225f08ae72716ce1804596de95b568e5d31f788cb4597427b28cc38", "datatype-xml.html": "061fc2295b7b69be704f0a741b8decd10ad721059f871fb0243c669bb54d7822", "datatype-enum.html": "cab38e53222e30cc94b24de4b33634fd22d7c93f58ebcf35f646c9b8da78fae8", "datatype-json.html": "650162a05b660146b500a205d523374d00aee117a6a6240d30262be51b6e33e5", "datatype-uuid.html": "292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246", "datatype-money.html": "8b29c14b90679683ac5c472b59a0a7e2853f32cc7db43fab417b2697a6879964", "functions-info.html": "78ac80bf81da2e4f4a33f3b850faa86f0f58ec54a083d6c31da557907de0df87", "catalog-pg-type.html": "ea9c9313bab8e92a7da18ebc50c7ff1f908dd80999a7e0ca3bbc82ba626c58d4", "datatype-binary.html": "0c03ec47b76e37888a3da7f5dcfd340128a5d356642a85185cc9ebe17856a904", "datatype-pg-lsn.html": "339172f5107cc7eb7139bec911277647219e92a532cebd0f3da0a5dacf8195af", "datatype-pseudo.html": "c7cf0b8214304bd8702c95f2142671ae5f0d631f83717f9c07d9e1f2579961b4", "datatype-boolean.html": "b633f663e6c8276e7056287640c413aa79dbc15d5353cee0d41653d58d376956", "datatype-numeric.html": "b74619f7ac2f1ca9f85c48073df78c33dd30e464e61baba6008634534edcb500", "sql-createdomain.html": "e94f927196de1b0ea1ce35cd4603c1f6f544439adcc0edf1c4222358e832245b", "datatype-datetime.html": "e366275d8b13845bfa4ef0d68faa093e5f3ecb708a1ec870cbcbf7e425b85699", "datatype-character.html": "c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73", "datatype-geometric.html": "0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9", "datatype-net-types.html": "96846e641cc37727ddcd8b8a1aa0dbe33cd9787760a2b4efb0dcb9403d5be63f", "datatype-textsearch.html": "4b15e05be8b49a71b28aea22f2c46d0dbf639a91e7b4fe129a4c737c6daad47c"}, "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/datatype-geometric.html", "path": "datatype-geometric.html", "label": "PostgreSQL 18 English manual", "sha256": "0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9", "language": "en", "original_url": "/docs/18/datatype-geometric.html"}, {"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}], "coverage": "source inventory; exact declared input types for operator classes", "sections": [], "operators": [{"oid": "485", "descr": "is left of", "oprcom": "0", "oprcode": "poly_left", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "<<", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "486", "descr": "overlaps or is left of", "oprcom": "0", "oprcode": "poly_overleft", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&<", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "487", "descr": "overlaps or is right of", "oprcom": "0", "oprcode": "poly_overright", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&>", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "488", "descr": "is right of", "oprcom": "0", "oprcode": "poly_right", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": ">>", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "489", "descr": "is contained by", "oprcom": "@>(polygon,polygon)", "oprcode": "poly_contained", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "<@", "oprrest": "contsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "490", "descr": "contains", "oprcom": "<@(polygon,polygon)", "oprcode": "poly_contain", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "@>", "oprrest": "contsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "491", "descr": "same as", "oprcom": "~=(polygon,polygon)", "oprcode": "poly_same", "oprjoin": "eqjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "~=", "oprrest": "eqsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "492", "descr": "overlaps", "oprcom": "&&(polygon,polygon)", "oprcode": "poly_overlap", "oprjoin": "areajoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&&", "oprrest": "areasel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "712", "descr": "distance between", "oprcom": "<->(polygon,polygon)", "oprcode": "poly_distance", "oprjoin": "-", "oprkind": "b", "oprleft": "polygon", "oprname": "<->", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "756", "descr": "is contained by", "oprcom": "@>(polygon,point)", "oprcode": "pt_contained_poly", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "point", "oprname": "<@", "oprrest": "contsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "757", "descr": "contains", "oprcom": "<@(point,polygon)", "oprcode": "poly_contain_pt", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "@>", "oprrest": "contsel", "oprowner": "POSTGRES", "oprright": "point", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "971", "descr": "center of", "oprcom": "0", "oprcode": "poly_center", "oprjoin": "-", "oprkind": "l", "oprleft": "0", "oprname": "@@", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "point", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "1521", "descr": "number of points", "oprcom": "0", "oprcode": "poly_npoints", "oprjoin": "-", "oprkind": "l", "oprleft": "0", "oprname": "#", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "int4", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "3276", "descr": "distance between", "oprcom": "<->(polygon,point)", "oprcode": "dist_ppoly", "oprjoin": "-", "oprkind": "b", "oprleft": "point", "oprname": "<->", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "3289", "descr": "distance between", "oprcom": "<->(point,polygon)", "oprcode": "dist_polyp", "oprjoin": "-", "oprkind": "b", "oprleft": "polygon", "oprname": "<->", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "point", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "1523", "descr": "distance between", "oprcom": "<->(polygon,circle)", "oprcode": "dist_cpoly", "oprjoin": "-", "oprkind": "b", "oprleft": "circle", "oprname": "<->", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "1383", "descr": "distance between", "oprcom": "<->(circle,polygon)", "oprcode": "dist_polyc", "oprjoin": "-", "oprkind": "b", "oprleft": "polygon", "oprname": "<->", "oprrest": "-", "oprowner": "POSTGRES", "oprright": "circle", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2574", "descr": "is below", "oprcom": "0", "oprcode": "poly_below", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "<<|", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2575", "descr": "overlaps or is below", "oprcom": "0", "oprcode": "poly_overbelow", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&<|", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2576", "descr": "overlaps or is above", "oprcom": "0", "oprcode": "poly_overabove", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "|&>", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}, {"oid": "2577", "descr": "is above", "oprcom": "0", "oprcode": "poly_above", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "|>>", "oprrest": "positionsel", "oprowner": "POSTGRES", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f", "oprnamespace": "pg_catalog"}], "signature": "polygon", "description": ["平面上的闭合几何路径"], "manual_html": "<div class=\"sect1\" id=\"DATATYPE-GEOMETRIC\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\n<div>\n<div>\n<h2 class=\"title\" style=\"clear: both\">8.8. 几何类型 </h2>\n</div>\n</div>\n</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">几何数据类型表示二维的空间物体。<a class=\"xref\" href=\"/docs/18/datatype-geometric.html#DATATYPE-GEO-TABLE\" title=\"表 8.20. 几何类型\">表 8.20</a>展示了<span class=\"productname\">PostgreSQL</span>中可以用的几何类型。</p>\n<div class=\"table\" id=\"DATATYPE-GEO-TABLE\">\n<p class=\"title\" lang=\"zh\"><strong>表 8.20. 几何类型</strong></p>\n<div class=\"table-contents\">\n<table class=\"table\">\n<thead>\n<tr>\n<th lang=\"zh\">名字</th>\n<th lang=\"zh\">存储大小</th>\n<th lang=\"zh\">说明</th>\n<th lang=\"zh\">表示方式</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"type\">point</code></td>\n<td lang=\"zh\">16 字节</td>\n<td lang=\"zh\">平面上的点</td>\n<td>(x,y)</td>\n</tr>\n<tr>\n<td><code class=\"type\">line</code></td>\n<td lang=\"zh\">24 字节</td>\n<td lang=\"zh\">无限直线</td>\n<td>{A,B,C}</td>\n</tr>\n<tr>\n<td><code class=\"type\">lseg</code></td>\n<td lang=\"zh\">32 字节</td>\n<td lang=\"zh\">有限线段</td>\n<td>[(x1,y1),(x2,y2)]</td>\n</tr>\n<tr>\n<td><code class=\"type\">box</code></td>\n<td lang=\"zh\">32 字节</td>\n<td lang=\"zh\">矩形框</td>\n<td>(x1,y1),(x2,y2)</td>\n</tr>\n<tr>\n<td><code class=\"type\">path</code></td>\n<td lang=\"zh\">16+16n 字节</td>\n<td lang=\"zh\">闭合路径（类似多边形）</td>\n<td>((x1,y1),...)</td>\n</tr>\n<tr>\n<td><code class=\"type\">path</code></td>\n<td lang=\"zh\">16+16n 字节</td>\n<td lang=\"zh\">开放路径</td>\n<td>[(x1,y1),...]</td>\n</tr>\n<tr>\n<td><code class=\"type\">polygon</code></td>\n<td lang=\"zh\">40+16n字节</td>\n<td lang=\"zh\">多边形（类似于封闭路径）</td>\n<td>((x1,y1),...)</td>\n</tr>\n<tr>\n<td><code class=\"type\">circle</code></td>\n<td lang=\"zh\">24 字节</td>\n<td lang=\"zh\">圆</td>\n<td lang=\"zh\">&lt;(x,y),r&gt;（圆心和半径）</td>\n</tr>\n</tbody>\n</table>\n</div>\n</div><br class=\"table-break\"/>\n<p lang=\"zh\">在所有这些类型中，单个坐标都以 <code class=\"type\">double precision</code>（<code class=\"type\">float8</code>）数值存储。</p>\n<p lang=\"zh\">我们提供了丰富的函数和操作符来进行各种几何操作，例如缩放、平移、旋转以及求交等，详见<a class=\"xref\" href=\"/docs/18/functions-geometry.html\" title=\"9.11. 几何函数和操作符\">第 9.11 节</a>。</p>\n<div class=\"sect2\" id=\"DATATYPE-GEOMETRIC-POINTS\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-GEOMETRIC-POINTS\">8.8.1. 点</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">点是几何类型的基本二维构造块。用下面任一种语法描述<code class=\"type\">point</code>类型的值：</p>\n<pre class=\"synopsis\">( <em class=\"replaceable\"><code>x</code></em> , <em class=\"replaceable\"><code>y</code></em> )\n  <em class=\"replaceable\"><code>x</code></em> , <em class=\"replaceable\"><code>y</code></em>\n</pre>\n<p lang=\"zh\">其中<em class=\"replaceable\"><code>x</code></em>和<em class=\"replaceable\"><code>y</code></em>分别是坐标，都是浮点数。</p>\n<p lang=\"zh\">点使用第一种语法输出。</p>\n</div>\n<div class=\"sect2\" id=\"DATATYPE-LINE\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-LINE\">8.8.2. 直线</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">直线由线性方程<em class=\"replaceable\"><code>A</code></em>x + <em class=\"replaceable\"><code>B</code></em>y + <em class=\"replaceable\"><code>C</code></em> = 0 表示，其中<em class=\"replaceable\"><code>A</code></em>和<em class=\"replaceable\"><code>B</code></em>不能同时为零。类型<code class=\"type\">line</code> 的值采用以下形式输入和输出：</p>\n<pre class=\"synopsis\">{ <em class=\"replaceable\"><code>A</code></em>, <em class=\"replaceable\"><code>B</code></em>, <em class=\"replaceable\"><code>C</code></em> }\n</pre>\n<p lang=\"zh\">另外，还可以用下列任一形式输入：</p>\n<pre class=\"synopsis\">[ ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> ) ]\n( ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> ) )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> )\n    <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   ,   <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em>\n</pre>\n<p lang=\"zh\">其中 <code class=\"literal\">(<em class=\"replaceable\"><code>x1</code></em>,<em class=\"replaceable\"><code>y1</code></em>)</code> 和 <code class=\"literal\">(<em class=\"replaceable\"><code>x2</code></em>,<em class=\"replaceable\"><code>y2</code></em>)</code> 是直线上不同的两点。</p>\n</div>\n<div class=\"sect2\" id=\"DATATYPE-LSEG\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-LSEG\">8.8.3. 线段</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">线段用其两个端点来表示。<code class=\"type\">lseg</code>类型的值用下面任一种语法指定：</p>\n<pre class=\"synopsis\">[ ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> ) ]\n( ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> ) )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> )\n    <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   ,   <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em>\n</pre>\n<p lang=\"zh\">其中<code class=\"literal\">(<em class=\"replaceable\"><code>x1</code></em>,<em class=\"replaceable\"><code>y1</code></em>)</code> 和 <code class=\"literal\">(<em class=\"replaceable\"><code>x2</code></em>,<em class=\"replaceable\"><code>y2</code></em>)</code> 是线段的端点。</p>\n<p lang=\"zh\">线段使用第一种语法输出。</p>\n</div>\n<div class=\"sect2\" id=\"DATATYPE-GEOMETRIC-BOXES\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-GEOMETRIC-BOXES\">8.8.4. 方框</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">方框用其对角的点对表示。<code class=\"type\">box</code>类型的值使用下面任一种语法指定：</p>\n<pre class=\"synopsis\">( ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> ) )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ( <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em> )\n    <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   ,   <em class=\"replaceable\"><code>x2</code></em> , <em class=\"replaceable\"><code>y2</code></em>\n</pre>\n<p lang=\"zh\">其中<code class=\"literal\">(<em class=\"replaceable\"><code>x1</code></em>,<em class=\"replaceable\"><code>y1</code></em>)</code> 和 <code class=\"literal\">(<em class=\"replaceable\"><code>x2</code></em>,<em class=\"replaceable\"><code>y2</code></em>)</code> 是方框的对角点。</p>\n<p lang=\"zh\">方框使用第二种语法输出。</p>\n<p lang=\"zh\">在输入时可以提供任意两个对角，但是值将根据需要被重新排列，并依次存储为右上角和左下角。</p>\n</div>\n<div class=\"sect2\" id=\"DATATYPE-GEOMETRIC-PATHS\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-GEOMETRIC-PATHS\">8.8.5. 路径</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">路径由一系列连接的点组成。路径可能是<em class=\"firstterm\">开放</em>的，也就是认为列表中第一个点和最后一个点没有被连接起来；也可能是<em class=\"firstterm\">封闭</em>的，这时认为第一个和最后一个点被连接起来。</p>\n<p lang=\"zh\"><code class=\"type\">path</code>类型的值用下面任一种语法指定：</p>\n<pre class=\"synopsis\">[ ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ... , ( <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> ) ]\n( ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ... , ( <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> ) )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ... , ( <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   , ... ,   <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> )\n    <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   , ... ,   <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em>\n</pre>\n<p lang=\"zh\">其中的点是组成路径的线段的端点。方括弧（<code class=\"literal\">[]</code>）表示一个开放的路径，圆括弧（<code class=\"literal\">()</code>）表示一个封闭的路径。如第三种到第五种语法所示，当最外面的圆括号被省略时，路径将被假定为封闭。</p>\n<p lang=\"zh\">路径的输出视情况使用第一种或第二种语法。</p>\n</div>\n<div class=\"sect2\" id=\"DATATYPE-POLYGON\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-POLYGON\">8.8.6. 多边形</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">多边形由点的列表来表示，这些点就是多边形的顶点。多边形与封闭路径非常相似；其本质语义差异在于，多边形被认为包含其内部区域，而路径则不包含。</p>\n<p lang=\"zh\">多边形与路径在实现上的一个重要区别是，多边形的存储表示中包含其最小包围框。这会加快某些搜索操作，尽管在构造新多边形时，计算该包围框会带来额外开销。</p>\n<p lang=\"zh\"><code class=\"type\">polygon</code>类型的值用下列任一种语法指定：</p>\n<pre class=\"synopsis\">( ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ... , ( <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> ) )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em> ) , ... , ( <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> )\n  ( <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   , ... ,   <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em> )\n    <em class=\"replaceable\"><code>x1</code></em> , <em class=\"replaceable\"><code>y1</code></em>   , ... ,   <em class=\"replaceable\"><code>xn</code></em> , <em class=\"replaceable\"><code>yn</code></em>\n</pre>\n<p lang=\"zh\">其中的点是组成多边形边界的线段的端点。</p>\n<p lang=\"zh\">多边形的输出使用第一种语法。</p>\n</div>\n<div class=\"sect2\" id=\"DATATYPE-CIRCLE\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h3 class=\"title\" lang=\"zh\"><span class=\"sect2\"><a href=\"/docs/18/datatype-geometric.html#DATATYPE-CIRCLE\">8.8.7. 圆</a></span></h3>\n</div>\n</div>\n</div>\n<p lang=\"zh\">圆由一个圆心和一个半径代表。<code class=\"type\">circle</code>类型的值用下面任一种语法指定：</p>\n<pre class=\"synopsis\">&lt; ( <em class=\"replaceable\"><code>x</code></em> , <em class=\"replaceable\"><code>y</code></em> ) , <em class=\"replaceable\"><code>r</code></em> &gt;\n( ( <em class=\"replaceable\"><code>x</code></em> , <em class=\"replaceable\"><code>y</code></em> ) , <em class=\"replaceable\"><code>r</code></em> )\n  ( <em class=\"replaceable\"><code>x</code></em> , <em class=\"replaceable\"><code>y</code></em> ) , <em class=\"replaceable\"><code>r</code></em>\n    <em class=\"replaceable\"><code>x</code></em> , <em class=\"replaceable\"><code>y</code></em>   , <em class=\"replaceable\"><code>r</code></em>\n</pre>\n<p lang=\"zh\">其中<code class=\"literal\">(<em class=\"replaceable\"><code>x</code></em>,<em class=\"replaceable\"><code>y</code></em>)</code>是圆心，而<em class=\"replaceable\"><code>r</code></em>是圆的半径。</p>\n<p lang=\"zh\">圆的输出用第一种语法。</p>\n</div>\n</div>", "manual_path": "datatype-geometric.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/datatype-geometric.html", "method": "same-major semantic node", "sha256": "3e6a2a9270d62b2d90e9de291deefbf6aeb3f07329b5c2913a40da835e8dee71", "language": "zh", "matched_nodes": ["#DATATYPE-GEOMETRIC/div[0]", "#DATATYPE-GEOMETRIC/div[10]/p[3]", "#DATATYPE-GEOMETRIC/div[10]/p[5]", "#DATATYPE-GEOMETRIC/div[10]/p[6]", "#DATATYPE-GEOMETRIC/div[10]/p[7]", "#DATATYPE-GEOMETRIC/div[11]/p[2]", "#DATATYPE-GEOMETRIC/div[11]/p[3]", "#DATATYPE-GEOMETRIC/div[11]/p[5]", "#DATATYPE-GEOMETRIC/div[11]/p[6]", "#DATATYPE-GEOMETRIC/div[12]/p[2]", "#DATATYPE-GEOMETRIC/div[12]/p[3]", "#DATATYPE-GEOMETRIC/div[12]/p[4]", "#DATATYPE-GEOMETRIC/div[12]/p[6]", "#DATATYPE-GEOMETRIC/div[12]/p[7]", "#DATATYPE-GEOMETRIC/div[13]/p[2]", "#DATATYPE-GEOMETRIC/div[13]/p[4]", "#DATATYPE-GEOMETRIC/div[13]/p[5]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[0]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[1]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[2]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[3]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[4]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[5]", "#DATATYPE-GEOMETRIC/div[1]/dl[0]/dt[6]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[0]/td[2]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[1]/td[2]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[2]/td[2]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[3]/td[2]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[6]/td[1]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[6]/td[2]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[7]/td[2]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/tbody[2]/tr[7]/td[3]", "#DATATYPE-GEOMETRIC/div[3]/div[1]/table[0]/thead[1]/tr[0]/th[0]", "#DATATYPE-GEOMETRIC/div[3]/p[0]", "#DATATYPE-GEOMETRIC/div[7]/p[2]", "#DATATYPE-GEOMETRIC/div[7]/p[4]", "#DATATYPE-GEOMETRIC/div[7]/p[5]", "#DATATYPE-GEOMETRIC/div[8]/p[2]", "#DATATYPE-GEOMETRIC/div[8]/p[4]", "#DATATYPE-GEOMETRIC/div[8]/p[6]", "#DATATYPE-GEOMETRIC/div[9]/p[3]", "#DATATYPE-GEOMETRIC/div[9]/p[5]", "#DATATYPE-GEOMETRIC/div[9]/p[6]", "#DATATYPE-GEOMETRIC/p[2]", "#DATATYPE-GEOMETRIC/p[5]", "#DATATYPE-GEOMETRIC/p[6]"]}, {"url": "/docs/18/functions-matching.html", "method": "same-major semantic node", "sha256": "704120d783880b39b956c073d1a82ba1f40b35068b4d3b9a195f543b86c3a22a", "language": "zh", "matched_nodes": ["#FUNCTIONS-MATCHING/div[9]/div[51]/p[2]/em[2]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "closed geometric path on a plane", "/versions/18/facts/0/label": "Catalog name", "/versions/18/facts/1/label": "Type OID", "/versions/18/facts/2/label": "Type kind", "/versions/18/facts/2/value": "Base type", "/versions/18/facts/3/label": "Declared length", "/versions/18/facts/3/value": "Variable length (varlena)", "/versions/18/facts/4/label": "Storage strategy", "/versions/18/facts/4/value": "extended", "/versions/18/facts/5/label": "Input function", "/versions/18/facts/6/label": "Output function", "/versions/18/facts/7/label": "Documented declaration", "/versions/18/facts/8/label": "Storage Size", "/versions/18/facts/8/value": "40+16n bytes", "/versions/18/facts/9/label": "Manual description", "/versions/18/facts/9/value": "Polygon (similar to closed path)", "/versions/18/facts/10/label": "Representation", "/versions/18/related/0/label": "pg_type catalog", "/versions/18/related/1/label": "pg_cast catalog", "/versions/18/related/2/label": "pg_operator catalog", "/versions/18/related/3/label": "pg_opclass catalog", "/versions/18/related/4/label": "Arrays", "/versions/18/related/5/label": "gist index access method", "/versions/18/related/6/label": "spgist index access method"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "cdd3d30ba364e525b75342acbfc4e55f1fc2924ad39096d13fcc4b4de8d9e7d6"}, "comparison_data": {"casts": [{"castfunc": "path", "castmethod": "f", "castsource": "polygon", "casttarget": "path", "castcontext": "a"}, {"castfunc": "polygon(box)", "castmethod": "f", "castsource": "box", "casttarget": "polygon", "castcontext": "a"}, {"castfunc": "polygon(path)", "castmethod": "f", "castsource": "path", "casttarget": "polygon", "castcontext": "a"}, {"castfunc": "box(polygon)", "castmethod": "f", "castsource": "polygon", "casttarget": "box", "castcontext": "e"}, {"castfunc": "circle(polygon)", "castmethod": "f", "castsource": "polygon", "casttarget": "circle", "castcontext": "e"}, {"castfunc": "point(polygon)", "castmethod": "f", "castsource": "polygon", "casttarget": "point", "castcontext": "e"}, {"castfunc": "polygon(circle)", "castmethod": "f", "castsource": "circle", "casttarget": "polygon", "castcontext": "e"}], "facts": [{"label": "Catalog name", "value": "pg_catalog.polygon"}, {"label": "Declared length", "value": "Variable length (varlena)"}, {"label": "Documented declaration", "value": "polygon"}, {"label": "Input function", "value": "poly_in"}, {"label": "Output function", "value": "poly_out"}, {"label": "Representation", "value": "((x1,y1),...)"}, {"label": "Storage Size", "value": "40+16n bytes"}, {"label": "Storage strategy", "value": "extended"}, {"label": "Type OID", "value": "604"}, {"label": "Type kind", "value": "Base type"}], "ranges": [], "aliases": [], "catalog": {"typacl": "_null_", "typlen": "-1", "typelem": "0", "typname": "polygon", "typsend": "poly_send", "typtype": "b", "typalign": "d", "typarray": "_polygon", "typbyval": "f", "typdelim": ",", "typinput": "poly_in", "typmodin": "-", "typndims": "0", "typrelid": "0", "typmodout": "-", "typoutput": "poly_out", "typtypmod": "-1", "typanalyze": "-", "typdefault": "_null_", "typnotnull": "f", "typreceive": "poly_recv", "typstorage": "x", "typbasetype": "0", "typcategory": "G", "typcollation": "0", "typisdefined": "t", "typsubscript": "-", "typdefaultbin": "_null_", "typispreferred": "f", "array_type_name": "_polygon"}, "operators": [{"oprcom": "<->(polygon,circle)", "oprcode": "dist_cpoly", "oprjoin": "-", "oprkind": "b", "oprleft": "circle", "oprname": "<->", "oprrest": "-", "oprright": "polygon", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<->(circle,polygon)", "oprcode": "dist_polyc", "oprjoin": "-", "oprkind": "b", "oprleft": "polygon", "oprname": "<->", "oprrest": "-", "oprright": "circle", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<->(point,polygon)", "oprcode": "dist_polyp", "oprjoin": "-", "oprkind": "b", "oprleft": "polygon", "oprname": "<->", "oprrest": "-", "oprright": "point", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<->(polygon,point)", "oprcode": "dist_ppoly", "oprjoin": "-", "oprkind": "b", "oprleft": "point", "oprname": "<->", "oprrest": "-", "oprright": "polygon", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_above", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "|>>", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_below", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "<<|", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_center", "oprjoin": "-", "oprkind": "l", "oprleft": "0", "oprname": "@@", "oprrest": "-", "oprright": "polygon", "oprnegate": "0", "oprresult": "point", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<@(polygon,polygon)", "oprcode": "poly_contain", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "@>", "oprrest": "contsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<@(point,polygon)", "oprcode": "poly_contain_pt", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "@>", "oprrest": "contsel", "oprright": "point", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "@>(polygon,polygon)", "oprcode": "poly_contained", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "<@", "oprrest": "contsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "<->(polygon,polygon)", "oprcode": "poly_distance", "oprjoin": "-", "oprkind": "b", "oprleft": "polygon", "oprname": "<->", "oprrest": "-", "oprright": "polygon", "oprnegate": "0", "oprresult": "float8", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_left", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "<<", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_npoints", "oprjoin": "-", "oprkind": "l", "oprleft": "0", "oprname": "#", "oprrest": "-", "oprright": "polygon", "oprnegate": "0", "oprresult": "int4", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_overabove", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "|&>", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_overbelow", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&<|", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "&&(polygon,polygon)", "oprcode": "poly_overlap", "oprjoin": "areajoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&&", "oprrest": "areasel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_overleft", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&<", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_overright", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "&>", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "0", "oprcode": "poly_right", "oprjoin": "positionjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": ">>", "oprrest": "positionsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "~=(polygon,polygon)", "oprcode": "poly_same", "oprjoin": "eqjoinsel", "oprkind": "b", "oprleft": "polygon", "oprname": "~=", "oprrest": "eqsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}, {"oprcom": "@>(polygon,point)", "oprcode": "pt_contained_poly", "oprjoin": "contjoinsel", "oprkind": "b", "oprleft": "point", "oprname": "<@", "oprrest": "contsel", "oprright": "polygon", "oprnegate": "0", "oprresult": "bool", "oprcanhash": "f", "oprcanmerge": "f"}], "operator_classes": [{"opcname": "poly_ops", "opcfamily": "gist/poly_ops", "opcintype": "polygon", "opcmethod": "gist", "opcdefault": "t", "opckeytype": "box"}, {"opcname": "poly_ops", "opcfamily": "spgist/poly_ops", "opcintype": "polygon", "opcmethod": "spgist", "opcdefault": "t", "opckeytype": "box"}]}, "comparison_hash": "721a0388bfbf4305f92a68207af8c2d495d5db80b6ebc5b10d8289b5b9e3ea70", "manual_language": "zh", "operator_classes": [{"opcname": "poly_ops", "opcowner": "POSTGRES", "opcfamily": "gist/poly_ops", "opcintype": "polygon", "opcmethod": "gist", "opcdefault": "t", "opckeytype": "box", "opcnamespace": "pg_catalog"}, {"opcname": "poly_ops", "opcowner": "POSTGRES", "opcfamily": "spgist/poly_ops", "opcintype": "polygon", "opcmethod": "spgist", "opcdefault": "t", "opckeytype": "box", "opcnamespace": "pg_catalog"}], "manual_documentation": "dedicated family chapter"}, "from": "17", "comparison": {"available": true, "changes": [], "prose_changed": true}}