Back to home page

OSCL-LXR

 
 

    


0001 -- The test file contains negative test cases
0002 -- of invalid queries where error messages are expected.
0003 
0004 CREATE TEMPORARY VIEW t1 AS SELECT * FROM VALUES
0005   (1, 2, 3)
0006 AS t1(t1a, t1b, t1c);
0007 
0008 CREATE TEMPORARY VIEW t2 AS SELECT * FROM VALUES
0009   (1, 0, 1)
0010 AS t2(t2a, t2b, t2c);
0011 
0012 CREATE TEMPORARY VIEW t3 AS SELECT * FROM VALUES
0013   (3, 1, 2)
0014 AS t3(t3a, t3b, t3c);
0015 
0016 -- TC 01.01
0017 -- The column t2b in the SELECT of the subquery is invalid
0018 -- because it is neither an aggregate function nor a GROUP BY column.
0019 SELECT t1a, t2b
0020 FROM   t1, t2
0021 WHERE  t1b = t2c
0022 AND    t2b = (SELECT max(avg)
0023               FROM   (SELECT   t2b, avg(t2b) avg
0024                       FROM     t2
0025                       WHERE    t2a = t1.t1b
0026                      )
0027              )
0028 ;
0029 
0030 -- TC 01.02
0031 -- Invalid due to the column t2b not part of the output from table t2.
0032 SELECT *
0033 FROM   t1
0034 WHERE  t1a IN (SELECT   min(t2a)
0035                FROM     t2
0036                GROUP BY t2c
0037                HAVING   t2c IN (SELECT   max(t3c)
0038                                 FROM     t3
0039                                 GROUP BY t3b
0040                                 HAVING   t3b > t2b ))
0041 ;
0042 
0043 -- TC 01.03
0044 -- Invalid due to mixure of outer and local references under an AggegatedExpression 
0045 -- in a correlated predicate
0046 SELECT t1a 
0047 FROM   t1
0048 GROUP  BY 1
0049 HAVING EXISTS (SELECT t2a
0050                FROM  t2
0051                GROUP BY 1
0052                HAVING t2a < min(t1a + t2a));
0053 
0054 -- TC 01.04
0055 -- Invalid due to mixure of outer and local references under an AggegatedExpression 
0056 SELECT t1a 
0057 FROM   t1
0058 WHERE  t1a IN (SELECT t2a 
0059                FROM   t2
0060                WHERE  EXISTS (SELECT 1 
0061                               FROM   t3
0062                               GROUP BY 1
0063                               HAVING min(t2a + t3a) > 1));
0064 
0065 -- TC 01.05
0066 -- Invalid due to outer reference appearing in projection list
0067 SELECT t1a 
0068 FROM   t1
0069 WHERE  t1a IN (SELECT t2a 
0070                FROM   t2
0071                WHERE  EXISTS (SELECT min(t2a) 
0072                               FROM   t3));
0073