Looks like cube_1 variant is also needed in 7.3 branch.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Jul 2005 17:36:56 +0000 (17:36 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Jul 2005 17:36:56 +0000 (17:36 +0000)
(Don't bother adding it in 7.2, though, since pg_regress doesn't
have the capability to use it that far back.

contrib/cube/expected/cube_1.out

index 73a7c2f115a1f606474d868d7cc53e62db38c976..9f8abd49b272aa3fc0bd1c61786c86545b3af90b 100644 (file)
@@ -6,9 +6,8 @@
 -- does not depend on contents of cube.sql.
 --
 \set ECHO none
-psql:cube.sql:10: NOTICE:  type "cube" is not yet defined
-DETAIL:  Creating a shell type definition.
-psql:cube.sql:15: NOTICE:  argument type cube is only a shell
+psql:cube.sql:12: NOTICE:  ProcedureCreate: type cube is not yet defined
+psql:cube.sql:17: NOTICE:  Argument type "cube" is only a shell
 --
 -- testing the input and output functions
 --
@@ -146,39 +145,39 @@ SELECT '-1e-700'::cube AS cube;
 (1 row)
 
 SELECT '1234567890123456'::cube AS cube;
-          cube          
-------------------------
- (1.23456789012346e+15)
+        cube        
+--------------------
+ (1234567890123456)
 (1 row)
 
 SELECT '+1234567890123456'::cube AS cube;
-          cube          
-------------------------
- (1.23456789012346e+15)
+        cube        
+--------------------
+ (1234567890123456)
 (1 row)
 
 SELECT '-1234567890123456'::cube AS cube;
-          cube           
--------------------------
- (-1.23456789012346e+15)
+        cube         
+---------------------
+ (-1234567890123456)
 (1 row)
 
 SELECT '.1234567890123456'::cube AS cube;
-        cube         
----------------------
- (0.123456789012346)
+         cube         
+----------------------
+ (0.1234567890123456)
 (1 row)
 
 SELECT '+.1234567890123456'::cube AS cube;
-        cube         
----------------------
- (0.123456789012346)
+         cube         
+----------------------
+ (0.1234567890123456)
 (1 row)
 
 SELECT '-.1234567890123456'::cube AS cube;
-         cube         
-----------------------
- (-0.123456789012346)
+         cube          
+-----------------------
+ (-0.1234567890123456)
 (1 row)
 
 -- simple lists (points)
@@ -257,153 +256,98 @@ SELECT '[(0,0,0,0),(1,0,0,0)]'::cube AS cube;
 
 -- invalid input: parse errors
 SELECT ''::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at end of input
+ERROR:  cube_in: can't parse an empty string
 SELECT 'ABC'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "A"
+ERROR:  parse error at or before position 1, character ('A', \101), input: 'ABC'
+
 SELECT '()'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ")"
+ERROR:  parse error at or before position 2, character (')', \051), input: '()'
+
 SELECT '[]'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "]"
+ERROR:  parse error at or before position 2, character (']', \135), input: '[]'
+
 SELECT '[()]'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ")"
+ERROR:  parse error at or before position 3, character (')', \051), input: '[()]'
+
 SELECT '[(1)]'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "]"
+ERROR:  parse error at or before position 5, character (']', \135), input: '[(1)]'
+
 SELECT '[(1),]'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "]"
+ERROR:  parse error at or before position 6, character (']', \135), input: '[(1),]'
+
 SELECT '[(1),2]'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "2"
+ERROR:  parse error at or before position 7, character (']', \135), input: '[(1),2]'
+
 SELECT '[(1),(2),(3)]'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ","
+ERROR:  parse error at or before position 9, character (',', \054), input: '[(1),(2),(3)]'
+
 SELECT '1,'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at end of input
+ERROR:  parse error at or before position 2, character (',', \054), input: '1,'
+
 SELECT '1,2,'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at end of input
+ERROR:  parse error at or before position 4, character (',', \054), input: '1,2,'
+
 SELECT '1,,2'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ","
+ERROR:  parse error at or before position 3, character (',', \054), input: '1,,2'
+
 SELECT '(1,)'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ")"
+ERROR:  parse error at or before position 4, character (')', \051), input: '(1,)'
+
 SELECT '(1,2,)'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ")"
+ERROR:  parse error at or before position 6, character (')', \051), input: '(1,2,)'
+
 SELECT '(1,,2)'::cube AS cube;
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ","
+ERROR:  parse error at or before position 4, character (',', \054), input: '(1,,2)'
+
 -- invalid input: semantic errors and trailing garbage
 SELECT '[(1),(2)],'::cube AS cube; -- 0
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ","
+ERROR:  (0) bad cube representation; garbage at or before char 9, (',', \054)
+
 SELECT '[(1,2,3),(2,3)]'::cube AS cube; -- 1
-ERROR:  bad cube representation
-DETAIL:  different point dimensions in (1,2,3) and (2,3)
+ERROR:  (1) bad cube representation; different point dimensions in (1,2,3) and (2,3)
+
 SELECT '[(1,2),(1,2,3)]'::cube AS cube; -- 1
-ERROR:  bad cube representation
-DETAIL:  different point dimensions in (1,2) and (1,2,3)
+ERROR:  (1) bad cube representation; different point dimensions in (1,2) and (1,2,3)
+
 SELECT '(1),(2),'::cube AS cube; -- 2
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ","
+ERROR:  (2) bad cube representation; garbage at or before char 7, (',', \054)
+
 SELECT '(1,2,3),(2,3)'::cube AS cube; -- 3
-ERROR:  bad cube representation
-DETAIL:  different point dimensions in (1,2,3) and (2,3)
+ERROR:  (3) bad cube representation; different point dimensions in (1,2,3) and (2,3)
+
 SELECT '(1,2),(1,2,3)'::cube AS cube; -- 3
-ERROR:  bad cube representation
-DETAIL:  different point dimensions in (1,2) and (1,2,3)
-SELECT '(1,2,3)ab'::cube AS cube; -- 4
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "a"
-SELECT '(1,2,3)a'::cube AS cube; -- 5
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "a"
-SELECT '(1,2)('::cube AS cube; -- 5
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "("
-SELECT '1,2ab'::cube AS cube; -- 6
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "a"
-SELECT '1 e7'::cube AS cube; -- 6
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "e"
-SELECT '1,2a'::cube AS cube; -- 7
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near "a"
-SELECT '1..2'::cube AS cube; -- 7
-ERROR:  bad cube representation
-DETAIL:  syntax error at or near ".2"
---
--- Testing building cubes from float8 values
---
-SELECT cube(0::float8);
- cube 
-------
- (0)
-(1 row)
+ERROR:  (3) bad cube representation; different point dimensions in (1,2) and (1,2,3)
 
-SELECT cube(1::float8);
- cube 
-------
- (1)
-(1 row)
+SELECT '(1,2,3)ab'::cube AS cube; -- 4
+ERROR:  (4) bad cube representation; garbage at or before char 8, ('b', \142)
 
-SELECT cube(1,2);
-  cube   
----------
- (1),(2)
-(1 row)
+SELECT '(1,2,3)a'::cube AS cube; -- 5
+ERROR:  (5) bad cube representation; garbage at or before char 8, ('end of input', \000)
 
-SELECT cube(cube(1,2),3);
-     cube      
----------------
- (1, 3),(2, 3)
-(1 row)
+SELECT '(1,2)('::cube AS cube; -- 5
+ERROR:  (5) bad cube representation; garbage at or before char 6, ('end of input', \000)
 
-SELECT cube(cube(1,2),3,4);
-     cube      
----------------
- (1, 3),(2, 4)
-(1 row)
+SELECT '1,2ab'::cube AS cube; -- 6
+ERROR:  (6) bad cube representation; garbage at or before char 4, ('b', \142)
 
-SELECT cube(cube(cube(1,2),3,4),5);
-        cube         
----------------------
- (1, 3, 5),(2, 4, 5)
-(1 row)
+SELECT '1 e7'::cube AS cube; -- 6
+ERROR:  (6) bad cube representation; garbage at or before char 3, ('7', \067)
 
-SELECT cube(cube(cube(1,2),3,4),5,6);
-        cube         
----------------------
- (1, 3, 5),(2, 4, 6)
-(1 row)
+SELECT '1,2a'::cube AS cube; -- 7
+ERROR:  (7) bad cube representation; garbage at or before char 4, ('end of input', \000)
 
---
--- Test that the text -> cube cast was installed.
---
-SELECT '(0)'::text::cube;
- cube 
-------
- (0)
-(1 row)
+SELECT '1..2'::cube AS cube; -- 7
+ERROR:  (7) bad cube representation; garbage at or before char 4, ('end of input', \000)
 
 --
 -- 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 representation
-DETAIL:  more than 100 dimensions
+ERROR:  (8) bad cube representation; more than 100 dimensions
+
 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),(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 representation
-DETAIL:  more than 100 dimensions
+ERROR:  (8) bad cube representation; more than 100 dimensions
+
 --
 -- testing the  operators
 --
@@ -436,7 +380,7 @@ SELECT '24, 33.20'::cube    != '24, 33.21'::cube AS bool;
 SELECT '(2,0),(3,1)'::cube  =  '(2,0,0,0,0),(3,1,0,0,0)'::cube AS bool;
  bool 
 ------
- f
+ t
 (1 row)
 
 SELECT '(2,0),(3,1)'::cube  =  '(2,0,0,0,0),(3,1,0,0,1)'::cube AS bool;
@@ -594,6 +538,254 @@ SELECT '[(-1,-1,-1),(1,1,1)]'::cube && '[(2,1,1),(2,2,2)]'::cube AS 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)
+
+SELECT '(0),(1)'::cube &< '(1),(2)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(1)'::cube &< '(2),(3)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '0'::cube &> '1'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '1'::cube &> '1'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '2'::cube &> '1'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '0'::cube        &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '1'::cube        &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(0.5)'      &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(0),(1)'::cube  &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(0),(2)'::cube  &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(1),(2)'::cube  &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(2),(3)'::cube  &> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+-- "left" / "right"
+-- (these operators are not useful but for 1-D or 2-D cubes, but R-tree
+-- seems to want them defined)
+--
+SELECT '1'::cube << '0'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '1'::cube << '1'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '1'::cube << '2'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(0),(1)'::cube << '0'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(1)'::cube << '1'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(0),(1)'::cube << '(0),(0.5)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(1)'::cube << '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(1)'::cube << '(0),(2)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(1)'::cube << '(1),(2)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(0),(1)'::cube << '(2),(3)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '0'::cube >> '1'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '1'::cube >> '1'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '2'::cube >> '1'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '0'::cube        >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '1'::cube        >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(0),(0.5)'      >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(1)'::cube  >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(0),(2)'::cube  >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ f
+(1 row)
+
+SELECT '(1),(2)'::cube  >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
+SELECT '(2),(3)'::cube  >> '(0),(1)'::cube AS bool;
+ bool 
+------
+ t
+(1 row)
+
 -- "contained in" (the left operand is the cube entirely enclosed by
 -- the right operand):
 --