📄 cube.out
字号:
---- Test cube datatype------ first, define the datatype. Turn off echoing so that expected file-- does not depend on contents of cube.sql.--\set ECHO nonepsql:cube.sql:10: NOTICE: type "cube" is not yet definedDETAIL: Creating a shell type definition.psql:cube.sql:15: NOTICE: argument type cube is only a shell---- testing the input and output functions---- Any number (a one-dimensional point)SELECT '1'::cube AS cube; cube ------ (1)(1 row)SELECT '-1'::cube AS cube; cube ------ (-1)(1 row)SELECT '1.'::cube AS cube; cube ------ (1)(1 row)SELECT '-1.'::cube AS cube; cube ------ (-1)(1 row)SELECT '.1'::cube AS cube; cube ------- (0.1)(1 row)SELECT '-.1'::cube AS cube; cube -------- (-0.1)(1 row)SELECT '1.0'::cube AS cube; cube ------ (1)(1 row)SELECT '-1.0'::cube AS cube; cube ------ (-1)(1 row)SELECT '1e27'::cube AS cube; cube --------- (1e+27)(1 row)SELECT '-1e27'::cube AS cube; cube ---------- (-1e+27)(1 row)SELECT '1.0e27'::cube AS cube; cube --------- (1e+27)(1 row)SELECT '-1.0e27'::cube AS cube; cube ---------- (-1e+27)(1 row)SELECT '1e+27'::cube AS cube; cube --------- (1e+27)(1 row)SELECT '-1e+27'::cube AS cube; cube ---------- (-1e+27)(1 row)SELECT '1.0e+27'::cube AS cube; cube --------- (1e+27)(1 row)SELECT '-1.0e+27'::cube AS cube; cube ---------- (-1e+27)(1 row)SELECT '1e-7'::cube AS cube; cube --------- (1e-07)(1 row)SELECT '-1e-7'::cube AS cube; cube ---------- (-1e-07)(1 row)SELECT '1.0e-7'::cube AS cube; cube --------- (1e-07)(1 row)SELECT '-1.0e-7'::cube AS cube; cube ---------- (-1e-07)(1 row)SELECT '1e-700'::cube AS cube; cube ------ (0)(1 row)SELECT '-1e-700'::cube AS cube; cube ------ (0)(1 row)SELECT '1234567890123456'::cube AS cube; cube ------------------------ (1.23456789012346e+15)(1 row)SELECT '+1234567890123456'::cube AS cube; cube ------------------------ (1.23456789012346e+15)(1 row)SELECT '-1234567890123456'::cube AS cube; cube ------------------------- (-1.23456789012346e+15)(1 row)SELECT '.1234567890123456'::cube AS cube; cube --------------------- (0.123456789012346)(1 row)SELECT '+.1234567890123456'::cube AS cube; cube --------------------- (0.123456789012346)(1 row)SELECT '-.1234567890123456'::cube AS cube; cube ---------------------- (-0.123456789012346)(1 row)-- simple lists (points)SELECT '1,2'::cube AS cube; cube -------- (1, 2)(1 row)SELECT '(1,2)'::cube AS cube; cube -------- (1, 2)(1 row)SELECT '1,2,3,4,5'::cube AS cube; cube ----------------- (1, 2, 3, 4, 5)(1 row)SELECT '(1,2,3,4,5)'::cube AS cube; cube ----------------- (1, 2, 3, 4, 5)(1 row)-- double lists (cubes)SELECT '(0),(0)'::cube AS cube; cube ------ (0)(1 row)SELECT '(0),(1)'::cube AS cube; cube --------- (0),(1)(1 row)SELECT '[(0),(0)]'::cube AS cube; cube ------ (0)(1 row)SELECT '[(0),(1)]'::cube AS cube; cube --------- (0),(1)(1 row)SELECT '(0,0,0,0),(0,0,0,0)'::cube AS cube; cube -------------- (0, 0, 0, 0)(1 row)SELECT '(0,0,0,0),(1,0,0,0)'::cube AS cube; cube --------------------------- (0, 0, 0, 0),(1, 0, 0, 0)(1 row)SELECT '[(0,0,0,0),(0,0,0,0)]'::cube AS cube; cube -------------- (0, 0, 0, 0)(1 row)SELECT '[(0,0,0,0),(1,0,0,0)]'::cube AS cube; cube --------------------------- (0, 0, 0, 0),(1, 0, 0, 0)(1 row)-- invalid input: parse errorsSELECT ''::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at end of inputSELECT 'ABC'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near "A"SELECT '()'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ")"SELECT '[]'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near "]"SELECT '[()]'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ")"SELECT '[(1)]'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near "]"SELECT '[(1),]'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near "]"SELECT '[(1),2]'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near "2"SELECT '[(1),(2),(3)]'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ","SELECT '1,'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at end of inputSELECT '1,2,'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at end of inputSELECT '1,,2'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ","SELECT '(1,)'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ")"SELECT '(1,2,)'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ")"SELECT '(1,,2)'::cube AS cube;ERROR: bad cube representationDETAIL: syntax error at or near ","-- invalid input: semantic errors and trailing garbageSELECT '[(1),(2)],'::cube AS cube; -- 0ERROR: bad cube representationDETAIL: syntax error at or near ","SELECT '[(1,2,3),(2,3)]'::cube AS cube; -- 1ERROR: bad cube representationDETAIL: different point dimensions in (1,2,3) and (2,3)SELECT '[(1,2),(1,2,3)]'::cube AS cube; -- 1ERROR: bad cube representationDETAIL: different point dimensions in (1,2) and (1,2,3)SELECT '(1),(2),'::cube AS cube; -- 2ERROR: bad cube representationDETAIL: syntax error at or near ","SELECT '(1,2,3),(2,3)'::cube AS cube; -- 3ERROR: bad cube representationDETAIL: different point dimensions in (1,2,3) and (2,3)SELECT '(1,2),(1,2,3)'::cube AS cube; -- 3ERROR: bad cube representationDETAIL: different point dimensions in (1,2) and (1,2,3)SELECT '(1,2,3)ab'::cube AS cube; -- 4ERROR: bad cube representationDETAIL: syntax error at or near "a"SELECT '(1,2,3)a'::cube AS cube; -- 5ERROR: bad cube representationDETAIL: syntax error at or near "a"SELECT '(1,2)('::cube AS cube; -- 5ERROR: bad cube representationDETAIL: syntax error at or near "("SELECT '1,2ab'::cube AS cube; -- 6ERROR: bad cube representationDETAIL: syntax error at or near "a"SELECT '1 e7'::cube AS cube; -- 6ERROR: bad cube representationDETAIL: syntax error at or near "e"SELECT '1,2a'::cube AS cube; -- 7ERROR: bad cube representationDETAIL: syntax error at or near "a"SELECT '1..2'::cube AS cube; -- 7ERROR: bad cube representationDETAIL: syntax error at or near ".2"---- Testing building cubes from float8 values--SELECT cube(0::float8); cube ------ (0)(1 row)SELECT cube(1::float8); cube ------ (1)(1 row)SELECT cube(1,2); cube --------- (1),(2)(1 row)SELECT cube(cube(1,2),3); cube --------------- (1, 3),(2, 3)(1 row)SELECT cube(cube(1,2),3,4); cube --------------- (1, 3),(2, 4)(1 row)SELECT cube(cube(cube(1,2),3,4),5); cube --------------------- (1, 3, 5),(2, 4, 5)(1 row)SELECT cube(cube(cube(1,2),3,4),5,6); cube --------------------- (1, 3, 5),(2, 4, 6)(1 row)---- Test that the text -> cube cast was installed.--SELECT '(0)'::text::cube; cube ------ (0)(1 row)---- Testing limit of CUBE_MAX_DIM dimensions check in cube_in.--select '(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)'::cube;ERROR: bad cube representationDETAIL: more than 100 dimensionsselect '(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)'::cube;ERROR: bad cube representationDETAIL: more than 100 dimensions---- testing the operators---- equality/inequality:--SELECT '24, 33.20'::cube = '24, 33.20'::cube AS bool; bool ------ t(1 row)SELECT '24, 33.20'::cube != '24, 33.20'::cube AS bool; bool ------ f(1 row)SELECT '24, 33.20'::cube = '24, 33.21'::cube AS bool; bool ------ f(1 row)SELECT '24, 33.20'::cube != '24, 33.21'::cube AS bool; bool ------ t(1 row)SELECT '(2,0),(3,1)'::cube = '(2,0,0,0,0),(3,1,0,0,0)'::cube AS bool; bool ------ f(1 row)SELECT '(2,0),(3,1)'::cube = '(2,0,0,0,0),(3,1,0,0,1)'::cube AS bool; bool ------ f(1 row)-- "lower than" / "greater than"-- (these operators are not useful for anything but ordering)--SELECT '1'::cube > '2'::cube AS bool; bool ------ f(1 row)SELECT '1'::cube < '2'::cube AS bool; bool ------ t(1 row)SELECT '1,1'::cube > '1,2'::cube AS bool; bool ------ f(1 row)SELECT '1,1'::cube < '1,2'::cube AS bool; bool ------ t(1 row)SELECT '(2,0),(3,1)'::cube > '(2,0,0,0,0),(3,1,0,0,1)'::cube AS bool; bool ------ f(1 row)SELECT '(2,0),(3,1)'::cube < '(2,0,0,0,0),(3,1,0,0,1)'::cube AS bool; bool ------ t(1 row)SELECT '(2,0),(3,1)'::cube > '(2,0,0,0,1),(3,1,0,0,0)'::cube AS bool; bool ------ f(1 row)SELECT '(2,0),(3,1)'::cube < '(2,0,0,0,1),(3,1,0,0,0)'::cube AS bool; bool ------ t(1 row)SELECT '(2,0),(3,1)'::cube > '(2,0,0,0,0),(3,1,0,0,0)'::cube AS bool; bool ------ f(1 row)SELECT '(2,0),(3,1)'::cube < '(2,0,0,0,0),(3,1,0,0,0)'::cube AS bool; bool ------ t(1 row)SELECT '(2,0,0,0,0),(3,1,0,0,1)'::cube > '(2,0),(3,1)'::cube AS bool; bool ------ t(1 row)SELECT '(2,0,0,0,0),(3,1,0,0,1)'::cube < '(2,0),(3,1)'::cube AS bool; bool ------ f(1 row)SELECT '(2,0,0,0,1),(3,1,0,0,0)'::cube > '(2,0),(3,1)'::cube AS bool; bool ------ t(1 row)SELECT '(2,0,0,0,1),(3,1,0,0,0)'::cube < '(2,0),(3,1)'::cube AS bool; bool ------ f(1 row)SELECT '(2,0,0,0,0),(3,1,0,0,0)'::cube > '(2,0),(3,1)'::cube AS bool; bool ------ t(1 row)SELECT '(2,0,0,0,0),(3,1,0,0,0)'::cube < '(2,0),(3,1)'::cube AS bool; bool ------ f(1 row)-- "overlap"--SELECT '1'::cube && '1'::cube AS bool; bool ------ t(1 row)SELECT '1'::cube && '2'::cube AS bool; bool ------ f(1 row)SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '0'::cube AS bool; bool ------ t(1 row)SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '1'::cube AS bool; bool ------ t(1 row)SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '1,1,1'::cube AS bool; bool ------ t(1 row)SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '[(1,1,1),(2,2,2)]'::cube AS bool; bool ------ t(1 row)SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '[(1,1),(2,2)]'::cube AS bool; bool ------ t(1 row)SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '[(2,1,1),(2,2,2)]'::cube AS bool; bool ------ f(1 row)-- "overlap on the left" / "overlap on the right"-- (these operators are not useful at all but R-tree seems to be-- sensitive to their presence)--SELECT '1'::cube &< '0'::cube AS bool; bool ------ f(1 row)SELECT '1'::cube &< '1'::cube AS bool; bool ------ t(1 row)SELECT '1'::cube &< '2'::cube AS bool; bool ------ f(1 row)SELECT '(0),(1)'::cube &< '0'::cube AS bool; bool ------ t(1 row)SELECT '(0),(1)'::cube &< '1'::cube AS bool; bool ------ f(1 row)SELECT '(0),(1)'::cube &< '(0),(0.5)'::cube AS bool; bool ------ t(1 row)SELECT '(0),(1)'::cube &< '(0),(1)'::cube AS bool; bool ------ t(1 row)SELECT '(0),(1)'::cube &< '(0),(2)'::cube AS bool; bool ------ t(1 row)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -