📄 polygon.out
字号:
---- POLYGON---- polygon logic---- 3 o-- |-- 2 + |-- / |-- 1 # o +-- / |-- 0 #-----o-+---- 0 1 2 3 4--CREATE TABLE POLYGON_TBL(f1 polygon);INSERT INTO POLYGON_TBL(f1) VALUES ('(2.0,0.0),(2.0,4.0),(0.0,0.0)');INSERT INTO POLYGON_TBL(f1) VALUES ('(3.0,1.0),(3.0,3.0),(1.0,0.0)');-- degenerate polygons INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,0.0)');INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,1.0),(0.0,1.0)');-- bad polygon input strings INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');ERROR: invalid input syntax for type polygon: "0.0"INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');ERROR: invalid input syntax for type polygon: "(0.0 0.0"INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');ERROR: invalid input syntax for type polygon: "(0,1,2)"INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');ERROR: invalid input syntax for type polygon: "(0,1,2,3"INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');ERROR: invalid input syntax for type polygon: "asdf"SELECT '' AS four, POLYGON_TBL.*; four | f1 ------+--------------------- | ((2,0),(2,4),(0,0)) | ((3,1),(3,3),(1,0)) | ((0,0)) | ((0,1),(0,1))(4 rows)-- overlap SELECT '' AS three, p.* FROM POLYGON_TBL p WHERE p.f1 && '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; three | f1 -------+--------------------- | ((2,0),(2,4),(0,0)) | ((3,1),(3,3),(1,0))(2 rows)-- left overlap SELECT '' AS four, p.* FROM POLYGON_TBL p WHERE p.f1 &< '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; four | f1 ------+--------------------- | ((2,0),(2,4),(0,0)) | ((3,1),(3,3),(1,0)) | ((0,0)) | ((0,1),(0,1))(4 rows)-- right overlap SELECT '' AS two, p.* FROM POLYGON_TBL p WHERE p.f1 &> '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; two | f1 -----+--------------------- | ((2,0),(2,4),(0,0)) | ((3,1),(3,3),(1,0))(2 rows)-- left of SELECT '' AS one, p.* FROM POLYGON_TBL p WHERE p.f1 << '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; one | f1 -----+--------------- | ((0,0)) | ((0,1),(0,1))(2 rows)-- right of SELECT '' AS zero, p.* FROM POLYGON_TBL p WHERE p.f1 >> '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; zero | f1 ------+----(0 rows)-- contained SELECT '' AS one, p.* FROM POLYGON_TBL p WHERE p.f1 @ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; one | f1 -----+--------------------- | ((3,1),(3,3),(1,0))(1 row)-- same SELECT '' AS one, p.* FROM POLYGON_TBL p WHERE p.f1 ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; one | f1 -----+--------------------- | ((3,1),(3,3),(1,0))(1 row)-- contains SELECT '' AS one, p.* FROM POLYGON_TBL p WHERE p.f1 ~ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; one | f1 -----+--------------------- | ((3,1),(3,3),(1,0))(1 row)---- polygon logic---- 3 o-- |-- 2 + |-- / |-- 1 / o +-- / |-- 0 +-----o-+---- 0 1 2 3 4---- left of SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; false ------- f(1 row)-- left overlap SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true; true ------ f(1 row)-- right overlap SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' &> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true; true ------ t(1 row)-- right of SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' >> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; false ------- f(1 row)-- contained in SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' @ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; false ------- f(1 row)-- contains SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' ~ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; false ------- f(1 row)-- same SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; false ------- f(1 row)-- overlap SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' && polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true; true ------ t(1 row)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -