OSDN Git Service

Add test for UNION.
authorThomas G. Lockhart <lockhart@fourpalms.org>
Fri, 29 May 1998 13:22:42 +0000 (13:22 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Fri, 29 May 1998 13:22:42 +0000 (13:22 +0000)
Add additional tests in strings for conversions of the "name" data type.
Test SQL92 string functions such as SUBSTRING() and POSITION().
Fix geometry tests to reflect code fixed by Gautam.
Update error messages.

src/test/regress/expected/errors.out
src/test/regress/expected/geometry.out
src/test/regress/expected/strings.out
src/test/regress/expected/union.out [new file with mode: 0644]

index 92644c7..1add0bc 100644 (file)
@@ -11,7 +11,7 @@ ERROR:  attribute 'nonesuch' not found
 QUERY: select distinct on foobar from pg_database;
 ERROR:  parser: parse error at or near "from"
 QUERY: select distinct on foobar * from pg_database;
-ERROR:  The field specified in the UNIQUE ON clause is not in the targetlist
+ERROR:  All fields in the UNIQUE ON clause must appear in the target list
 QUERY: delete from;
 ERROR:  parser: parse error at or near ";"
 QUERY: delete from nonesuch;
index a423ae3..bc30045 100644 (file)
@@ -87,43 +87,42 @@ one|f1
 
 QUERY: SELECT '' AS count, p.f1, l.s, l.s # p.f1 AS intersection
    FROM LSEG_TBL l, POINT_TBL p;
-ERROR:  There is no operator '#' for types 'lseg' and 'point'
-       You will either have to retype this query using an explicit cast,
-       or you will have to define the operator using CREATE OPERATOR
+ERROR:  There is more than one possible operator '#' for types 'lseg' and 'point'
+       You will have to retype this query using an explicit cast
 QUERY: SELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest
    FROM LSEG_TBL l, POINT_TBL p;
-thirty|f1        |s                            |closest                             
-------+----------+-----------------------------+------------------------------------
-      |(0,0)     |[(1,2),(3,4)]                |(1,2)                               
-      |(-10,0)   |[(1,2),(3,4)]                |(1,2)                               
-      |(-3,4)    |[(1,2),(3,4)]                |(1,2)                               
-      |(5.1,34.5)|[(1,2),(3,4)]                |(3,4)                               
-      |(-5,-12)  |[(1,2),(3,4)]                |(1,2)                               
-      |(10,10)   |[(1,2),(3,4)]                |(3,4)                               
-      |(0,0)     |[(0,0),(6,6)]                |(-0,0)                              
-      |(-10,0)   |[(0,0),(6,6)]                |(0,0)                               
-      |(-3,4)    |[(0,0),(6,6)]                |(0,0)                               
-      |(5.1,34.5)|[(0,0),(6,6)]                |(6,6)                               
-      |(-5,-12)  |[(0,0),(6,6)]                |(0,0)                               
-      |(10,10)   |[(0,0),(6,6)]                |(6,6)                               
-      |(0,0)     |[(10,-10),(-3,-4)]           |(-3,-4)                             
-      |(-10,0)   |[(10,-10),(-3,-4)]           |(-3,-4)                             
-      |(-3,4)    |[(10,-10),(-3,-4)]           |(-3,-4)                             
-      |(5.1,34.5)|[(10,-10),(-3,-4)]           |(-3,-4)                             
-      |(-5,-12)  |[(10,-10),(-3,-4)]           |(-3,-4)                             
-      |(10,10)   |[(10,-10),(-3,-4)]           |(-3,-4)                             
-      |(0,0)     |[(-1000000,200),(300000,-40)]|(0.0028402365895872,15.384614860264)
-      |(-10,0)   |[(-1000000,200),(300000,-40)]|(-9.99715942258202,15.3864610140473)
-      |(-3,4)    |[(-1000000,200),(300000,-40)]|(-2.99789812267519,15.3851688427303)
-      |(5.1,34.5)|[(-1000000,200),(300000,-40)]|(5.09647083221496,15.3836744976925) 
-      |(-5,-12)  |[(-1000000,200),(300000,-40)]|(-4.99494420845634,15.3855375281616)
-      |(10,10)   |[(-1000000,200),(300000,-40)]|(10.000993741978,15.3827690473092)  
-      |(0,0)     |[(11,22),(33,44)]            |(11,22)                             
-      |(-10,0)   |[(11,22),(33,44)]            |(11,22)                             
-      |(-3,4)    |[(11,22),(33,44)]            |(11,22)                             
-      |(5.1,34.5)|[(11,22),(33,44)]            |(11,22)                             
-      |(-5,-12)  |[(11,22),(33,44)]            |(11,22)                             
-      |(10,10)   |[(11,22),(33,44)]            |(11,22)                             
+thirty|f1        |s                            |closest                              
+------+----------+-----------------------------+-------------------------------------
+      |(0,0)     |[(1,2),(3,4)]                |(1,2)                                
+      |(-10,0)   |[(1,2),(3,4)]                |(1,2)                                
+      |(-3,4)    |[(1,2),(3,4)]                |(1,2)                                
+      |(5.1,34.5)|[(1,2),(3,4)]                |(3,4)                                
+      |(-5,-12)  |[(1,2),(3,4)]                |(1,2)                                
+      |(10,10)   |[(1,2),(3,4)]                |(3,4)                                
+      |(0,0)     |[(0,0),(6,6)]                |(-0,0)                               
+      |(-10,0)   |[(0,0),(6,6)]                |(0,0)                                
+      |(-3,4)    |[(0,0),(6,6)]                |(0.5,0.5)                            
+      |(5.1,34.5)|[(0,0),(6,6)]                |(6,6)                                
+      |(-5,-12)  |[(0,0),(6,6)]                |(0,0)                                
+      |(10,10)   |[(0,0),(6,6)]                |(6,6)                                
+      |(0,0)     |[(10,-10),(-3,-4)]           |(-2.04878048780488,-4.4390243902439) 
+      |(-10,0)   |[(10,-10),(-3,-4)]           |(-3,-4)                              
+      |(-3,4)    |[(10,-10),(-3,-4)]           |(-3,-4)                              
+      |(5.1,34.5)|[(10,-10),(-3,-4)]           |(-3,-4)                              
+      |(-5,-12)  |[(10,-10),(-3,-4)]           |(-1.60487804878049,-4.64390243902439)
+      |(10,10)   |[(10,-10),(-3,-4)]           |(2.39024390243902,-6.48780487804878) 
+      |(0,0)     |[(-1000000,200),(300000,-40)]|(0.0028402365895872,15.384614860264) 
+      |(-10,0)   |[(-1000000,200),(300000,-40)]|(-9.99715942258202,15.3864610140473) 
+      |(-3,4)    |[(-1000000,200),(300000,-40)]|(-2.99789812267519,15.3851688427303) 
+      |(5.1,34.5)|[(-1000000,200),(300000,-40)]|(5.09647083221496,15.3836744976925)  
+      |(-5,-12)  |[(-1000000,200),(300000,-40)]|(-4.99494420845634,15.3855375281616) 
+      |(10,10)   |[(-1000000,200),(300000,-40)]|(10.000993741978,15.3827690473092)   
+      |(0,0)     |[(11,22),(33,44)]            |(11,22)                              
+      |(-10,0)   |[(11,22),(33,44)]            |(11,22)                              
+      |(-3,4)    |[(11,22),(33,44)]            |(11,22)                              
+      |(5.1,34.5)|[(11,22),(33,44)]            |(14.3,25.3)                          
+      |(-5,-12)  |[(11,22),(33,44)]            |(11,22)                              
+      |(10,10)   |[(11,22),(33,44)]            |(11,22)                              
 (30 rows)
 
 QUERY: SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL;
index acac8ee..62a4e06 100644 (file)
@@ -9,9 +9,146 @@ first line - next line - third line
 
 QUERY: SELECT 'first line'
 ' - next line' /* this comment is not allowed here */
-' - third line';
+' - third line'
+       AS "Illegal comment within continuation";
 ERROR:  parser: parse error at or near "'"
-QUERY: SELECT text(f1) FROM CHAR_TBL;
-ERROR:  function text(bpchar) does not exist
-QUERY: SELECT text(f1) FROM VARCHAR_TBL;
-ERROR:  function text(varchar) does not exist
+QUERY: SELECT CAST(f1 AS text) AS "text(char)" FROM CHAR_TBL;
+text(char)
+----------
+a         
+ab        
+abcd      
+abcd      
+(4 rows)
+
+QUERY: SELECT CAST(f1 AS text) AS "text(varchar)" FROM VARCHAR_TBL;
+text(varchar)
+-------------
+a            
+ab           
+abcd         
+abcd         
+(4 rows)
+
+QUERY: SELECT CAST(name 'namefield' AS text) AS "text(name)";
+text(name)
+----------
+namefield 
+(1 row)
+
+QUERY: SELECT CAST(f1 AS char) AS "char(text)" FROM TEXT_TBL;
+char(text)       
+-----------------
+doh!             
+hi de ho neighbor
+(2 rows)
+
+QUERY: SELECT CAST(f1 AS char) AS "char(varchar)" FROM VARCHAR_TBL;
+char(varchar)
+-------------
+a            
+ab           
+abcd         
+abcd         
+(4 rows)
+
+QUERY: SELECT CAST(name 'namefield' AS char) AS "char(name)";
+char(name)
+----------
+namefield 
+(1 row)
+
+QUERY: SELECT CAST(f1 AS varchar) AS "varchar(text)" FROM TEXT_TBL;
+varchar(text)    
+-----------------
+doh!             
+hi de ho neighbor
+(2 rows)
+
+QUERY: SELECT CAST(f1 AS varchar) AS "varchar(char)" FROM CHAR_TBL;
+varchar(char)
+-------------
+a            
+ab           
+abcd         
+abcd         
+(4 rows)
+
+QUERY: SELECT CAST(name 'namefield' AS varchar) AS "varchar(name)";
+varchar(name)
+-------------
+namefield    
+(1 row)
+
+QUERY: SELECT TRIM(BOTH FROM '  bunch o blanks  ') AS "bunch o blanks";
+bunch o blanks
+--------------
+bunch o blanks
+(1 row)
+
+QUERY: SELECT TRIM(LEADING FROM '  bunch o blanks  ') AS "bunch o blanks  ";
+bunch o blanks  
+----------------
+bunch o blanks  
+(1 row)
+
+QUERY: SELECT TRIM(TRAILING FROM '  bunch o blanks  ') AS "  bunch o blanks";
+  bunch o blanks
+----------------
+  bunch o blanks
+(1 row)
+
+QUERY: SELECT TRIM(BOTH 'x' FROM 'xxxxxsome Xsxxxxx') AS "some Xs";
+some Xs
+-------
+some Xs
+(1 row)
+
+QUERY: SELECT SUBSTRING('1234567890' FROM 3) AS "34567890";
+34567890
+--------
+34567890
+(1 row)
+
+QUERY: SELECT SUBSTRING('1234567890' FROM 4 FOR 3) AS "456";
+456
+---
+456
+(1 row)
+
+QUERY: SELECT POSITION('4' IN '1234567890') AS "4";
+4
+-
+4
+(1 row)
+
+QUERY: SELECT POSITION(5 IN '1234567890') AS "5";
+5
+-
+5
+(1 row)
+
+QUERY: SELECT 'unknown' || ' and unknown' AS "Concat unknown types";
+Concat unknown types
+--------------------
+unknown and unknown 
+(1 row)
+
+QUERY: SELECT text 'text' || ' and unknown' AS "Concat text to unknown type";
+Concat text to unknown type
+---------------------------
+text and unknown           
+(1 row)
+
+QUERY: SELECT text 'text' || char ' and char' AS "Concat text to char";
+Concat text to char
+-------------------
+text and char      
+(1 row)
+
+QUERY: SELECT text 'text' || varchar ' and varchar' AS "Concat text to varchar";
+Concat text to varchar
+----------------------
+text and varchar      
+(1 row)
+
diff --git a/src/test/regress/expected/union.out b/src/test/regress/expected/union.out
new file mode 100644 (file)
index 0000000..8b0f6d7
--- /dev/null
@@ -0,0 +1,241 @@
+QUERY: SELECT 1 AS two UNION SELECT 2;
+two
+---
+  1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS one UNION SELECT 1;
+one
+---
+  1
+(1 row)
+
+QUERY: SELECT 1 AS two UNION ALL SELECT 2;
+two
+---
+  1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS two UNION ALL SELECT 1;
+two
+---
+  1
+  1
+(2 rows)
+
+QUERY: SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
+three
+-----
+    1
+    2
+    3
+(3 rows)
+
+QUERY: SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
+two
+---
+  1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
+three
+-----
+    1
+    2
+    2
+(3 rows)
+
+QUERY: SELECT 1.1 AS two UNION SELECT 2.2;
+two
+---
+1.1
+2.2
+(2 rows)
+
+QUERY: SELECT 1.1 AS two UNION SELECT 2;
+two
+---
+1.1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS two UNION SELECT 2.2;
+two
+---
+  1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS one UNION SELECT 1.1;
+one
+---
+  1
+(1 row)
+
+QUERY: SELECT 1.1 AS two UNION ALL SELECT 2;
+two
+---
+1.1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS two UNION ALL SELECT 1;
+two
+---
+  1
+  1
+(2 rows)
+
+QUERY: SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
+three
+-----
+    1
+    2
+    3
+(3 rows)
+
+QUERY: SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
+two
+---
+  1
+  2
+(2 rows)
+
+QUERY: SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
+three
+-----
+    1
+    2
+    2
+(3 rows)
+
+QUERY: SELECT f1 AS five FROM FLOAT8_TBL
+UNION
+SELECT f1 FROM FLOAT8_TBL;
+five                 
+---------------------
+-1.2345678901234e+200
+-1004.3              
+-34.84               
+-1.2345678901234e-200
+0                    
+(5 rows)
+
+QUERY: SELECT f1 AS ten FROM FLOAT8_TBL
+UNION ALL
+SELECT f1 FROM FLOAT8_TBL;
+ten                  
+---------------------
+0                    
+-34.84               
+-1004.3              
+-1.2345678901234e+200
+-1.2345678901234e-200
+0                    
+-34.84               
+-1004.3              
+-1.2345678901234e+200
+-1.2345678901234e-200
+(10 rows)
+
+QUERY: SELECT f1 AS nine FROM FLOAT8_TBL
+UNION
+SELECT f1 FROM INT4_TBL;
+nine                 
+---------------------
+-1.2345678901234e+200
+-2147483647          
+-123456              
+-1004.3              
+-34.84               
+-1.2345678901234e-200
+0                    
+123456               
+2147483647           
+(9 rows)
+
+QUERY: SELECT f1 AS ten FROM FLOAT8_TBL
+UNION ALL
+SELECT f1 FROM INT4_TBL;
+ten                  
+---------------------
+0                    
+-34.84               
+-1004.3              
+-1.2345678901234e+200
+-1.2345678901234e-200
+0                    
+123456               
+-123456              
+2147483647           
+-2147483647          
+(10 rows)
+
+QUERY: SELECT f1 AS five FROM FLOAT8_TBL
+  WHERE f1 BETWEEN -1e6 AND 1e6
+UNION
+SELECT f1 FROM INT4_TBL
+  WHERE f1 BETWEEN 0 AND 1000000;
+                 five
+---------------------
+              -1004.3
+               -34.84
+-1.2345678901234e-200
+                    0
+               123456
+(5 rows)
+
+QUERY: SELECT f1 AS five FROM VARCHAR_TBL
+UNION
+SELECT f1 FROM CHAR_TBL;
+five
+----
+a   
+a   
+ab  
+ab  
+abcd
+(5 rows)
+
+QUERY: SELECT f1 AS three FROM VARCHAR_TBL
+UNION
+SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
+three
+-----
+a    
+ab   
+abcd 
+(3 rows)
+
+QUERY: SELECT f1 AS eight FROM VARCHAR_TBL
+UNION ALL
+SELECT f1 FROM CHAR_TBL;
+eight
+-----
+a    
+ab   
+abcd 
+abcd 
+a    
+ab   
+abcd 
+abcd 
+(8 rows)
+
+QUERY: SELECT f1 AS five FROM TEXT_TBL
+UNION
+SELECT f1 FROM VARCHAR_TBL
+UNION
+SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
+five             
+-----------------
+a                
+ab               
+abcd             
+doh!             
+hi de ho neighbor
+(5 rows)
+