{"Entry":{"collection":"type","key":"lseg","name":"lseg","aliases":[],"metadata":{"aliases":[],"category":"Geometric","content_hash":"2d3ddbf66ef7bd0481eac55c3c76a3eee7165f43baed9f055cfb1b317309cbaa","imported_at":"2026-09-30T00:40:36.15741+08:00","name":"lseg","name_zh":"","slug":"lseg","summary":"line segment on a plane"}},"Definition":{"Collection":"type","Key":"lseg","SourceDatabase":"center","Version":"18","SourceTable":"data_type","SourceKey":"lseg","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","Facts":{"aliases":[],"casts":[{"castcontext":"e","castfunc":"point(lseg)","castmethod":"f","castsource":"lseg","casttarget":"point"},{"castcontext":"e","castfunc":"lseg(box)","castmethod":"f","castsource":"box","casttarget":"lseg"}],"catalog":{"array_type_name":"_lseg","array_type_oid":"1018","descr":"geometric line segment, format '[point1,point2]'","oid":"601","typacl":"_null_","typalign":"d","typanalyze":"-","typarray":"0","typbasetype":"0","typbyval":"f","typcategory":"G","typcollation":"0","typdefault":"_null_","typdefaultbin":"_null_","typdelim":"','","typelem":"point","typinput":"lseg_in","typisdefined":"t","typispreferred":"f","typlen":"32","typmodin":"-","typmodout":"-","typname":"lseg","typnamespace":"pg_catalog","typndims":"0","typnotnull":"f","typoutput":"lseg_out","typowner":"POSTGRES","typreceive":"lseg_recv","typrelid":"0","typsend":"lseg_send","typstorage":"p","typsubscript":"raw_array_subscript_handler","typtype":"b","typtypmod":"-1"},"comparison_data":{"aliases":[],"casts":[{"castcontext":"e","castfunc":"lseg(box)","castmethod":"f","castsource":"box","casttarget":"lseg"},{"castcontext":"e","castfunc":"point(lseg)","castmethod":"f","castsource":"lseg","casttarget":"point"}],"catalog":{"array_type_name":"_lseg","typacl":"_null_","typalign":"d","typanalyze":"-","typarray":"_lseg","typbasetype":"0","typbyval":"f","typcategory":"G","typcollation":"0","typdefault":"_null_","typdefaultbin":"_null_","typdelim":",","typelem":"point","typinput":"lseg_in","typisdefined":"t","typispreferred":"f","typlen":"32","typmodin":"-","typmodout":"-","typname":"lseg","typndims":"0","typnotnull":"f","typoutput":"lseg_out","typreceive":"lseg_recv","typrelid":"0","typsend":"lseg_send","typstorage":"p","typsubscript":"raw_array_subscript_handler","typtype":"b","typtypmod":"-1"},"facts":[{"label":"Catalog name","value":"pg_catalog.lseg"},{"label":"Declared length","value":"32 bytes"},{"label":"Documented declaration","value":"lseg"},{"label":"Input function","value":"lseg_in"},{"label":"Output function","value":"lseg_out"},{"label":"Representation","value":"[(x1,y1),(x2,y2)]"},{"label":"Storage Size","value":"32 bytes"},{"label":"Storage strategy","value":"plain"},{"label":"Type OID","value":"601"},{"label":"Type kind","value":"Base type"}],"operator_classes":[],"operators":[{"oprcanhash":"f","oprcanmerge":"f","oprcode":"close_ls","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"line","oprname":"##","oprnegate":"0","oprrest":"-","oprresult":"point","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"close_lseg","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"##","oprnegate":"0","oprrest":"-","oprresult":"point","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"close_ps","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"point","oprname":"##","oprnegate":"0","oprrest":"-","oprresult":"point","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"close_sb","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"##","oprnegate":"0","oprrest":"-","oprresult":"point","oprright":"box"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_bs","oprcom":"\u003c-\u003e(lseg,box)","oprjoin":"-","oprkind":"b","oprleft":"box","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_ls","oprcom":"\u003c-\u003e(lseg,line)","oprjoin":"-","oprkind":"b","oprleft":"line","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_ps","oprcom":"\u003c-\u003e(lseg,point)","oprjoin":"-","oprkind":"b","oprleft":"point","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_sb","oprcom":"\u003c-\u003e(box,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"box"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_sl","oprcom":"\u003c-\u003e(line,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"line"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_sp","oprcom":"\u003c-\u003e(point,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"point"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"inter_sb","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?#","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"box"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"inter_sl","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?#","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"line"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_center","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"@@","oprnegate":"0","oprrest":"-","oprresult":"point","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_distance","oprcom":"\u003c-\u003e(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_eq","oprcom":"=(lseg,lseg)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"lseg","oprname":"=","oprnegate":"\u003c\u003e(lseg,lseg)","oprrest":"eqsel","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_ge","oprcom":"\u003c=(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003e=","oprnegate":"\u003c(lseg,lseg)","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_gt","oprcom":"\u003c(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003e","oprnegate":"\u003c=(lseg,lseg)","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_horizontal","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"?-","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_interpt","oprcom":"#(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"#","oprnegate":"0","oprrest":"-","oprresult":"point","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_intersect","oprcom":"?#(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?#","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_le","oprcom":"\u003e=(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c=","oprnegate":"\u003e(lseg,lseg)","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_length","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"@-@","oprnegate":"0","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_lt","oprcom":"\u003e(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c","oprnegate":"\u003e=(lseg,lseg)","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_ne","oprcom":"\u003c\u003e(lseg,lseg)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"lseg","oprname":"\u003c\u003e","oprnegate":"=(lseg,lseg)","oprrest":"neqsel","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_parallel","oprcom":"?||(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?||","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_perp","oprcom":"?-|(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?-|","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_vertical","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"?|","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"on_ps","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"point","oprname":"\u003c@","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"on_sb","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c@","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"box"},{"oprcanhash":"f","oprcanmerge":"f","oprcode":"on_sl","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c@","oprnegate":"0","oprrest":"-","oprresult":"bool","oprright":"line"}],"ranges":[]},"comparison_hash":"99c6661578ca2cb80bb041497e707fc299a0d06bda27fda49304726f8a62cb93","coverage":"source inventory; exact declared input types for operator classes","description":["line segment on a plane"],"facts":[{"label":"Catalog name","value":"pg_catalog.lseg"},{"label":"Type OID","value":"601"},{"label":"Type kind","value":"Base type"},{"label":"Declared length","value":"32 bytes"},{"label":"Storage strategy","value":"plain"},{"label":"Input function","value":"lseg_in"},{"label":"Output function","value":"lseg_out"},{"label":"Documented declaration","value":"lseg"},{"label":"Storage Size","value":"32 bytes"},{"label":"Manual description","value":"Finite line segment"},{"label":"Representation","value":"[(x1,y1),(x2,y2)]"}],"manual_documentation":"dedicated family chapter","manual_html":"\u003cdiv class=\"sect1\" id=\"DATATYPE-GEOMETRIC\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch2 class=\"title\"\u003e8.8. Geometric Types \u003c/h2\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cp\u003eGeometric data types represent two-dimensional spatial objects. \u003ca class=\"xref\" href=\"/docs/18/datatype-geometric.html#DATATYPE-GEO-TABLE\" title=\"Table 8.20. Geometric Types\"\u003eTable 8.20\u003c/a\u003e shows the geometric types available in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e.\u003c/p\u003e\n\u003cdiv class=\"table\" id=\"DATATYPE-GEO-TABLE\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eTable 8.20. Geometric Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"table-contents\"\u003e\n\u003ctable class=\"table\"\u003e\n\n\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eStorage Size\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003cth\u003eRepresentation\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epoint\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16 bytes\u003c/td\u003e\n\u003ctd\u003ePoint on a plane\u003c/td\u003e\n\u003ctd\u003e(x,y)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003eline\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e24 bytes\u003c/td\u003e\n\u003ctd\u003eInfinite line\u003c/td\u003e\n\u003ctd\u003e{A,B,C}\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003elseg\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e32 bytes\u003c/td\u003e\n\u003ctd\u003eFinite line segment\u003c/td\u003e\n\u003ctd\u003e[(x1,y1),(x2,y2)]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ebox\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e32 bytes\u003c/td\u003e\n\u003ctd\u003eRectangular box\u003c/td\u003e\n\u003ctd\u003e(x1,y1),(x2,y2)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16+16n bytes\u003c/td\u003e\n\u003ctd\u003eClosed path (similar to polygon)\u003c/td\u003e\n\u003ctd\u003e((x1,y1),...)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16+16n bytes\u003c/td\u003e\n\u003ctd\u003eOpen path\u003c/td\u003e\n\u003ctd\u003e[(x1,y1),...]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epolygon\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e40+16n bytes\u003c/td\u003e\n\u003ctd\u003ePolygon (similar to closed path)\u003c/td\u003e\n\u003ctd\u003e((x1,y1),...)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ecircle\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e24 bytes\u003c/td\u003e\n\u003ctd\u003eCircle\u003c/td\u003e\n\u003ctd\u003e\u0026lt;(x,y),r\u0026gt; (center point and radius)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"table-break\"\u003e\n\u003cp\u003eIn all these types, the individual coordinates are stored as \u003ccode class=\"type\"\u003edouble precision\u003c/code\u003e (\u003ccode class=\"type\"\u003efloat8\u003c/code\u003e) numbers.\u003c/p\u003e\n\u003cp\u003eA rich set of functions and operators is available to perform various geometric operations such as scaling, translation, rotation, and determining intersections. They are explained in \u003ca class=\"xref\" href=\"/docs/18/functions-geometry.html\" title=\"9.11. Geometric Functions and Operators\"\u003eSection 9.11\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-GEOMETRIC-POINTS\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.1. Points \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePoints are the fundamental two-dimensional building block for geometric types. Values of type \u003ccode class=\"type\"\u003epoint\u003c/code\u003e are specified using either of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e )\n  \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e and \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e are the respective coordinates, as floating-point numbers.\u003c/p\u003e\n\u003cp\u003ePoints are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-LINE\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.2. Lines \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLines are represented by the linear equation \u003cem class=\"replaceable\"\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003ex + \u003cem class=\"replaceable\"\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003ey + \u003cem class=\"replaceable\"\u003e\u003ccode\u003eC\u003c/code\u003e\u003c/em\u003e = 0, where \u003cem class=\"replaceable\"\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003e and \u003cem class=\"replaceable\"\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003e are not both zero. Values of type \u003ccode class=\"type\"\u003eline\u003c/code\u003e are input and output in the following form:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e{ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003e, \u003cem class=\"replaceable\"\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003e, \u003cem class=\"replaceable\"\u003e\u003ccode\u003eC\u003c/code\u003e\u003c/em\u003e }\n\u003c/pre\u003e\n\u003cp\u003eAlternatively, any of the following forms can be used for input:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e[ ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are two different points on the line.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-LSEG\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.3. Line Segments \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLine segments are represented by pairs of points that are the endpoints of the segment. Values of type \u003ccode class=\"type\"\u003elseg\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e[ ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are the end points of the line segment.\u003c/p\u003e\n\u003cp\u003eLine segments are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-GEOMETRIC-BOXES\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.4. Boxes \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBoxes are represented by pairs of points that are opposite corners of the box. Values of type \u003ccode class=\"type\"\u003ebox\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are any two opposite corners of the box.\u003c/p\u003e\n\u003cp\u003eBoxes are output using the second syntax.\u003c/p\u003e\n\u003cp\u003eAny two opposite corners can be supplied on input, but the values will be reordered as needed to store the upper right and lower left corners, in that order.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-GEOMETRIC-PATHS\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.5. Paths \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePaths are represented by lists of connected points. Paths can be \u003cem class=\"firstterm\"\u003eopen\u003c/em\u003e, where the first and last points in the list are considered not connected, or \u003cem class=\"firstterm\"\u003eclosed\u003c/em\u003e, where the first and last points are considered connected.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode class=\"type\"\u003epath\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e[ ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere the points are the end points of the line segments comprising the path. Square brackets (\u003ccode class=\"literal\"\u003e[]\u003c/code\u003e) indicate an open path, while parentheses (\u003ccode class=\"literal\"\u003e()\u003c/code\u003e) indicate a closed path. When the outermost parentheses are omitted, as in the third through fifth syntaxes, a closed path is assumed.\u003c/p\u003e\n\u003cp\u003ePaths are output using the first or second syntax, as appropriate.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-POLYGON\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.6. Polygons \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePolygons are represented by lists of points (the vertices of the polygon). Polygons are very similar to closed paths; the essential semantic difference is that a polygon is considered to include the area within it, while a path is not.\u003c/p\u003e\n\u003cp\u003eAn important implementation difference between polygons and paths is that the stored representation of a polygon includes its smallest bounding box. This speeds up certain search operations, although computing the bounding box adds overhead while constructing new polygons.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode class=\"type\"\u003epolygon\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere the points are the end points of the line segments comprising the boundary of the polygon.\u003c/p\u003e\n\u003cp\u003ePolygons are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-CIRCLE\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.7. Circles \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eCircles are represented by a center point and radius. Values of type \u003ccode class=\"type\"\u003ecircle\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e\u0026lt; ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e \u0026gt;\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e   , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e is the center point and \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e is the radius of the circle.\u003c/p\u003e\n\u003cp\u003eCircles are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e","manual_path":"datatype-geometric.html","operator_classes":[],"operators":[{"descr":"distance between","oid":"614","oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_ps","oprcom":"\u003c-\u003e(lseg,point)","oprjoin":"-","oprkind":"b","oprleft":"point","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"descr":"distance between","oid":"761","oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_sp","oprcom":"\u003c-\u003e(point,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"point"},{"descr":"distance between","oid":"616","oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_sl","oprcom":"\u003c-\u003e(line,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"line"},{"descr":"distance between","oid":"762","oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_ls","oprcom":"\u003c-\u003e(lseg,line)","oprjoin":"-","oprkind":"b","oprleft":"line","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"descr":"distance between","oid":"617","oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_sb","oprcom":"\u003c-\u003e(box,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"box"},{"descr":"distance between","oid":"763","oprcanhash":"f","oprcanmerge":"f","oprcode":"dist_bs","oprcom":"\u003c-\u003e(lseg,box)","oprjoin":"-","oprkind":"b","oprleft":"box","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"descr":"distance between","oid":"709","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_distance","oprcom":"\u003c-\u003e(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c-\u003e","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"lseg"},{"descr":"center of","oid":"969","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_center","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"@@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"point","oprright":"lseg"},{"descr":"intersect","oid":"1525","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_intersect","oprcom":"?#(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?#","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"parallel","oid":"1526","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_parallel","oprcom":"?||(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?||","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"perpendicular","oid":"1527","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_perp","oprcom":"?-|(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?-|","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"horizontal","oid":"1528","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_horizontal","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"?-","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"vertical","oid":"1529","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_vertical","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"?|","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"equal","oid":"1535","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_eq","oprcom":"=(lseg,lseg)","oprjoin":"eqjoinsel","oprkind":"b","oprleft":"lseg","oprname":"=","oprnamespace":"pg_catalog","oprnegate":"\u003c\u003e(lseg,lseg)","oprowner":"POSTGRES","oprrest":"eqsel","oprresult":"bool","oprright":"lseg"},{"descr":"intersection point","oid":"1536","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_interpt","oprcom":"#(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"#","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"point","oprright":"lseg"},{"descr":"intersect","oid":"1537","oprcanhash":"f","oprcanmerge":"f","oprcode":"inter_sl","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?#","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"line"},{"descr":"intersect","oid":"1538","oprcanhash":"f","oprcanmerge":"f","oprcode":"inter_sb","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"?#","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"box"},{"descr":"is contained by","oid":"1547","oprcanhash":"f","oprcanmerge":"f","oprcode":"on_ps","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"point","oprname":"\u003c@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"lseg on line","oid":"1548","oprcanhash":"f","oprcanmerge":"f","oprcode":"on_sl","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"line"},{"descr":"is contained by","oid":"1549","oprcanhash":"f","oprcanmerge":"f","oprcode":"on_sb","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"box"},{"descr":"closest point to A on B","oid":"1558","oprcanhash":"f","oprcanmerge":"f","oprcode":"close_ps","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"point","oprname":"##","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"point","oprright":"lseg"},{"descr":"closest point to A on B","oid":"1567","oprcanhash":"f","oprcanmerge":"f","oprcode":"close_sb","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"##","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"point","oprright":"box"},{"descr":"closest point to A on B","oid":"1577","oprcanhash":"f","oprcanmerge":"f","oprcode":"close_ls","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"line","oprname":"##","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"point","oprright":"lseg"},{"descr":"closest point to A on B","oid":"1578","oprcanhash":"f","oprcanmerge":"f","oprcode":"close_lseg","oprcom":"0","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"##","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"point","oprright":"lseg"},{"descr":"not equal","oid":"1586","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_ne","oprcom":"\u003c\u003e(lseg,lseg)","oprjoin":"neqjoinsel","oprkind":"b","oprleft":"lseg","oprname":"\u003c\u003e","oprnamespace":"pg_catalog","oprnegate":"=(lseg,lseg)","oprowner":"POSTGRES","oprrest":"neqsel","oprresult":"bool","oprright":"lseg"},{"descr":"less than by length","oid":"1587","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_lt","oprcom":"\u003e(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c","oprnamespace":"pg_catalog","oprnegate":"\u003e=(lseg,lseg)","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"less than or equal by length","oid":"1588","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_le","oprcom":"\u003e=(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003c=","oprnamespace":"pg_catalog","oprnegate":"\u003e(lseg,lseg)","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"greater than by length","oid":"1589","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_gt","oprcom":"\u003c(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003e","oprnamespace":"pg_catalog","oprnegate":"\u003c=(lseg,lseg)","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"greater than or equal by length","oid":"1590","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_ge","oprcom":"\u003c=(lseg,lseg)","oprjoin":"-","oprkind":"b","oprleft":"lseg","oprname":"\u003e=","oprnamespace":"pg_catalog","oprnegate":"\u003c(lseg,lseg)","oprowner":"POSTGRES","oprrest":"-","oprresult":"bool","oprright":"lseg"},{"descr":"distance between endpoints","oid":"1591","oprcanhash":"f","oprcanmerge":"f","oprcode":"lseg_length","oprcom":"0","oprjoin":"-","oprkind":"l","oprleft":"0","oprname":"@-@","oprnamespace":"pg_catalog","oprnegate":"0","oprowner":"POSTGRES","oprrest":"-","oprresult":"float8","oprright":"lseg"}],"ranges":[],"related":[{"label":"pg_type catalog","url":"/wiki/catalog/pg_type/?v=18"},{"label":"pg_cast catalog","url":"/wiki/catalog/pg_cast/?v=18"},{"label":"pg_operator catalog","url":"/wiki/catalog/pg_operator/?v=18"},{"label":"pg_opclass catalog","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"Arrays","url":"/wiki/type/arrays/?v=18"}],"release":{"channel":"stable","label":"18.6","major":"18","manual_sha256":{"arrays.html":"0e1d5c5a7b4a949d4439995f44f74ad4264e050d16eb9ad2a850fbaee04032df","catalog-pg-type.html":"ea9c9313bab8e92a7da18ebc50c7ff1f908dd80999a7e0ca3bbc82ba626c58d4","datatype-binary.html":"0c03ec47b76e37888a3da7f5dcfd340128a5d356642a85185cc9ebe17856a904","datatype-bit.html":"c49124aad561636c18080b9e09572fde7785a6b9eae86f5a33283f0fd6774c37","datatype-boolean.html":"b633f663e6c8276e7056287640c413aa79dbc15d5353cee0d41653d58d376956","datatype-character.html":"c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73","datatype-datetime.html":"e366275d8b13845bfa4ef0d68faa093e5f3ecb708a1ec870cbcbf7e425b85699","datatype-enum.html":"cab38e53222e30cc94b24de4b33634fd22d7c93f58ebcf35f646c9b8da78fae8","datatype-geometric.html":"0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9","datatype-json.html":"650162a05b660146b500a205d523374d00aee117a6a6240d30262be51b6e33e5","datatype-money.html":"8b29c14b90679683ac5c472b59a0a7e2853f32cc7db43fab417b2697a6879964","datatype-net-types.html":"96846e641cc37727ddcd8b8a1aa0dbe33cd9787760a2b4efb0dcb9403d5be63f","datatype-numeric.html":"b74619f7ac2f1ca9f85c48073df78c33dd30e464e61baba6008634534edcb500","datatype-oid.html":"8b3360302225f08ae72716ce1804596de95b568e5d31f788cb4597427b28cc38","datatype-pg-lsn.html":"339172f5107cc7eb7139bec911277647219e92a532cebd0f3da0a5dacf8195af","datatype-pseudo.html":"c7cf0b8214304bd8702c95f2142671ae5f0d631f83717f9c07d9e1f2579961b4","datatype-textsearch.html":"4b15e05be8b49a71b28aea22f2c46d0dbf639a91e7b4fe129a4c737c6daad47c","datatype-uuid.html":"292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246","datatype-xml.html":"061fc2295b7b69be704f0a741b8decd10ad721059f871fb0243c669bb54d7822","datatype.html":"e581f67c74e42006289638c8659e9b338adbfd7f068bd8bf2b3be3880fcd2254","domains.html":"82d486973ccc35d14276627a67ac76b434452f23f9ed4d8aa3fbb01fdf285fc2","functions-info.html":"78ac80bf81da2e4f4a33f3b850faa86f0f58ec54a083d6c31da557907de0df87","rangetypes.html":"e4960abc7ce8e51d794f94f1e57b099d30b7f75dd7f2b23a960eef91f6291c33","rowtypes.html":"74f99e029c3a9edfd3e18810ba3c8cb66d3aada91eb67b86476560871e6617e9","sql-createdomain.html":"e94f927196de1b0ea1ce35cd4603c1f6f544439adcc0edf1c4222358e832245b"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_files":{"doc/src/sgml/datatype.sgml":"86328daa77e20d81d222376ec0306d9841a17104e436c08d138eb763aefb3700","src/include/catalog/pg_am.dat":"b3cb86b102a42fb0024cbd99779c9897afb40d12a71f5cc5a0e5aee7ff2f9969","src/include/catalog/pg_am.h":"3426799df799f32163fcc0765f43dbdb5e88e626acf31284fef9fc6014b69d8e","src/include/catalog/pg_cast.dat":"97911281ca2c81917394ccb2ec13367e37c6801fd461d5e1a3d2f28b911b46b2","src/include/catalog/pg_cast.h":"de585c7df687d698e7d1d100dce8a794ac9da52414ea48169191019178c8f053","src/include/catalog/pg_opclass.dat":"4ee7d3619a6aa106e1c0db55de903931c7d11b1c60ba053a022519c55f8ee668","src/include/catalog/pg_opclass.h":"9c218537806c8ef0398302faaca7f91315dfc1198c48706cebffb479b68defaf","src/include/catalog/pg_operator.dat":"5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703","src/include/catalog/pg_operator.h":"621b18cfffe102413d79b746ce7a10f77fc60fdd097bac34c22b31070d3ee3c4","src/include/catalog/pg_opfamily.dat":"3b694879027b858f2ecf1fa1152b7e30c6e15a216ba99c2384291c30e9d52311","src/include/catalog/pg_opfamily.h":"e1f5fc8aebd3042df847455bf66bf755f768c2aa8a9b03d22f7ec8563eba59c0","src/include/catalog/pg_proc.dat":"1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a","src/include/catalog/pg_proc.h":"f7d59f07c5b95e2f3c7141762a0f576e8a3af7581ba54c27537f4d500472bea5","src/include/catalog/pg_range.dat":"5c2271f8e89e9378d1887204e5785060b77405b5f0ff3e6c719250c9c1dcfcc4","src/include/catalog/pg_range.h":"45546d952b5181f989bd9234721897fc2b37005c8e49ce2ddc156f26974c3ca4","src/include/catalog/pg_type.dat":"5f5887b75677cba2d4a1a0cfeb355df5ed91f85d385fac88bd8d7c605b3578f9","src/include/catalog/pg_type.h":"8fb198749fd82b6c1818a3c18455f226f66116fcfeb3d4959c65ce3fda22802e"},"source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[],"signature":"lseg","sources":[{"label":"PostgreSQL 18 English manual","path":"datatype-geometric.html","sha256":"0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9","url":"/docs/18/datatype-geometric.html"},{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"}]},"ManualEvidence":{"manual_path":"datatype-geometric.html","release":{"channel":"stable","label":"18.6","major":"18","manual_sha256":{"arrays.html":"0e1d5c5a7b4a949d4439995f44f74ad4264e050d16eb9ad2a850fbaee04032df","catalog-pg-type.html":"ea9c9313bab8e92a7da18ebc50c7ff1f908dd80999a7e0ca3bbc82ba626c58d4","datatype-binary.html":"0c03ec47b76e37888a3da7f5dcfd340128a5d356642a85185cc9ebe17856a904","datatype-bit.html":"c49124aad561636c18080b9e09572fde7785a6b9eae86f5a33283f0fd6774c37","datatype-boolean.html":"b633f663e6c8276e7056287640c413aa79dbc15d5353cee0d41653d58d376956","datatype-character.html":"c73eebe413ea709a7792e4cfc3cfe9fb68cb496ebe83c3ebaa9d09f8c40d0f73","datatype-datetime.html":"e366275d8b13845bfa4ef0d68faa093e5f3ecb708a1ec870cbcbf7e425b85699","datatype-enum.html":"cab38e53222e30cc94b24de4b33634fd22d7c93f58ebcf35f646c9b8da78fae8","datatype-geometric.html":"0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9","datatype-json.html":"650162a05b660146b500a205d523374d00aee117a6a6240d30262be51b6e33e5","datatype-money.html":"8b29c14b90679683ac5c472b59a0a7e2853f32cc7db43fab417b2697a6879964","datatype-net-types.html":"96846e641cc37727ddcd8b8a1aa0dbe33cd9787760a2b4efb0dcb9403d5be63f","datatype-numeric.html":"b74619f7ac2f1ca9f85c48073df78c33dd30e464e61baba6008634534edcb500","datatype-oid.html":"8b3360302225f08ae72716ce1804596de95b568e5d31f788cb4597427b28cc38","datatype-pg-lsn.html":"339172f5107cc7eb7139bec911277647219e92a532cebd0f3da0a5dacf8195af","datatype-pseudo.html":"c7cf0b8214304bd8702c95f2142671ae5f0d631f83717f9c07d9e1f2579961b4","datatype-textsearch.html":"4b15e05be8b49a71b28aea22f2c46d0dbf639a91e7b4fe129a4c737c6daad47c","datatype-uuid.html":"292b307b3223c6182bdba687e7f69e6dca9038430143ad79d56327f6ed4c3246","datatype-xml.html":"061fc2295b7b69be704f0a741b8decd10ad721059f871fb0243c669bb54d7822","datatype.html":"e581f67c74e42006289638c8659e9b338adbfd7f068bd8bf2b3be3880fcd2254","domains.html":"82d486973ccc35d14276627a67ac76b434452f23f9ed4d8aa3fbb01fdf285fc2","functions-info.html":"78ac80bf81da2e4f4a33f3b850faa86f0f58ec54a083d6c31da557907de0df87","rangetypes.html":"e4960abc7ce8e51d794f94f1e57b099d30b7f75dd7f2b23a960eef91f6291c33","rowtypes.html":"74f99e029c3a9edfd3e18810ba3c8cb66d3aada91eb67b86476560871e6617e9","sql-createdomain.html":"e94f927196de1b0ea1ce35cd4603c1f6f544439adcc0edf1c4222358e832245b"},"ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_files":{"doc/src/sgml/datatype.sgml":"86328daa77e20d81d222376ec0306d9841a17104e436c08d138eb763aefb3700","src/include/catalog/pg_am.dat":"b3cb86b102a42fb0024cbd99779c9897afb40d12a71f5cc5a0e5aee7ff2f9969","src/include/catalog/pg_am.h":"3426799df799f32163fcc0765f43dbdb5e88e626acf31284fef9fc6014b69d8e","src/include/catalog/pg_cast.dat":"97911281ca2c81917394ccb2ec13367e37c6801fd461d5e1a3d2f28b911b46b2","src/include/catalog/pg_cast.h":"de585c7df687d698e7d1d100dce8a794ac9da52414ea48169191019178c8f053","src/include/catalog/pg_opclass.dat":"4ee7d3619a6aa106e1c0db55de903931c7d11b1c60ba053a022519c55f8ee668","src/include/catalog/pg_opclass.h":"9c218537806c8ef0398302faaca7f91315dfc1198c48706cebffb479b68defaf","src/include/catalog/pg_operator.dat":"5d35b9b2ef5f9797cc815263927ef8a12367fedace53e828b4e8b320e2a7f703","src/include/catalog/pg_operator.h":"621b18cfffe102413d79b746ce7a10f77fc60fdd097bac34c22b31070d3ee3c4","src/include/catalog/pg_opfamily.dat":"3b694879027b858f2ecf1fa1152b7e30c6e15a216ba99c2384291c30e9d52311","src/include/catalog/pg_opfamily.h":"e1f5fc8aebd3042df847455bf66bf755f768c2aa8a9b03d22f7ec8563eba59c0","src/include/catalog/pg_proc.dat":"1f934ce80d460159dda137714374a35f9896315ea2476709cbb4da13b38ef95a","src/include/catalog/pg_proc.h":"f7d59f07c5b95e2f3c7141762a0f576e8a3af7581ba54c27537f4d500472bea5","src/include/catalog/pg_range.dat":"5c2271f8e89e9378d1887204e5785060b77405b5f0ff3e6c719250c9c1dcfcc4","src/include/catalog/pg_range.h":"45546d952b5181f989bd9234721897fc2b37005c8e49ce2ddc156f26974c3ca4","src/include/catalog/pg_type.dat":"5f5887b75677cba2d4a1a0cfeb355df5ed91f85d385fac88bd8d7c605b3578f9","src/include/catalog/pg_type.h":"8fb198749fd82b6c1818a3c18455f226f66116fcfeb3d4959c65ce3fda22802e"},"source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"label":"PostgreSQL 18 English manual","path":"datatype-geometric.html","sha256":"0eb3053cfe7d6b0a4b5592c5d7af8d97cae527e87f063c5793413bcba5c14cd9","url":"/docs/18/datatype-geometric.html"},{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"}]},"MeasuredEvidence":{}},"Text":{"Collection":"type","Key":"lseg","SourceDatabase":"center","Version":"18","Locale":"en","Title":"lseg","Summary":"line segment on a plane","BodyHTML":"\u003cdiv id=\"DATATYPE-GEOMETRIC\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch2\u003e8.8. Geometric Types \u003c/h2\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cp\u003eGeometric data types represent two-dimensional spatial objects. \u003ca href=\"/docs/18/datatype-geometric.html#DATATYPE-GEO-TABLE\" rel=\"nofollow\"\u003eTable 8.20\u003c/a\u003e shows the geometric types available in \u003cspan\u003ePostgreSQL\u003c/span\u003e.\u003c/p\u003e\n\u003cdiv id=\"DATATYPE-GEO-TABLE\"\u003e\n\u003cp\u003e\u003cstrong\u003eTable 8.20. Geometric Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv\u003e\n\u003ctable\u003e\n\n\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eStorage Size\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003cth\u003eRepresentation\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003epoint\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16 bytes\u003c/td\u003e\n\u003ctd\u003ePoint on a plane\u003c/td\u003e\n\u003ctd\u003e(x,y)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eline\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e24 bytes\u003c/td\u003e\n\u003ctd\u003eInfinite line\u003c/td\u003e\n\u003ctd\u003e{A,B,C}\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003elseg\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e32 bytes\u003c/td\u003e\n\u003ctd\u003eFinite line segment\u003c/td\u003e\n\u003ctd\u003e[(x1,y1),(x2,y2)]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ebox\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e32 bytes\u003c/td\u003e\n\u003ctd\u003eRectangular box\u003c/td\u003e\n\u003ctd\u003e(x1,y1),(x2,y2)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16+16n bytes\u003c/td\u003e\n\u003ctd\u003eClosed path (similar to polygon)\u003c/td\u003e\n\u003ctd\u003e((x1,y1),...)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16+16n bytes\u003c/td\u003e\n\u003ctd\u003eOpen path\u003c/td\u003e\n\u003ctd\u003e[(x1,y1),...]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003epolygon\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e40+16n bytes\u003c/td\u003e\n\u003ctd\u003ePolygon (similar to closed path)\u003c/td\u003e\n\u003ctd\u003e((x1,y1),...)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ecircle\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e24 bytes\u003c/td\u003e\n\u003ctd\u003eCircle\u003c/td\u003e\n\u003ctd\u003e\u0026lt;(x,y),r\u0026gt; (center point and radius)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr\u003e\n\u003cp\u003eIn all these types, the individual coordinates are stored as \u003ccode\u003edouble precision\u003c/code\u003e (\u003ccode\u003efloat8\u003c/code\u003e) numbers.\u003c/p\u003e\n\u003cp\u003eA rich set of functions and operators is available to perform various geometric operations such as scaling, translation, rotation, and determining intersections. They are explained in \u003ca href=\"/docs/18/functions-geometry.html\" rel=\"nofollow\"\u003eSection 9.11\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv id=\"DATATYPE-GEOMETRIC-POINTS\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.1. Points \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePoints are the fundamental two-dimensional building block for geometric types. Values of type \u003ccode\u003epoint\u003c/code\u003e are specified using either of the following syntaxes:\u003c/p\u003e\n\u003cpre\u003e( \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e )\n  \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e and \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e are the respective coordinates, as floating-point numbers.\u003c/p\u003e\n\u003cp\u003ePoints are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-LINE\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.2. Lines \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLines are represented by the linear equation \u003cem\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003ex + \u003cem\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003ey + \u003cem\u003e\u003ccode\u003eC\u003c/code\u003e\u003c/em\u003e = 0, where \u003cem\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003e and \u003cem\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003e are not both zero. Values of type \u003ccode\u003eline\u003c/code\u003e are input and output in the following form:\u003c/p\u003e\n\u003cpre\u003e{ \u003cem\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003e, \u003cem\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003e, \u003cem\u003e\u003ccode\u003eC\u003c/code\u003e\u003c/em\u003e }\n\u003c/pre\u003e\n\u003cp\u003eAlternatively, any of the following forms can be used for input:\u003c/p\u003e\n\u003cpre\u003e[ ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are two different points on the line.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-LSEG\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.3. Line Segments \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLine segments are represented by pairs of points that are the endpoints of the segment. Values of type \u003ccode\u003elseg\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre\u003e[ ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are the end points of the line segment.\u003c/p\u003e\n\u003cp\u003eLine segments are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-GEOMETRIC-BOXES\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.4. Boxes \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBoxes are represented by pairs of points that are opposite corners of the box. Values of type \u003ccode\u003ebox\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre\u003e( ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are any two opposite corners of the box.\u003c/p\u003e\n\u003cp\u003eBoxes are output using the second syntax.\u003c/p\u003e\n\u003cp\u003eAny two opposite corners can be supplied on input, but the values will be reordered as needed to store the upper right and lower left corners, in that order.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-GEOMETRIC-PATHS\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.5. Paths \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePaths are represented by lists of connected points. Paths can be \u003cem\u003eopen\u003c/em\u003e, where the first and last points in the list are considered not connected, or \u003cem\u003eclosed\u003c/em\u003e, where the first and last points are considered connected.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode\u003epath\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre\u003e[ ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n    \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere the points are the end points of the line segments comprising the path. Square brackets (\u003ccode\u003e[]\u003c/code\u003e) indicate an open path, while parentheses (\u003ccode\u003e()\u003c/code\u003e) indicate a closed path. When the outermost parentheses are omitted, as in the third through fifth syntaxes, a closed path is assumed.\u003c/p\u003e\n\u003cp\u003ePaths are output using the first or second syntax, as appropriate.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-POLYGON\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.6. Polygons \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePolygons are represented by lists of points (the vertices of the polygon). Polygons are very similar to closed paths; the essential semantic difference is that a polygon is considered to include the area within it, while a path is not.\u003c/p\u003e\n\u003cp\u003eAn important implementation difference between polygons and paths is that the stored representation of a polygon includes its smallest bounding box. This speeds up certain search operations, although computing the bounding box adds overhead while constructing new polygons.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode\u003epolygon\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre\u003e( ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n    \u003cem\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere the points are the end points of the line segments comprising the boundary of the polygon.\u003c/p\u003e\n\u003cp\u003ePolygons are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv id=\"DATATYPE-CIRCLE\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3\u003e8.8.7. Circles \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eCircles are represented by a center point and radius. Values of type \u003ccode\u003ecircle\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre\u003e\u0026lt; ( \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e \u0026gt;\n( ( \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e\n    \u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e   , \u003cem\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode\u003e(\u003cem\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e,\u003cem\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e is the center point and \u003cem\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e is the radius of the circle.\u003c/p\u003e\n\u003cp\u003eCircles are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","ContentHash":"f867f23b83bbb39b1eb868495b99de07e42d0534940b3ddf81c90eb13562aee4","Payload":{"description":["line segment on a plane"],"manual_html":"\u003cdiv class=\"sect1\" id=\"DATATYPE-GEOMETRIC\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch2 class=\"title\"\u003e8.8. Geometric Types \u003c/h2\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cp\u003eGeometric data types represent two-dimensional spatial objects. \u003ca class=\"xref\" href=\"/docs/18/datatype-geometric.html#DATATYPE-GEO-TABLE\" title=\"Table 8.20. Geometric Types\"\u003eTable 8.20\u003c/a\u003e shows the geometric types available in \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e.\u003c/p\u003e\n\u003cdiv class=\"table\" id=\"DATATYPE-GEO-TABLE\"\u003e\n\u003cp class=\"title\"\u003e\u003cstrong\u003eTable 8.20. Geometric Types\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"table-contents\"\u003e\n\u003ctable class=\"table\"\u003e\n\n\n\n\n\n\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eStorage Size\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003cth\u003eRepresentation\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epoint\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16 bytes\u003c/td\u003e\n\u003ctd\u003ePoint on a plane\u003c/td\u003e\n\u003ctd\u003e(x,y)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003eline\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e24 bytes\u003c/td\u003e\n\u003ctd\u003eInfinite line\u003c/td\u003e\n\u003ctd\u003e{A,B,C}\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003elseg\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e32 bytes\u003c/td\u003e\n\u003ctd\u003eFinite line segment\u003c/td\u003e\n\u003ctd\u003e[(x1,y1),(x2,y2)]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ebox\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e32 bytes\u003c/td\u003e\n\u003ctd\u003eRectangular box\u003c/td\u003e\n\u003ctd\u003e(x1,y1),(x2,y2)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16+16n bytes\u003c/td\u003e\n\u003ctd\u003eClosed path (similar to polygon)\u003c/td\u003e\n\u003ctd\u003e((x1,y1),...)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e16+16n bytes\u003c/td\u003e\n\u003ctd\u003eOpen path\u003c/td\u003e\n\u003ctd\u003e[(x1,y1),...]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003epolygon\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e40+16n bytes\u003c/td\u003e\n\u003ctd\u003ePolygon (similar to closed path)\u003c/td\u003e\n\u003ctd\u003e((x1,y1),...)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"type\"\u003ecircle\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e24 bytes\u003c/td\u003e\n\u003ctd\u003eCircle\u003c/td\u003e\n\u003ctd\u003e\u0026lt;(x,y),r\u0026gt; (center point and radius)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cbr class=\"table-break\"\u003e\n\u003cp\u003eIn all these types, the individual coordinates are stored as \u003ccode class=\"type\"\u003edouble precision\u003c/code\u003e (\u003ccode class=\"type\"\u003efloat8\u003c/code\u003e) numbers.\u003c/p\u003e\n\u003cp\u003eA rich set of functions and operators is available to perform various geometric operations such as scaling, translation, rotation, and determining intersections. They are explained in \u003ca class=\"xref\" href=\"/docs/18/functions-geometry.html\" title=\"9.11. Geometric Functions and Operators\"\u003eSection 9.11\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-GEOMETRIC-POINTS\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.1. Points \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePoints are the fundamental two-dimensional building block for geometric types. Values of type \u003ccode class=\"type\"\u003epoint\u003c/code\u003e are specified using either of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e )\n  \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e and \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e are the respective coordinates, as floating-point numbers.\u003c/p\u003e\n\u003cp\u003ePoints are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-LINE\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.2. Lines \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLines are represented by the linear equation \u003cem class=\"replaceable\"\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003ex + \u003cem class=\"replaceable\"\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003ey + \u003cem class=\"replaceable\"\u003e\u003ccode\u003eC\u003c/code\u003e\u003c/em\u003e = 0, where \u003cem class=\"replaceable\"\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003e and \u003cem class=\"replaceable\"\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003e are not both zero. Values of type \u003ccode class=\"type\"\u003eline\u003c/code\u003e are input and output in the following form:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e{ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eA\u003c/code\u003e\u003c/em\u003e, \u003cem class=\"replaceable\"\u003e\u003ccode\u003eB\u003c/code\u003e\u003c/em\u003e, \u003cem class=\"replaceable\"\u003e\u003ccode\u003eC\u003c/code\u003e\u003c/em\u003e }\n\u003c/pre\u003e\n\u003cp\u003eAlternatively, any of the following forms can be used for input:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e[ ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are two different points on the line.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-LSEG\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.3. Line Segments \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLine segments are represented by pairs of points that are the endpoints of the segment. Values of type \u003ccode class=\"type\"\u003elseg\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e[ ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are the end points of the line segment.\u003c/p\u003e\n\u003cp\u003eLine segments are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-GEOMETRIC-BOXES\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.4. Boxes \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBoxes are represented by pairs of points that are opposite corners of the box. Values of type \u003ccode class=\"type\"\u003ebox\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e and \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex2\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey2\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e are any two opposite corners of the box.\u003c/p\u003e\n\u003cp\u003eBoxes are output using the second syntax.\u003c/p\u003e\n\u003cp\u003eAny two opposite corners can be supplied on input, but the values will be reordered as needed to store the upper right and lower left corners, in that order.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-GEOMETRIC-PATHS\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.5. Paths \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePaths are represented by lists of connected points. Paths can be \u003cem class=\"firstterm\"\u003eopen\u003c/em\u003e, where the first and last points in the list are considered not connected, or \u003cem class=\"firstterm\"\u003eclosed\u003c/em\u003e, where the first and last points are considered connected.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode class=\"type\"\u003epath\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e[ ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) ]\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere the points are the end points of the line segments comprising the path. Square brackets (\u003ccode class=\"literal\"\u003e[]\u003c/code\u003e) indicate an open path, while parentheses (\u003ccode class=\"literal\"\u003e()\u003c/code\u003e) indicate a closed path. When the outermost parentheses are omitted, as in the third through fifth syntaxes, a closed path is assumed.\u003c/p\u003e\n\u003cp\u003ePaths are output using the first or second syntax, as appropriate.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-POLYGON\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.6. Polygons \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePolygons are represented by lists of points (the vertices of the polygon). Polygons are very similar to closed paths; the essential semantic difference is that a polygon is considered to include the area within it, while a path is not.\u003c/p\u003e\n\u003cp\u003eAn important implementation difference between polygons and paths is that the stored representation of a polygon includes its smallest bounding box. This speeds up certain search operations, although computing the bounding box adds overhead while constructing new polygons.\u003c/p\u003e\n\u003cp\u003eValues of type \u003ccode class=\"type\"\u003epolygon\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e ) )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e ) , ... , ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e )\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex1\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey1\u003c/code\u003e\u003c/em\u003e   , ... ,   \u003cem class=\"replaceable\"\u003e\u003ccode\u003exn\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003eyn\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere the points are the end points of the line segments comprising the boundary of the polygon.\u003c/p\u003e\n\u003cp\u003ePolygons are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"sect2\" id=\"DATATYPE-CIRCLE\"\u003e\n\u003cdiv class=\"titlepage\"\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003ch3 class=\"title\"\u003e8.8.7. Circles \u003c/h3\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eCircles are represented by a center point and radius. Values of type \u003ccode class=\"type\"\u003ecircle\u003c/code\u003e are specified using any of the following syntaxes:\u003c/p\u003e\n\u003cpre class=\"synopsis\"\u003e\u0026lt; ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e \u0026gt;\n( ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e )\n  ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e ) , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e , \u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e   , \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e\n\u003c/pre\u003e\n\u003cp\u003ewhere \u003ccode class=\"literal\"\u003e(\u003cem class=\"replaceable\"\u003e\u003ccode\u003ex\u003c/code\u003e\u003c/em\u003e,\u003cem class=\"replaceable\"\u003e\u003ccode\u003ey\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e is the center point and \u003cem class=\"replaceable\"\u003e\u003ccode\u003er\u003c/code\u003e\u003c/em\u003e is the radius of the circle.\u003c/p\u003e\n\u003cp\u003eCircles are output using the first syntax.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e","related":[{"label":"pg_type catalog","url":"/wiki/catalog/pg_type/?v=18"},{"label":"pg_cast catalog","url":"/wiki/catalog/pg_cast/?v=18"},{"label":"pg_operator catalog","url":"/wiki/catalog/pg_operator/?v=18"},{"label":"pg_opclass catalog","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"Arrays","url":"/wiki/type/arrays/?v=18"}],"sections":[]}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
