You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2005/12/21 01:54:02 UTC
svn commit: r358163 [2/4] - in /db/derby/code/trunk/java:
client/org/apache/derby/client/am/ client/org/apache/derby/client/net/
drda/org/apache/derby/impl/drda/ engine/org/apache/derby/iapi/reference/
engine/org/apache/derby/impl/sql/compile/ testing/...
Modified: db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/SQLTypes.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/SQLTypes.java?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/SQLTypes.java (original)
+++ db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/SQLTypes.java Tue Dec 20 16:53:42 2005
@@ -22,73 +22,13 @@
import java.sql.Types;
import java.sql.SQLException;
+import org.apache.derby.iapi.reference.DRDAConstants;
import org.apache.derby.iapi.reference.JDBC30Translation;
public class SQLTypes {
- //----------------------------------------------------------------------------
- protected final static int DB2_SQLTYPE_DATE = 384; // DATE
- protected final static int DB2_SQLTYPE_NDATE = 385;
- protected final static int DB2_SQLTYPE_TIME = 388; // TIME
- protected final static int DB2_SQLTYPE_NTIME = 389;
- protected final static int DB2_SQLTYPE_TIMESTAMP = 392; // TIMESTAMP
- protected final static int DB2_SQLTYPE_NTIMESTAMP = 393;
- protected final static int DB2_SQLTYPE_DATALINK = 396; // DATALINK
- protected final static int DB2_SQLTYPE_NDATALINK = 397;
-
- protected final static int DB2_SQLTYPE_BLOB = 404; // BLOB
- protected final static int DB2_SQLTYPE_NBLOB = 405;
- protected final static int DB2_SQLTYPE_CLOB = 408; // CLOB
- protected final static int DB2_SQLTYPE_NCLOB = 409;
- protected final static int DB2_SQLTYPE_DBCLOB = 412; // DBCLOB
- protected final static int DB2_SQLTYPE_NDBCLOB = 413;
-
- protected final static int DB2_SQLTYPE_VARCHAR = 448; // VARCHAR(i) - varying length string
- protected final static int DB2_SQLTYPE_NVARCHAR = 449;
- protected final static int DB2_SQLTYPE_CHAR = 452; // CHAR(i) - fixed length
- protected final static int DB2_SQLTYPE_NCHAR = 453;
- protected final static int DB2_SQLTYPE_LONG = 456; // LONG VARCHAR - varying length string
- protected final static int DB2_SQLTYPE_NLONG = 457;
- protected final static int DB2_SQLTYPE_CSTR = 460; // SBCS - null terminated
- protected final static int DB2_SQLTYPE_NCSTR = 461;
- protected final static int DB2_SQLTYPE_VARGRAPH = 464; // VARGRAPHIC(i) - varying length
- // graphic string (2 byte length)
- protected final static int DB2_SQLTYPE_NVARGRAPH = 465;
- protected final static int DB2_SQLTYPE_GRAPHIC = 468; // GRAPHIC(i) - fixed length graphic string */
- protected final static int DB2_SQLTYPE_NGRAPHIC = 469;
- protected final static int DB2_SQLTYPE_LONGRAPH = 472; // LONG VARGRAPHIC(i) - varying length graphic string */
- protected final static int DB2_SQLTYPE_NLONGRAPH = 473;
- protected final static int DB2_SQLTYPE_LSTR = 476; // varying length string for Pascal (1-byte length) */
- protected final static int DB2_SQLTYPE_NLSTR = 477;
-
- protected final static int DB2_SQLTYPE_FLOAT = 480; // FLOAT - 4 or 8 byte floating point
- protected final static int DB2_SQLTYPE_NFLOAT = 481;
- protected final static int DB2_SQLTYPE_DECIMAL = 484; // DECIMAL (m,n)
- protected final static int DB2_SQLTYPE_NDECIMAL = 485;
- protected final static int DB2_SQLTYPE_ZONED = 488; // Zoned Decimal -> DECIMAL(m,n)
- protected final static int DB2_SQLTYPE_NZONED = 489;
-
- protected final static int DB2_SQLTYPE_BIGINT = 492; // BIGINT - 8-byte signed integer
- protected final static int DB2_SQLTYPE_NBIGINT = 493;
- protected final static int DB2_SQLTYPE_INTEGER = 496; // INTEGER
- protected final static int DB2_SQLTYPE_NINTEGER = 497;
- protected final static int DB2_SQLTYPE_SMALL = 500; // SMALLINT - 2-byte signed integer */
- protected final static int DB2_SQLTYPE_NSMALL = 501;
-
- protected final static int DB2_SQLTYPE_NUMERIC = 504; // NUMERIC -> DECIMAL (m,n)
- protected final static int DB2_SQLTYPE_NNUMERIC = 505;
-
- protected final static int DB2_SQLTYPE_ROWID = 904; // ROWID
- protected final static int DB2_SQLTYPE_NROWID = 905;
- protected final static int DB2_SQLTYPE_BLOB_LOCATOR = 960; // BLOB locator
- protected final static int DB2_SQLTYPE_NBLOB_LOCATOR = 961;
- protected final static int DB2_SQLTYPE_CLOB_LOCATOR = 964; // CLOB locator
- protected final static int DB2_SQLTYPE_NCLOB_LOCATOR = 965;
- protected final static int DB2_SQLTYPE_DBCLOB_LOCATOR = 968; // DBCLOB locator
- protected final static int DB2_SQLTYPE_NDBCLOB_LOCATOR = 969;
-
// define final statics for the fdoca type codes here!!!
// hide the default constructor
@@ -108,13 +48,15 @@
static protected int mapDB2SqlTypeToJdbcType (int sqlType, long length, int ccsid)
{
switch (getNonNullableSqlType (sqlType)) { // mask the isNullable bit
- case DB2_SQLTYPE_SMALL:
+ case DRDAConstants.DB2_SQLTYPE_BOOLEAN:
+ return JDBC30Translation.BOOLEAN;
+ case DRDAConstants.DB2_SQLTYPE_SMALL:
return java.sql.Types.SMALLINT;
- case DB2_SQLTYPE_INTEGER:
+ case DRDAConstants.DB2_SQLTYPE_INTEGER:
return java.sql.Types.INTEGER;
- case DB2_SQLTYPE_BIGINT:
+ case DRDAConstants.DB2_SQLTYPE_BIGINT:
return java.sql.Types.BIGINT;
- case DB2_SQLTYPE_FLOAT:
+ case DRDAConstants.DB2_SQLTYPE_FLOAT:
if (length == 16) // can map to either NUMERIC or DECIMAL!!! @sxg
return java.sql.Types.DECIMAL;
else if (length == 8) // can map to either DOUBLE or FLOAT!!! @sxg
@@ -124,46 +66,46 @@
else
return 0;
//throw new BugCheckException ("Encountered unexpected float length");
- case DB2_SQLTYPE_DECIMAL: // can map to either NUMERIC or DECIMAL!!! @sxg
- case DB2_SQLTYPE_ZONED: // can map to either NUMERIC or DECIMAL!!! @sxg
- case DB2_SQLTYPE_NUMERIC: // can map to either NUMERIC or DECIMAL!!! @sxg
+ case DRDAConstants.DB2_SQLTYPE_DECIMAL: // can map to either NUMERIC or DECIMAL!!! @sxg
+ case DRDAConstants.DB2_SQLTYPE_ZONED: // can map to either NUMERIC or DECIMAL!!! @sxg
+ case DRDAConstants.DB2_SQLTYPE_NUMERIC: // can map to either NUMERIC or DECIMAL!!! @sxg
return java.sql.Types.DECIMAL;
- case DB2_SQLTYPE_CHAR: // mixed and single byte
+ case DRDAConstants.DB2_SQLTYPE_CHAR: // mixed and single byte
if (ccsid == 0xffff || ccsid == 0) // we think UW returns 0, and 390 returns 0xffff, doublecheck !!!
return java.sql.Types.BINARY;
else
return java.sql.Types.CHAR;
- case DB2_SQLTYPE_CSTR: // SBCS null terminated
- case DB2_SQLTYPE_GRAPHIC: // fixed character DBCS
+ case DRDAConstants.DB2_SQLTYPE_CSTR: // SBCS null terminated
+ case DRDAConstants.DB2_SQLTYPE_GRAPHIC: // fixed character DBCS
return java.sql.Types.CHAR;
// use ccsid to distinguish between BINARY and CHAR, VARBINARY and VARCHAR, LONG... !!! -j/p/s
- case DB2_SQLTYPE_VARGRAPH: // variable character DBCS
- case DB2_SQLTYPE_VARCHAR: // variable character SBCS/Mixed
+ case DRDAConstants.DB2_SQLTYPE_VARGRAPH: // variable character DBCS
+ case DRDAConstants.DB2_SQLTYPE_VARCHAR: // variable character SBCS/Mixed
if (ccsid == 0xffff || ccsid == 0) // we think UW returns 0, and 390 returns 0xffff, doublecheck !!!
return java.sql.Types.VARBINARY;
else
return java.sql.Types.VARCHAR;
- case DB2_SQLTYPE_LSTR: // pascal string SBCS/Mixed
+ case DRDAConstants.DB2_SQLTYPE_LSTR: // pascal string SBCS/Mixed
return java.sql.Types.VARCHAR;
- case DB2_SQLTYPE_LONGRAPH: // long varchar DBCS
- case DB2_SQLTYPE_LONG: // long varchar SBCS/Mixed
+ case DRDAConstants.DB2_SQLTYPE_LONGRAPH: // long varchar DBCS
+ case DRDAConstants.DB2_SQLTYPE_LONG: // long varchar SBCS/Mixed
if (ccsid == 0xffff || ccsid == 0) // we think UW returns 0, and 390 returns 0xffff, doublecheck !!!
return java.sql.Types.LONGVARBINARY;
else
return java.sql.Types.LONGVARCHAR;
- case DB2_SQLTYPE_DATE:
+ case DRDAConstants.DB2_SQLTYPE_DATE:
return java.sql.Types.DATE;
- case DB2_SQLTYPE_TIME:
+ case DRDAConstants.DB2_SQLTYPE_TIME:
return java.sql.Types.TIME;
- case DB2_SQLTYPE_TIMESTAMP:
+ case DRDAConstants.DB2_SQLTYPE_TIMESTAMP:
return java.sql.Types.TIMESTAMP;
- case DB2_SQLTYPE_CLOB: // large object character SBCS/Mixed
- case DB2_SQLTYPE_DBCLOB: // large object character DBCS
+ case DRDAConstants.DB2_SQLTYPE_CLOB: // large object character SBCS/Mixed
+ case DRDAConstants.DB2_SQLTYPE_DBCLOB: // large object character DBCS
return java.sql.Types.CLOB;
- case DB2_SQLTYPE_BLOB: // large object bytes
- case DB2_SQLTYPE_BLOB_LOCATOR:
- case DB2_SQLTYPE_CLOB_LOCATOR:
- case DB2_SQLTYPE_DBCLOB_LOCATOR:
+ case DRDAConstants.DB2_SQLTYPE_BLOB: // large object bytes
+ case DRDAConstants.DB2_SQLTYPE_BLOB_LOCATOR:
+ case DRDAConstants.DB2_SQLTYPE_CLOB_LOCATOR:
+ case DRDAConstants.DB2_SQLTYPE_DBCLOB_LOCATOR:
return java.sql.Types.BLOB;
default:
//throw new BugCheckException ("Encountered unexpected type code");
@@ -190,7 +132,7 @@
* @exception SQLException thrown for unrecognized SQLType
*/
- static protected int mapJdbcTypeToDB2SqlType (int jdbctype, boolean nullable,
+ static protected int mapJdbcTypeToDB2SqlType (AppRequester appRequester, int jdbctype, boolean nullable,
int[] outlen)
throws SQLException
{
@@ -200,49 +142,52 @@
nullAddVal =1;
// Call FdocaConstants just to get the length
- FdocaConstants.mapJdbcTypeToDrdaType(jdbctype,nullable,outlen);
+ FdocaConstants.mapJdbcTypeToDrdaType( appRequester, jdbctype,nullable,outlen);
+ jdbctype = FdocaConstants.clipJdbcType( appRequester, jdbctype );
+
switch(jdbctype)
{
case JDBC30Translation.BOOLEAN:
+ return DRDAConstants.DB2_SQLTYPE_BOOLEAN + nullAddVal;
case java.sql.Types.BIT:
case java.sql.Types.TINYINT:
case java.sql.Types.SMALLINT:
- return DB2_SQLTYPE_SMALL + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_SMALL + nullAddVal;
case java.sql.Types.INTEGER:
- return DB2_SQLTYPE_INTEGER + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_INTEGER + nullAddVal;
case java.sql.Types.BIGINT:
- return DB2_SQLTYPE_BIGINT + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_BIGINT + nullAddVal;
case java.sql.Types.DOUBLE:
case java.sql.Types.REAL:
- return DB2_SQLTYPE_FLOAT + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_FLOAT + nullAddVal;
case java.sql.Types.DECIMAL:
case java.sql.Types.NUMERIC:
- return DB2_SQLTYPE_DECIMAL + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_DECIMAL + nullAddVal;
case java.sql.Types.DATE:
- return DB2_SQLTYPE_DATE + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_DATE + nullAddVal;
case java.sql.Types.TIME:
- return DB2_SQLTYPE_TIME + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_TIME + nullAddVal;
case java.sql.Types.TIMESTAMP:
- return DB2_SQLTYPE_TIMESTAMP + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_TIMESTAMP + nullAddVal;
case java.sql.Types.CHAR:
- return DB2_SQLTYPE_CHAR + nullAddVal; // null terminated SBCS/Mixed
+ return DRDAConstants.DB2_SQLTYPE_CHAR + nullAddVal; // null terminated SBCS/Mixed
case java.sql.Types.BINARY:
- return DB2_SQLTYPE_CHAR + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_CHAR + nullAddVal;
case java.sql.Types.VARCHAR:
case java.sql.Types.VARBINARY:
- return DB2_SQLTYPE_VARCHAR + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_VARCHAR + nullAddVal;
case java.sql.Types.LONGVARBINARY:
- return DB2_SQLTYPE_LONG + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_LONG + nullAddVal;
case java.sql.Types.JAVA_OBJECT:
- return DB2_SQLTYPE_LONG + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_LONG + nullAddVal;
case java.sql.Types.BLOB:
- return DB2_SQLTYPE_BLOB + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_BLOB + nullAddVal;
case java.sql.Types.CLOB:
- return DB2_SQLTYPE_CLOB + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_CLOB + nullAddVal;
case java.sql.Types.LONGVARCHAR:
- return DB2_SQLTYPE_LONG + nullAddVal;
+ return DRDAConstants.DB2_SQLTYPE_LONG + nullAddVal;
case java.sql.Types.ARRAY:
case java.sql.Types.DISTINCT:
case java.sql.Types.NULL:
Added: db/derby/code/trunk/java/engine/org/apache/derby/iapi/reference/DRDAConstants.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/iapi/reference/DRDAConstants.java?rev=358163&view=auto
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/reference/DRDAConstants.java (added)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/reference/DRDAConstants.java Tue Dec 20 16:53:42 2005
@@ -0,0 +1,215 @@
+/*
+
+ Derby - Class org.apache.derby.iapi.reference.DRDAConstants
+
+ Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+/**
+ * <p>
+ * Machinery shared across Derby DRDA clients and server.
+ * </p>
+ * @author Rick
+ */
+
+package org.apache.derby.iapi.reference;
+
+public interface DRDAConstants
+{
+ /////////////////////////////////////////////////////////////
+ //
+ // CONSTANTS
+ //
+ /////////////////////////////////////////////////////////////
+
+ //
+ // Derby Product Identifiers as defined by the Open Group.
+ // See http://www.opengroup.org/dbiop/prodid.htm for the
+ // list of legal DRDA Product Identifiers.
+ //
+ public static final String DERBY_DRDA_SERVER_ID = "CSS";
+ public static final String DERBY_DRDA_CLIENT_ID = "DNC";
+
+ ///////////////////////
+ //
+ // DRDA Type constants.
+ //
+ ///////////////////////
+
+ public static final int DRDA_TYPE_INTEGER = 0x02;
+ public static final int DRDA_TYPE_NINTEGER = 0x03;
+ public static final int DRDA_TYPE_SMALL = 0x04;
+ public static final int DRDA_TYPE_NSMALL = 0x05;
+ public static final int DRDA_TYPE_1BYTE_INT = 0x06;
+ public static final int DRDA_TYPE_N1BYTE_INT = 0x07;
+ public static final int DRDA_TYPE_FLOAT16 = 0x08;
+ public static final int DRDA_TYPE_NFLOAT16 = 0x09;
+ public static final int DRDA_TYPE_FLOAT8 = 0x0A;
+ public static final int DRDA_TYPE_NFLOAT8 = 0x0B;
+ public static final int DRDA_TYPE_FLOAT4 = 0x0C;
+ public static final int DRDA_TYPE_NFLOAT4 = 0x0D;
+ public static final int DRDA_TYPE_DECIMAL = 0x0E;
+ public static final int DRDA_TYPE_NDECIMAL = 0x0F;
+ public static final int DRDA_TYPE_ZDECIMAL = 0x10;
+ public static final int DRDA_TYPE_NZDECIMAL = 0x11;
+ public static final int DRDA_TYPE_NUMERIC_CHAR = 0x12;
+ public static final int DRDA_TYPE_NNUMERIC_CHAR = 0x13;
+ public static final int DRDA_TYPE_RSET_LOC = 0x14;
+ public static final int DRDA_TYPE_NRSET_LOC = 0x15;
+ public static final int DRDA_TYPE_INTEGER8 = 0x16;
+ public static final int DRDA_TYPE_NINTEGER8 = 0x17;
+ public static final int DRDA_TYPE_LOBLOC = 0x18;
+ public static final int DRDA_TYPE_NLOBLOC = 0x19;
+ public static final int DRDA_TYPE_CLOBLOC = 0x1A;
+ public static final int DRDA_TYPE_NCLOBLOC = 0x1B;
+ public static final int DRDA_TYPE_DBCSCLOBLOC = 0x1C;
+ public static final int DRDA_TYPE_NDBCSCLOBLOC = 0x1D;
+ public static final int DRDA_TYPE_ROWID = 0x1E;
+ public static final int DRDA_TYPE_NROWID = 0x1F;
+ public static final int DRDA_TYPE_DATE = 0x20;
+ public static final int DRDA_TYPE_NDATE = 0x21;
+ public static final int DRDA_TYPE_TIME = 0x22;
+ public static final int DRDA_TYPE_NTIME = 0x23;
+ public static final int DRDA_TYPE_TIMESTAMP = 0x24;
+ public static final int DRDA_TYPE_NTIMESTAMP = 0x25;
+ public static final int DRDA_TYPE_FIXBYTE = 0x26;
+ public static final int DRDA_TYPE_NFIXBYTE = 0x27;
+ public static final int DRDA_TYPE_VARBYTE = 0x28;
+ public static final int DRDA_TYPE_NVARBYTE = 0x29;
+ public static final int DRDA_TYPE_LONGVARBYTE = 0x2A;
+ public static final int DRDA_TYPE_NLONGVARBYTE = 0x2B;
+ public static final int DRDA_TYPE_NTERMBYTE = 0x2C;
+ public static final int DRDA_TYPE_NNTERMBYTE = 0x2D;
+ public static final int DRDA_TYPE_CSTR = 0x2E;
+ public static final int DRDA_TYPE_NCSTR = 0x2F;
+ public static final int DRDA_TYPE_CHAR = 0x30;
+ public static final int DRDA_TYPE_NCHAR = 0x31;
+ public static final int DRDA_TYPE_VARCHAR = 0x32;
+ public static final int DRDA_TYPE_NVARCHAR = 0x33;
+ public static final int DRDA_TYPE_LONG = 0x34;
+ public static final int DRDA_TYPE_NLONG = 0x35;
+ public static final int DRDA_TYPE_GRAPHIC = 0x36;
+ public static final int DRDA_TYPE_NGRAPHIC = 0x37;
+ public static final int DRDA_TYPE_VARGRAPH = 0x38;
+ public static final int DRDA_TYPE_NVARGRAPH = 0x39;
+ public static final int DRDA_TYPE_LONGRAPH = 0x3A;
+ public static final int DRDA_TYPE_NLONGRAPH = 0x3B;
+ public static final int DRDA_TYPE_MIX = 0x3C;
+ public static final int DRDA_TYPE_NMIX = 0x3D;
+ public static final int DRDA_TYPE_VARMIX = 0x3E;
+ public static final int DRDA_TYPE_NVARMIX = 0x3F;
+ public static final int DRDA_TYPE_LONGMIX = 0x40;
+ public static final int DRDA_TYPE_NLONGMIX = 0x41;
+ public static final int DRDA_TYPE_CSTRMIX = 0x42;
+ public static final int DRDA_TYPE_NCSTRMIX = 0x43;
+ public static final int DRDA_TYPE_PSCLBYTE = 0x44;
+ public static final int DRDA_TYPE_NPSCLBYTE = 0x45;
+ public static final int DRDA_TYPE_LSTR = 0x46;
+ public static final int DRDA_TYPE_NLSTR = 0x47;
+ public static final int DRDA_TYPE_LSTRMIX = 0x48;
+ public static final int DRDA_TYPE_NLSTRMIX = 0x49;
+ public static final int DRDA_TYPE_SDATALINK = 0x4C;
+ public static final int DRDA_TYPE_NSDATALINK = 0x4D;
+ public static final int DRDA_TYPE_MDATALINK = 0x4E;
+ public static final int DRDA_TYPE_NMDATALINK = 0x4F;
+
+ // --- Override LIDs 0x50 - 0xAF
+ public static final int DRDA_TYPE_LOBBYTES = 0xC8;
+ public static final int DRDA_TYPE_NLOBBYTES = 0xC9;
+ public static final int DRDA_TYPE_LOBCSBCS = 0xCA;
+ public static final int DRDA_TYPE_NLOBCSBCS = 0xCB;
+ public static final int DRDA_TYPE_LOBCDBCS = 0xCC;
+ public static final int DRDA_TYPE_NLOBCDBCS = 0xCD;
+ public static final int DRDA_TYPE_LOBCMIXED = 0xCE;
+ public static final int DRDA_TYPE_NLOBCMIXED = 0xCF;
+
+ // Experimental types. These codes will change when the Open Group
+ // publishes an addendum to the DRDA spec covering these
+ // datatypes.
+
+ public static final int DRDA_TYPE_BOOLEAN = 0xD0;
+ public static final int DRDA_TYPE_NBOOLEAN = 0xD1;
+
+ ///////////////////////
+ //
+ // DB2 datatypes
+ //
+ ///////////////////////
+
+ public static final int DB2_SQLTYPE_DATE = 384; // DATE
+ public static final int DB2_SQLTYPE_NDATE = 385;
+ public static final int DB2_SQLTYPE_TIME = 388; // TIME
+ public static final int DB2_SQLTYPE_NTIME = 389;
+ public static final int DB2_SQLTYPE_TIMESTAMP = 392; // TIMESTAMP
+ public static final int DB2_SQLTYPE_NTIMESTAMP = 393;
+ public static final int DB2_SQLTYPE_DATALINK = 396; // DATALINK
+ public static final int DB2_SQLTYPE_NDATALINK = 397;
+
+ public static final int DB2_SQLTYPE_BLOB = 404; // BLOB
+ public static final int DB2_SQLTYPE_NBLOB = 405;
+ public static final int DB2_SQLTYPE_CLOB = 408; // CLOB
+ public static final int DB2_SQLTYPE_NCLOB = 409;
+ public static final int DB2_SQLTYPE_DBCLOB = 412; // DBCLOB
+ public static final int DB2_SQLTYPE_NDBCLOB = 413;
+
+ public static final int DB2_SQLTYPE_VARCHAR = 448; // VARCHAR(i) - varying length string
+ public static final int DB2_SQLTYPE_NVARCHAR = 449;
+ public static final int DB2_SQLTYPE_CHAR = 452; // CHAR(i) - fixed length
+ public static final int DB2_SQLTYPE_NCHAR = 453;
+ public static final int DB2_SQLTYPE_LONG = 456; // LONG VARCHAR - varying length string
+ public static final int DB2_SQLTYPE_NLONG = 457;
+ public static final int DB2_SQLTYPE_CSTR = 460; // SBCS - null terminated
+ public static final int DB2_SQLTYPE_NCSTR = 461;
+ public static final int DB2_SQLTYPE_VARGRAPH = 464; // VARGRAPHIC(i) - varying length
+ // graphic string (2 byte length)
+ public static final int DB2_SQLTYPE_NVARGRAPH = 465;
+ public static final int DB2_SQLTYPE_GRAPHIC = 468; // GRAPHIC(i) - fixed length graphic string */
+ public static final int DB2_SQLTYPE_NGRAPHIC = 469;
+ public static final int DB2_SQLTYPE_LONGRAPH = 472; // LONG VARGRAPHIC(i) - varying length graphic string */
+ public static final int DB2_SQLTYPE_NLONGRAPH = 473;
+ public static final int DB2_SQLTYPE_LSTR = 476; // varying length string for Pascal (1-byte length) */
+ public static final int DB2_SQLTYPE_NLSTR = 477;
+
+ public static final int DB2_SQLTYPE_FLOAT = 480; // FLOAT - 4 or 8 byte floating point
+ public static final int DB2_SQLTYPE_NFLOAT = 481;
+ public static final int DB2_SQLTYPE_DECIMAL = 484; // DECIMAL (m,n)
+ public static final int DB2_SQLTYPE_NDECIMAL = 485;
+ public static final int DB2_SQLTYPE_ZONED = 488; // Zoned Decimal -> DECIMAL(m,n)
+ public static final int DB2_SQLTYPE_NZONED = 489;
+
+ public static final int DB2_SQLTYPE_BIGINT = 492; // BIGINT - 8-byte signed integer
+ public static final int DB2_SQLTYPE_NBIGINT = 493;
+ public static final int DB2_SQLTYPE_INTEGER = 496; // INTEGER
+ public static final int DB2_SQLTYPE_NINTEGER = 497;
+ public static final int DB2_SQLTYPE_SMALL = 500; // SMALLINT - 2-byte signed integer */
+ public static final int DB2_SQLTYPE_NSMALL = 501;
+
+ public static final int DB2_SQLTYPE_NUMERIC = 504; // NUMERIC -> DECIMAL (m,n)
+ public static final int DB2_SQLTYPE_NNUMERIC = 505;
+
+ public static final int DB2_SQLTYPE_ROWID = 904; // ROWID
+ public static final int DB2_SQLTYPE_NROWID = 905;
+ public static final int DB2_SQLTYPE_BLOB_LOCATOR = 960; // BLOB locator
+ public static final int DB2_SQLTYPE_NBLOB_LOCATOR = 961;
+ public static final int DB2_SQLTYPE_CLOB_LOCATOR = 964; // CLOB locator
+ public static final int DB2_SQLTYPE_NCLOB_LOCATOR = 965;
+ public static final int DB2_SQLTYPE_DBCLOB_LOCATOR = 968; // DBCLOB locator
+ public static final int DB2_SQLTYPE_NDBCLOB_LOCATOR = 969;
+
+ // extensions to the db2 datatypes
+ public static final int DB2_SQLTYPE_BOOLEAN = 1000; // BOOLEAN
+ public static final int DB2_SQLTYPE_NBOOLEAN = 1001;
+
+}
Propchange: db/derby/code/trunk/java/engine/org/apache/derby/iapi/reference/DRDAConstants.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Tue Dec 20 16:53:42 2005
@@ -3299,7 +3299,7 @@
ResultSetNode resultSetNode = null;
}
{
- <CALL> value = primaryExpression(true)
+ <CALL> value = primaryExpression()
{
if (! (value instanceof JavaToSQLValueNode) ||
! (((JavaToSQLValueNode) value).getJavaValueNode() instanceof MethodCallNode))
@@ -3367,10 +3367,8 @@
/*
* <A NAME="primaryExpression">primaryExpression</A>
*
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
-ValueNode primaryExpression(boolean inSelectClause) throws StandardException :
+ValueNode primaryExpression() throws StandardException :
{
ValueNode value = null;
}
@@ -3386,7 +3384,7 @@
return value;
}
|
- value = primaryExpressionXX(inSelectClause)
+ value = primaryExpressionXX()
{
return value;
}
@@ -3743,7 +3741,6 @@
typeDescriptor = datetimeType()
| <BOOLEAN>
{
- checkInternalFeature(TypeId.BOOLEAN_NAME);
typeDescriptor = new DataTypeDescriptor(TypeId.BOOLEAN_ID, true);
}
|
@@ -4927,7 +4924,7 @@
{
//true to additiveExpression ensures that for the derived columns, we will not allow boolean values inside (),
//eg (2 > 1) should be disallowed in the select clause
- columnExpression = additiveExpression(null, 0, true)
+ columnExpression = additiveExpression(null, 0)
[ columnName = asClause() ]
{
/*
@@ -4967,17 +4964,15 @@
/*
* <A NAME="valueExpression">valueExpression</A>
*
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-valueExpression(boolean inSelectClause) throws StandardException :
+valueExpression() throws StandardException :
{
ValueNode leftOperand;
}
{
- leftOperand = orExpression(null, inSelectClause)
- (<OR> leftOperand = orExpression(leftOperand, inSelectClause) ) *
+ leftOperand = orExpression(null)
+ (<OR> leftOperand = orExpression(leftOperand) ) *
{
return leftOperand;
@@ -4986,18 +4981,15 @@
/*
* <A NAME="orExpression">orExpression</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-orExpression(ValueNode farLeftOperand, boolean inSelectClause) throws StandardException :
+orExpression(ValueNode farLeftOperand) throws StandardException :
{
ValueNode leftOperand;
}
{
- leftOperand = andExpression(null, inSelectClause)
- (<AND> leftOperand = andExpression(leftOperand, inSelectClause)) *
+ leftOperand = andExpression(null)
+ (<AND> leftOperand = andExpression(leftOperand)) *
{
if (farLeftOperand == null)
{
@@ -5016,12 +5008,9 @@
/*
* <A NAME="andExpression">andExpression</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-andExpression(ValueNode farLeftOperand, boolean inSelectClause) throws StandardException :
+andExpression(ValueNode farLeftOperand) throws StandardException :
{
Token tok = null;
ValueNode test;
@@ -5029,7 +5018,7 @@
{
//LOOKAHEAD required to tell that NOT is not part of a class name
[ LOOKAHEAD({getToken(1).kind == NOT && !(getToken(2).kind == PERIOD ||
- getToken(2).kind == DOUBLE_COLON)}) tok = <NOT> ] test = isSearchCondition(inSelectClause)
+ getToken(2).kind == DOUBLE_COLON)}) tok = <NOT> ] test = isSearchCondition()
{
/* Put the NOT on top of test */
if (tok != null)
@@ -5054,12 +5043,9 @@
/*
* <A NAME="isSearchCondition">isSearchCondition</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-isSearchCondition(boolean inSelectClause) throws StandardException :
+isSearchCondition() throws StandardException :
{
ValueNode result;
ValueNode booleanPrimary;
@@ -5068,7 +5054,7 @@
Token truthValue = null;
}
{
- booleanPrimary = booleanPrimary(inSelectClause)
+ booleanPrimary = booleanPrimary()
[
isToken = <IS> [ notToken = <NOT> ] <NULL>
]
@@ -5097,18 +5083,15 @@
/*
* <A NAME="booleanPrimary">booleanPrimary</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-booleanPrimary(boolean inSelectClause) throws StandardException :
+booleanPrimary() throws StandardException :
{
ValueNode primary;
ValueNode searchCondition;
}
{
- primary = predicate(inSelectClause)
+ primary = predicate()
{
return primary;
}
@@ -5116,18 +5099,15 @@
/*
* <A NAME="predicate">predicate</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-predicate(boolean inSelectClause) throws StandardException :
+predicate() throws StandardException :
{
ValueNode value;
}
{
(
- value = additiveExpression(null, 0, inSelectClause) |
+ value = additiveExpression(null, 0) |
value = existsExpression()
)
(
@@ -5135,7 +5115,7 @@
// start with NOT, and what follows a predicate() can also start
// with NOT
LOOKAHEAD( { remainingPredicateFollows() } )
- value = remainingPredicate(value, inSelectClause)
+ value = remainingPredicate(value)
)*
{
return value;
@@ -5157,22 +5137,19 @@
/*
* <A NAME="remainingPredicates">remainingPredicates</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-remainingPredicate(ValueNode value, boolean inSelectClause) throws StandardException :
+remainingPredicate(ValueNode value) throws StandardException :
{
Token tok = null;
}
{
- value = remainingNonNegatablePredicate(value, inSelectClause)
+ value = remainingNonNegatablePredicate(value)
{
return value;
}
|
- [ tok = <NOT> ] value = remainingNegatablePredicate(value, inSelectClause)
+ [ tok = <NOT> ] value = remainingNegatablePredicate(value)
{
/* Put the NOT on top of the tree */
if (tok != null)
@@ -5189,12 +5166,9 @@
/*
* <A NAME="remainingNonNegatablePredicate">remainingNonNegatablePredicate</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-remainingNonNegatablePredicate(ValueNode leftOperand, boolean inSelectClause) throws StandardException :
+remainingNonNegatablePredicate(ValueNode leftOperand) throws StandardException :
{
int operator;
String javaClassName;
@@ -5219,7 +5193,7 @@
)
|
(
- leftOperand = additiveExpression(leftOperand, operator, inSelectClause)
+ leftOperand = additiveExpression(leftOperand, operator)
)
)
{
@@ -5229,12 +5203,9 @@
/*
* <A NAME="remainingNegatablePredicate">remainingNegatablePredicate</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-remainingNegatablePredicate(ValueNode leftOperand, boolean inSelectClause) throws StandardException :
+remainingNegatablePredicate(ValueNode leftOperand) throws StandardException :
{
ValueNode tree = null;
ValueNode likePattern;
@@ -5248,10 +5219,10 @@
return tree;
}
|
- <LIKE> likePattern = additiveExpression(null, 0, inSelectClause)
+ <LIKE> likePattern = additiveExpression(null, 0)
[
- <ESCAPE> escapeValue = additiveExpression(null, 0, inSelectClause) |
- <LEFT_BRACE> <ESCAPE> escapeValue = additiveExpression(null, 0, inSelectClause) <RIGHT_BRACE>
+ <ESCAPE> escapeValue = additiveExpression(null, 0) |
+ <LEFT_BRACE> <ESCAPE> escapeValue = additiveExpression(null, 0) <RIGHT_BRACE>
]
{
tree = (ValueNode) nodeFactory.getNode(
@@ -5264,8 +5235,8 @@
return tree;
}
|
- <BETWEEN> betweenLeft = additiveExpression(null, 0, inSelectClause) <AND>
- betweenRight = additiveExpression(null, 0, inSelectClause)
+ <BETWEEN> betweenLeft = additiveExpression(null, 0) <AND>
+ betweenRight = additiveExpression(null, 0)
{
ValueNodeList betweenList = (ValueNodeList) nodeFactory.getNode(
C_NodeTypes.VALUE_NODE_LIST,
@@ -5327,21 +5298,18 @@
/*
* <A NAME="additiveExpression">additiveExpression</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-additiveExpression(ValueNode farLeftOperand, int compOp, boolean inSelectClause) throws StandardException :
+additiveExpression(ValueNode farLeftOperand, int compOp) throws StandardException :
{
ValueNode leftOperand;
int operator;
int nodeType;
}
{
- leftOperand = multiplicativeExpression(null, 0, inSelectClause)
+ leftOperand = multiplicativeExpression(null, 0)
(operator = additiveOperator()
- leftOperand = multiplicativeExpression(leftOperand, operator, inSelectClause) )*
+ leftOperand = multiplicativeExpression(leftOperand, operator) )*
{
if (farLeftOperand == null)
return leftOperand;
@@ -5408,20 +5376,17 @@
/*
* <A NAME="multiplicativeExpression">multiplicativeExpression</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-multiplicativeExpression(ValueNode farLeftOperand, int additiveOperator, boolean inSelectClause) throws StandardException :
+multiplicativeExpression(ValueNode farLeftOperand, int additiveOperator) throws StandardException :
{
ValueNode leftOperand;
int multOp;
}
{
- leftOperand = unaryExpression(null, 0, inSelectClause)
+ leftOperand = unaryExpression(null, 0)
(multOp = multiplicativeOperator()
- leftOperand = unaryExpression(leftOperand, multOp, inSelectClause) )*
+ leftOperand = unaryExpression(leftOperand, multOp) )*
{
if (farLeftOperand == null)
return leftOperand;
@@ -5477,12 +5442,9 @@
/*
* <A NAME="unaryExpression">unaryExpression</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-unaryExpression(ValueNode farLeftOperand, int multiplicativeOperator, boolean inSelectClause) throws StandardException :
+unaryExpression(ValueNode farLeftOperand, int multiplicativeOperator) throws StandardException :
{
ValueNode value;
String sign = null;
@@ -5505,7 +5467,7 @@
} )
sign = sign()
]
- value = primaryExpression(inSelectClause)
+ value = primaryExpression()
{
if ("-".equals(sign))
{
@@ -5558,17 +5520,14 @@
/*
* <A NAME="primaryExpressionXX">primaryExpressionXX</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-primaryExpressionXX(boolean inSelectClause) throws StandardException :
+primaryExpressionXX() throws StandardException :
{
ValueNode value;
}
{
- value = primary(inSelectClause)
+ value = primary()
( value = nonStaticMethodCallOrFieldAccess(value)) *
{
return value;
@@ -5721,7 +5680,7 @@
ValueNode parameter;
}
{
- parameter = additiveExpression(null,0,false)
+ parameter = additiveExpression(null,0)
{
parameterList.addElement(parameter);
}
@@ -5734,12 +5693,9 @@
/*
* <A NAME="primary">primary</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-primary(boolean inSelectClause) throws StandardException :
+primary() throws StandardException :
{
String javaClassName;
ValueNode value;
@@ -5753,7 +5709,7 @@
return value;
}
|
- value = valueExpressionPrimary(inSelectClause)
+ value = valueExpressionPrimary()
{
return value;
}
@@ -5870,7 +5826,7 @@
}
|
/* Escaped function substring() */
- <SUBSTRING> <LEFT_PAREN> value = additiveExpression(null, 0, false) <COMMA> startPosition = additiveExpression(null, 0, false) [ <COMMA> length = additiveExpression(null, 0, false) ] <RIGHT_PAREN>
+ <SUBSTRING> <LEFT_PAREN> value = additiveExpression(null, 0) <COMMA> startPosition = additiveExpression(null, 0) [ <COMMA> length = additiveExpression(null, 0) ] <RIGHT_PAREN>
{
return getSubstringNode(value, startPosition, length, Boolean.FALSE);
}
@@ -5898,8 +5854,8 @@
/* CONCAT( string1, string2 )
* CONCAT is not a reserved word.
*/
- <CONCAT> <LEFT_PAREN> str1 = additiveExpression(null,0,false) <COMMA>
- str2 = additiveExpression(null,0,false) <RIGHT_PAREN>
+ <CONCAT> <LEFT_PAREN> str1 = additiveExpression(null,0) <COMMA>
+ str2 = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.CONCATENATION_OPERATOR_NODE,
@@ -5936,8 +5892,8 @@
}
{
<TIMESTAMPADD> <LEFT_PAREN> intervalType = jdbcIntervalType() <COMMA>
- count = additiveExpression(null,0,false) <COMMA>
- tstamp1 = additiveExpression(null,0,false) <RIGHT_PAREN>
+ count = additiveExpression(null,0) <COMMA>
+ tstamp1 = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode( C_NodeTypes.TIMESTAMP_ADD_FN_NODE,
tstamp1,
@@ -5949,8 +5905,8 @@
}
|
<TIMESTAMPDIFF> <LEFT_PAREN> intervalType = jdbcIntervalType() <COMMA>
- tstamp1 = additiveExpression(null,0,false) <COMMA>
- tstamp2 = additiveExpression(null,0,false) <RIGHT_PAREN>
+ tstamp1 = additiveExpression(null,0) <COMMA>
+ tstamp2 = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode( C_NodeTypes.TIMESTAMP_DIFF_FN_NODE,
tstamp2,
@@ -6040,7 +5996,7 @@
return value;
}
|
- <SQRT> <LEFT_PAREN> value = additiveExpression(null,0,false) <RIGHT_PAREN>
+ <SQRT> <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode)nodeFactory.getNode(
C_NodeTypes.SQRT_OPERATOR_NODE,
@@ -6096,7 +6052,7 @@
ValueNode expression;
}
{
- expression = additiveExpression(null,0,false)
+ expression = additiveExpression(null,0)
{
expressionList.addElement(expression);
}
@@ -6111,7 +6067,7 @@
ValueNode value;
}
{
- <LEFT_PAREN> value = additiveExpression(null,0,false) <RIGHT_PAREN>
+ <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode)nodeFactory.getNode(
C_NodeTypes.ABSOLUTE_OPERATOR_NODE,
@@ -6129,8 +6085,8 @@
ValueNode int2;
}
{
- <LEFT_PAREN> int1 = additiveExpression(null,0,false) <COMMA>
- int2 = additiveExpression(null,0,false) <RIGHT_PAREN>
+ <LEFT_PAREN> int1 = additiveExpression(null,0) <COMMA>
+ int2 = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode)nodeFactory.getNode(
C_NodeTypes.MOD_OPERATOR_NODE,
@@ -6172,12 +6128,12 @@
ValueNode length = null;
}
{
- <SUBSTR> <LEFT_PAREN> value = additiveExpression(null,0,false) <COMMA> startPosition = additiveExpression(null,0,false) [ <COMMA> length = additiveExpression(null,0,false) ] <RIGHT_PAREN>
+ <SUBSTR> <LEFT_PAREN> value = additiveExpression(null,0) <COMMA> startPosition = additiveExpression(null,0) [ <COMMA> length = additiveExpression(null,0) ] <RIGHT_PAREN>
{
return getSubstringNode( value, startPosition, length, Boolean.FALSE );
}
|
- ( upperTok = <UPPER> | lowerTok = <LOWER> ) <LEFT_PAREN> value = additiveExpression(null,0,false) <RIGHT_PAREN>
+ ( upperTok = <UPPER> | lowerTok = <LOWER> ) <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.SIMPLE_STRING_OPERATOR_NODE,
@@ -6186,7 +6142,7 @@
getContextManager());
}
|
- ( upperTok = <UCASE> | lowerTok = <LCASE> ) <LEFT_PAREN> value = additiveExpression(null,0,false) <RIGHT_PAREN>
+ ( upperTok = <UCASE> | lowerTok = <LCASE> ) <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.SIMPLE_STRING_OPERATOR_NODE,
@@ -6203,9 +6159,9 @@
/* LOCATE( string1, string2[, start] )
* LOCATE is a SQLJ reserved word.
*/
- <LOCATE> <LEFT_PAREN> str1 = additiveExpression(null,0,false) <COMMA>
- str2 = additiveExpression(null,0,false)
- [ <COMMA> value = additiveExpression(null,0,false) ]
+ <LOCATE> <LEFT_PAREN> str1 = additiveExpression(null,0) <COMMA>
+ str2 = additiveExpression(null,0)
+ [ <COMMA> value = additiveExpression(null,0) ]
<RIGHT_PAREN>
{
// if start is missing, start is equal to 1
@@ -6232,7 +6188,7 @@
Integer trimType;
}
{
- trimType = trimType() <LEFT_PAREN> source = additiveExpression(null,0,false) <RIGHT_PAREN>
+ trimType = trimType() <LEFT_PAREN> source = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.TRIM_OPERATOR_NODE,
@@ -6262,12 +6218,9 @@
/*
* <A NAME="valueExpressionPrimary">valueExpressionPrimary</A>
- *
- * @param inSelectClause will be true if this method got called while parsing the select or values clause
- * If in select or values clause, we do not want to allow boolean values.
*/
ValueNode
-valueExpressionPrimary(boolean inSelectClause) throws StandardException :
+valueExpressionPrimary() throws StandardException :
{
ValueNode value;
int tokKind;
@@ -6354,10 +6307,10 @@
** is supplied.
*/
// without the following check, select/values (c1>c2) will not be caught
- LOOKAHEAD({inSelectClause})
- value = additiveExpression(null,0, inSelectClause)
- | //following will happen if we are not coming here for select/values clause
- value = valueExpression(inSelectClause)
+ //LOOKAHEAD({inSelectClause})
+ //value = additiveExpression(null,0)
+ //|
+ value = valueExpression()
)
<RIGHT_PAREN>
{
@@ -6501,7 +6454,7 @@
return value;
}
|
- <LENGTH> <LEFT_PAREN> value = additiveExpression(null,0, false) <RIGHT_PAREN>
+ <LENGTH> <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
ContextManager localCM = getContextManager();
if( isJDBCEscape)
@@ -6549,7 +6502,7 @@
return value;
}
|
- dts = numericFunctionType() <LEFT_PAREN> operand = additiveExpression(null,0, false) <RIGHT_PAREN>
+ dts = numericFunctionType() <LEFT_PAREN> operand = additiveExpression(null,0) <RIGHT_PAREN>
{
value = (ValueNode) nodeFactory.getNode(
C_NodeTypes.CAST_NODE,
@@ -6560,7 +6513,7 @@
return value;
}
- | charType = charOrVarchar() <LEFT_PAREN> operand = additiveExpression(null,0, false) [ <COMMA> length = length() ] <RIGHT_PAREN>
+ | charType = charOrVarchar() <LEFT_PAREN> operand = additiveExpression(null,0) [ <COMMA> length = length() ] <RIGHT_PAREN>
{
// Always check db2 limits for this function. It's new
checkTypeLimits(charType,length);
@@ -6641,7 +6594,7 @@
boolean wsOption;
}
{
- value = additiveExpression(null,0,false) wsOption = xmlPreserveWhitespace() {
+ value = additiveExpression(null,0) wsOption = xmlPreserveWhitespace() {
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.XML_PARSE_OPERATOR_NODE,
value,
@@ -6704,7 +6657,7 @@
DataTypeDescriptor targetType;
}
{
- value = additiveExpression(null,0,false)
+ value = additiveExpression(null,0)
targetType = xmlSerializeTargetType()
{
return (ValueNode) nodeFactory.getNode(
@@ -6767,8 +6720,8 @@
ValueNode xmlValue;
}
{
- xpathExpr = additiveExpression(null,0,false)
- xmlPassingMechanism() xmlValue = additiveExpression(null, 0, false)
+ xpathExpr = additiveExpression(null,0)
+ xmlPassingMechanism() xmlValue = additiveExpression(null, 0)
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.XML_EXISTS_OPERATOR_NODE,
@@ -6844,7 +6797,7 @@
* NOTE: If you add a new rule here, you must add the appropriate
* LOOKAHEAD rule to miscBuiltins().
*/
- <TIME> <LEFT_PAREN> value = additiveExpression(null,0, false) <RIGHT_PAREN>
+ <TIME> <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.CAST_NODE,
@@ -6853,7 +6806,7 @@
getContextManager());
}
|
- <DATE> <LEFT_PAREN> value = additiveExpression(null,0, false) <RIGHT_PAREN>
+ <DATE> <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.UNARY_DATE_TIMESTAMP_OPERATOR_NODE,
@@ -6862,12 +6815,12 @@
getContextManager());
}
|
- <TIMESTAMP> <LEFT_PAREN> value = additiveExpression(null,0, false) timestampNode = timestampFunctionCompletion( value)
+ <TIMESTAMP> <LEFT_PAREN> value = additiveExpression(null,0) timestampNode = timestampFunctionCompletion( value)
{
return timestampNode;
}
|
- field = datetimeField() <LEFT_PAREN> value = additiveExpression(null,0, false) <RIGHT_PAREN>
+ field = datetimeField() <LEFT_PAREN> value = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.EXTRACT_OPERATOR_NODE,
@@ -6896,7 +6849,7 @@
getContextManager());
}
|
- <COMMA> timeValue = additiveExpression(null,0, false) <RIGHT_PAREN>
+ <COMMA> timeValue = additiveExpression(null,0) <RIGHT_PAREN>
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.TIMESTAMP_OPERATOR_NODE,
@@ -6924,6 +6877,11 @@
{
return tok;
}
+|
+ tok = <UNKNOWN>
+ {
+ return tok;
+ }
}
/*
@@ -7380,7 +7338,7 @@
ValueNode columnExpression;
}
{
- columnExpression = additiveExpression(null,0,true)
+ columnExpression = additiveExpression(null,0)
{
return (OrderByColumn) nodeFactory.getNode(
C_NodeTypes.ORDER_BY_COLUMN,
@@ -7509,7 +7467,7 @@
ValueNode valueNode;
}
{
- valueNode = additiveExpression(null,0, false)
+ valueNode = additiveExpression(null,0)
{
return valueNode;
}
@@ -7734,7 +7692,7 @@
ValueNode value;
}
{
- value = additiveExpression(null, 0, true)
+ value = additiveExpression(null, 0)
{
resultColumns.addResultColumn(
(ResultColumn) nodeFactory.getNode(
@@ -7883,7 +7841,7 @@
ValueNode valueNode;
}
{
- valueNode = additiveExpression(null, 0, false)
+ valueNode = additiveExpression(null, 0)
{
inList.addElement(valueNode);
}
@@ -8715,7 +8673,7 @@
}
{
/* valueExpression() was searchCondition() */
- <ON> joinClause = valueExpression(false)
+ <ON> joinClause = valueExpression()
{
return joinClause;
}
@@ -8867,7 +8825,7 @@
ValueNode value;
}
{
- [ distinct = setQuantifier() ] value = additiveExpression(null, 0, false)
+ [ distinct = setQuantifier() ] value = additiveExpression(null, 0)
{
return (ValueNode) nodeFactory.getNode(
C_NodeTypes.AGGREGATE_NODE,
@@ -8985,7 +8943,7 @@
ValueNode value;
}
{
- value = additiveExpression(null, 0, false)
+ value = additiveExpression(null, 0)
{
return value;
}
@@ -9023,7 +8981,7 @@
}
{
/* valueExpression() was searchCondition() */
- value = valueExpression(false)
+ value = valueExpression()
{
endToken = getToken(0);
@@ -9083,7 +9041,7 @@
}
{
/* valueExpression() was searchCondition() */
- <HAVING> value = valueExpression(false)
+ <HAVING> value = valueExpression()
{
return value;
}
@@ -10052,12 +10010,20 @@
|
tok = booleanLiteral()
{
- checkInternalFeature(tok.image);
- return (ValueNode) nodeFactory.getNode(
- C_NodeTypes.BOOLEAN_CONSTANT_NODE,
- StringUtil.SQLEqualsIgnoreCase(tok.image, "true") ?
- Boolean.TRUE : Boolean.FALSE,
+ if ( StringUtil.SQLEqualsIgnoreCase(tok.image, "unknown") )
+ {
+ return (ValueNode) nodeFactory.getNode(
+ C_NodeTypes.UNTYPED_NULL_CONSTANT_NODE,
getContextManager());
+ }
+ else
+ {
+ return (ValueNode) nodeFactory.getNode(
+ C_NodeTypes.BOOLEAN_CONSTANT_NODE,
+ StringUtil.SQLEqualsIgnoreCase(tok.image, "true") ?
+ Boolean.TRUE : Boolean.FALSE,
+ getContextManager());
+ }
}
/*
JDBC and ODBC do not support the interval type, so let's not do it
@@ -10356,7 +10322,7 @@
{
/* valueExpression() was searchCondition() */
<CHECK> beginToken =
- <LEFT_PAREN> value = valueExpression(false) endToken = <RIGHT_PAREN>
+ <LEFT_PAREN> value = valueExpression() endToken = <RIGHT_PAREN>
{
if (columnName != null)
{
@@ -10785,7 +10751,7 @@
return value;
}
|
- <NULLIF> <LEFT_PAREN> leftExpression = additiveExpression(null, 0, false) <COMMA> rightExpression = additiveExpression(null, 0, false) <RIGHT_PAREN>
+ <NULLIF> <LEFT_PAREN> leftExpression = additiveExpression(null, 0) <COMMA> rightExpression = additiveExpression(null, 0) <RIGHT_PAREN>
{
// "NULLIF(L, R)" is the same as "L=R ? untyped NULL : L"
// An impl assumption here is that Cloudscape can promote CHAR to any comparable datatypes such as numeric
@@ -10858,8 +10824,8 @@
ValueNode elseExpr;
}
{
- <WHEN> expr = orExpression(null, false)
- (<OR> expr = orExpression(expr, false) )*
+ <WHEN> expr = orExpression(null)
+ (<OR> expr = orExpression(expr) )*
<THEN> thenExpr = thenElseExpression()
elseExpr = caseExpression()
{
@@ -10896,7 +10862,7 @@
getContextManager()));
}
|
- expr = additiveExpression(null, 0, false)
+ expr = additiveExpression(null, 0)
{
return expr;
}
Modified: db/derby/code/trunk/java/testing/build.xml
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/build.xml?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/build.xml (original)
+++ db/derby/code/trunk/java/testing/build.xml Tue Dec 20 16:53:42 2005
@@ -45,6 +45,7 @@
<ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/util"/>
<ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/junitTests/compatibility"/>
<ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/junitTests/derbyNet"/>
+ <ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/junitTests/lang"/>
<ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/jdbcapi"/>
<ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/lang"/>
<ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/store"/>
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out Tue Dec 20 16:53:42 2005
@@ -407,43 +407,43 @@
getCrossReference('','badschema','LOUIE','','APP','REFTAB' ):
PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
getTypeInfo():
-TYPE_NAME[VARCHAR],DATA_TYPE[SMALLINT],PRECISION[INTEGER],LITERAL_PREFIX[VARCHAR],LITERAL_SUFFIX[VARCHAR],CREATE_PARAMS[VARCHAR],NULLABLE[INTEGER],CASE_SENSITIVE[SMALLINT],SEARCHABLE[INTEGER],UNSIGNED_ATTRIBUTE[SMALLINT],FIXED_PREC_SCALE[SMALLINT],AUTO_INCREMENT[SMALLINT],LOCAL_TYPE_NAME[VARCHAR],MINIMUM_SCALE[INTEGER],MAXIMUM_SCALE[INTEGER],SQL_DATA_TYPE[INTEGER],SQL_DATETIME_SUB[INTEGER],NUM_PREC_RADIX[INTEGER]
-BIGINT,-5,19,null,null,null,1,0,2,0,0,1,BIGINT,0,0,null,null,10
-LONG VARCHAR FOR BIT DATA,-4,32700,X',',null,1,0,2,1,0,0,LONG VARCHAR FOR BIT DATA,null,null,null,null,null
-VARCHAR () FOR BIT DATA,-3,32762,X',',length,1,0,2,1,0,0,VARCHAR () FOR BIT DATA,null,null,null,null,null
-CHAR () FOR BIT DATA,-2,254,X',',length,1,0,2,1,0,0,CHAR () FOR BIT DATA,null,null,null,null,null
-LONG VARCHAR,-1,32700,',',null,1,1,3,1,0,0,LONG VARCHAR,null,null,null,null,null
-LONG NVARCHAR,-1,32700,',',null,1,1,3,1,0,0,LONG NVARCHAR,null,null,null,null,null
-CHAR,1,254,',',length,1,1,3,1,0,0,CHAR,null,null,null,null,null
-NATIONAL CHAR,1,2147483647,',',length,1,1,3,1,0,0,NATIONAL CHAR,null,null,null,null,null
-NUMERIC,2,31,null,null,precision,scale,1,0,2,0,1,0,NUMERIC,0,32767,null,null,10
-DECIMAL,3,31,null,null,precision,scale,1,0,2,0,1,0,DECIMAL,0,32767,null,null,10
-INTEGER,4,10,null,null,null,1,0,2,0,0,1,INTEGER,0,0,null,null,10
-SMALLINT,5,5,null,null,null,1,0,2,0,0,1,SMALLINT,0,0,null,null,10
-FLOAT,6,52,null,null,precision,1,0,2,0,0,0,FLOAT,null,null,null,null,2
-REAL,7,23,null,null,null,1,0,2,0,0,0,REAL,null,null,null,null,2
-DOUBLE,8,52,null,null,null,1,0,2,0,0,0,DOUBLE,null,null,null,null,2
-VARCHAR,12,32672,',',length,1,1,3,1,0,0,VARCHAR,null,null,null,null,null
-NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,1,0,0,NATIONAL CHAR VARYING,null,null,null,null,null
-DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,null,null,10
-TIME,92,8,TIME',',null,1,0,2,1,0,0,TIME,0,0,null,null,10
-TIMESTAMP,93,26,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,6,null,null,10
-BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,null,null,null
-CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,null,null,null
+TYPE_NAME[VARCHAR],DATA_TYPE[SMALLINT],PRECISION[INTEGER],LITERAL_PREFIX[VARCHAR],LITERAL_SUFFIX[VARCHAR],CREATE_PARAMS[VARCHAR],NULLABLE[INTEGER],CASE_SENSITIVE[BOOLEAN],SEARCHABLE[INTEGER],UNSIGNED_ATTRIBUTE[BOOLEAN],FIXED_PREC_SCALE[BOOLEAN],AUTO_INCREMENT[BOOLEAN],LOCAL_TYPE_NAME[VARCHAR],MINIMUM_SCALE[INTEGER],MAXIMUM_SCALE[INTEGER],SQL_DATA_TYPE[INTEGER],SQL_DATETIME_SUB[INTEGER],NUM_PREC_RADIX[INTEGER]
+BIGINT,-5,19,null,null,null,1,false,2,false,false,true,BIGINT,0,0,null,null,10
+LONG VARCHAR FOR BIT DATA,-4,32700,X',',null,1,false,2,true,false,false,LONG VARCHAR FOR BIT DATA,null,null,null,null,null
+VARCHAR () FOR BIT DATA,-3,32762,X',',length,1,false,2,true,false,false,VARCHAR () FOR BIT DATA,null,null,null,null,null
+CHAR () FOR BIT DATA,-2,254,X',',length,1,false,2,true,false,false,CHAR () FOR BIT DATA,null,null,null,null,null
+LONG VARCHAR,-1,32700,',',null,1,true,3,true,false,false,LONG VARCHAR,null,null,null,null,null
+LONG NVARCHAR,-1,32700,',',null,1,true,3,true,false,false,LONG NVARCHAR,null,null,null,null,null
+CHAR,1,254,',',length,1,true,3,true,false,false,CHAR,null,null,null,null,null
+NATIONAL CHAR,1,2147483647,',',length,1,true,3,true,false,false,NATIONAL CHAR,null,null,null,null,null
+NUMERIC,2,31,null,null,precision,scale,1,false,2,false,true,false,NUMERIC,0,32767,null,null,10
+DECIMAL,3,31,null,null,precision,scale,1,false,2,false,true,false,DECIMAL,0,32767,null,null,10
+INTEGER,4,10,null,null,null,1,false,2,false,false,true,INTEGER,0,0,null,null,10
+SMALLINT,5,5,null,null,null,1,false,2,false,false,true,SMALLINT,0,0,null,null,10
+FLOAT,6,52,null,null,precision,1,false,2,false,false,false,FLOAT,null,null,null,null,2
+REAL,7,23,null,null,null,1,false,2,false,false,false,REAL,null,null,null,null,2
+DOUBLE,8,52,null,null,null,1,false,2,false,false,false,DOUBLE,null,null,null,null,2
+VARCHAR,12,32672,',',length,1,true,3,true,false,false,VARCHAR,null,null,null,null,null
+NATIONAL CHAR VARYING,12,2147483647,',',length,1,true,3,true,false,false,NATIONAL CHAR VARYING,null,null,null,null,null
+DATE,91,10,DATE',',null,1,false,2,true,false,false,DATE,0,0,null,null,10
+TIME,92,8,TIME',',null,1,false,2,true,false,false,TIME,0,0,null,null,10
+TIMESTAMP,93,26,TIMESTAMP',',null,1,false,2,true,false,false,TIMESTAMP,0,6,null,null,10
+BLOB,2004,2147483647,null,null,length,1,false,1,null,false,null,BLOB,null,null,null,null,null
+CLOB,2005,2147483647,',',length,1,true,1,null,false,null,CLOB,null,null,null,null,null
getIndexInfo():
-TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],NON_UNIQUE[SMALLINT],INDEX_QUALIFIER[VARCHAR],INDEX_NAME[VARCHAR],TYPE[SMALLINT],ORDINAL_POSITION[INTEGER],COLUMN_NAME[VARCHAR],ASC_OR_DESC[CHAR],CARDINALITY[INTEGER],PAGES[INTEGER],FILTER_CONDITION[VARCHAR]
-,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,1,REFERENCEID,A,null,null,null
-,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,2,COLUMNNAME,A,null,null,null
+TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],NON_UNIQUE[BOOLEAN],INDEX_QUALIFIER[VARCHAR],INDEX_NAME[VARCHAR],TYPE[SMALLINT],ORDINAL_POSITION[INTEGER],COLUMN_NAME[VARCHAR],ASC_OR_DESC[CHAR],CARDINALITY[INTEGER],PAGES[INTEGER],FILTER_CONDITION[VARCHAR]
+,SYS,SYSCOLUMNS,false,,SYSCOLUMNS_INDEX1,3,1,REFERENCEID,A,null,null,null
+,SYS,SYSCOLUMNS,false,,SYSCOLUMNS_INDEX1,3,2,COLUMNNAME,A,null,null,null
getIndexInfo():
-TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],NON_UNIQUE[SMALLINT],INDEX_QUALIFIER[VARCHAR],INDEX_NAME[VARCHAR],TYPE[SMALLINT],ORDINAL_POSITION[INTEGER],COLUMN_NAME[VARCHAR],ASC_OR_DESC[CHAR],CARDINALITY[INTEGER],PAGES[INTEGER],FILTER_CONDITION[VARCHAR]
-,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,1,REFERENCEID,A,null,null,null
-,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,2,COLUMNNAME,A,null,null,null
-,SYS,SYSCOLUMNS,1,,SYSCOLUMNS_INDEX2,3,1,COLUMNDEFAULTID,A,null,null,null
+TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],NON_UNIQUE[BOOLEAN],INDEX_QUALIFIER[VARCHAR],INDEX_NAME[VARCHAR],TYPE[SMALLINT],ORDINAL_POSITION[INTEGER],COLUMN_NAME[VARCHAR],ASC_OR_DESC[CHAR],CARDINALITY[INTEGER],PAGES[INTEGER],FILTER_CONDITION[VARCHAR]
+,SYS,SYSCOLUMNS,false,,SYSCOLUMNS_INDEX1,3,1,REFERENCEID,A,null,null,null
+,SYS,SYSCOLUMNS,false,,SYSCOLUMNS_INDEX1,3,2,COLUMNNAME,A,null,null,null
+,SYS,SYSCOLUMNS,true,,SYSCOLUMNS_INDEX2,3,1,COLUMNDEFAULTID,A,null,null,null
getIndexInfo():
-TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],NON_UNIQUE[SMALLINT],INDEX_QUALIFIER[VARCHAR],INDEX_NAME[VARCHAR],TYPE[SMALLINT],ORDINAL_POSITION[INTEGER],COLUMN_NAME[VARCHAR],ASC_OR_DESC[CHAR],CARDINALITY[INTEGER],PAGES[INTEGER],FILTER_CONDITION[VARCHAR]
-,SYS,SYSTABLES,0,,SYSTABLES_INDEX1,3,1,TABLENAME,A,null,null,null
-,SYS,SYSTABLES,0,,SYSTABLES_INDEX1,3,2,SCHEMAID,A,null,null,null
-,SYS,SYSTABLES,0,,SYSTABLES_INDEX2,3,1,TABLEID,A,null,null,null
+TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],NON_UNIQUE[BOOLEAN],INDEX_QUALIFIER[VARCHAR],INDEX_NAME[VARCHAR],TYPE[SMALLINT],ORDINAL_POSITION[INTEGER],COLUMN_NAME[VARCHAR],ASC_OR_DESC[CHAR],CARDINALITY[INTEGER],PAGES[INTEGER],FILTER_CONDITION[VARCHAR]
+,SYS,SYSTABLES,false,,SYSTABLES_INDEX1,3,1,TABLENAME,A,null,null,null
+,SYS,SYSTABLES,false,,SYSTABLES_INDEX1,3,2,SCHEMAID,A,null,null,null
+,SYS,SYSTABLES,false,,SYSTABLES_INDEX2,3,1,TABLEID,A,null,null,null
getColumns('SYSTABLES'):
TABLE_CAT[VARCHAR],TABLE_SCHEM[VARCHAR],TABLE_NAME[VARCHAR],COLUMN_NAME[VARCHAR],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],COLUMN_SIZE[INTEGER],BUFFER_LENGTH[INTEGER],DECIMAL_DIGITS[INTEGER],NUM_PREC_RADIX[INTEGER],NULLABLE[INTEGER],REMARKS[VARCHAR],COLUMN_DEF[VARCHAR],SQL_DATA_TYPE[INTEGER],SQL_DATETIME_SUB[INTEGER],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR]
,SYS,SYSTABLES,TABLEID,1,CHAR,36,null,null,null,0,,null,null,null,72,1,NO
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out Tue Dec 20 16:53:42 2005
@@ -266,62 +266,62 @@
from sys.systables t, sys.sysconglomerates c
where t.TABLEID=c.TABLEID
order by TABLENAME, ISINDEX;
-TABLENAME |ISIND&
+TABLENAME |ISIN&
-----
-SYSALIASES |0
-SYSALIASES |1
-SYSALIASES |1
-SYSALIASES |1
-SYSCHECKS |0
-SYSCHECKS |1
-SYSCOLPERMS |0
-SYSCOLPERMS |1
-SYSCOLUMNS |0
-SYSCOLUMNS |1
-SYSCOLUMNS |1
-SYSCONGLOMERATES |0
-SYSCONGLOMERATES |1
-SYSCONGLOMERATES |1
-SYSCONGLOMERATES |1
-SYSCONSTRAINTS |0
-SYSCONSTRAINTS |1
-SYSCONSTRAINTS |1
-SYSCONSTRAINTS |1
-SYSDEPENDS |0
-SYSDEPENDS |1
-SYSDEPENDS |1
-SYSDUMMY1 |0
-SYSFILES |0
-SYSFILES |1
-SYSFILES |1
-SYSFOREIGNKEYS |0
-SYSFOREIGNKEYS |1
-SYSFOREIGNKEYS |1
-SYSKEYS |0
-SYSKEYS |1
-SYSREQUIREDPERM |0
-SYSREQUIREDPERM |1
-SYSROUTINEPERMS |0
-SYSROUTINEPERMS |1
-SYSSCHEMAS |0
-SYSSCHEMAS |1
-SYSSCHEMAS |1
-SYSSTATEMENTS |0
-SYSSTATEMENTS |1
-SYSSTATEMENTS |1
-SYSSTATISTICS |0
-SYSSTATISTICS |1
-SYSTABLEPERMS |0
-SYSTABLEPERMS |1
-SYSTABLES |0
-SYSTABLES |1
-SYSTABLES |1
-SYSTRIGGERS |0
-SYSTRIGGERS |1
-SYSTRIGGERS |1
-SYSTRIGGERS |1
-SYSVIEWS |0
-SYSVIEWS |1
+SYSALIASES |false
+SYSALIASES |true
+SYSALIASES |true
+SYSALIASES |true
+SYSCHECKS |false
+SYSCHECKS |true
+SYSCOLPERMS |false
+SYSCOLPERMS |true
+SYSCOLUMNS |false
+SYSCOLUMNS |true
+SYSCOLUMNS |true
+SYSCONGLOMERATES |false
+SYSCONGLOMERATES |true
+SYSCONGLOMERATES |true
+SYSCONGLOMERATES |true
+SYSCONSTRAINTS |false
+SYSCONSTRAINTS |true
+SYSCONSTRAINTS |true
+SYSCONSTRAINTS |true
+SYSDEPENDS |false
+SYSDEPENDS |true
+SYSDEPENDS |true
+SYSDUMMY1 |false
+SYSFILES |false
+SYSFILES |true
+SYSFILES |true
+SYSFOREIGNKEYS |false
+SYSFOREIGNKEYS |true
+SYSFOREIGNKEYS |true
+SYSKEYS |false
+SYSKEYS |true
+SYSREQUIREDPERM |false
+SYSREQUIREDPERM |true
+SYSROUTINEPERMS |false
+SYSROUTINEPERMS |true
+SYSSCHEMAS |false
+SYSSCHEMAS |true
+SYSSCHEMAS |true
+SYSSTATEMENTS |false
+SYSSTATEMENTS |true
+SYSSTATEMENTS |true
+SYSSTATISTICS |false
+SYSSTATISTICS |true
+SYSTABLEPERMS |false
+SYSTABLEPERMS |true
+SYSTABLES |false
+SYSTABLES |true
+SYSTABLES |true
+SYSTRIGGERS |false
+SYSTRIGGERS |true
+SYSTRIGGERS |true
+SYSTRIGGERS |true
+SYSVIEWS |false
+SYSVIEWS |true
ij> create table t (i int, s smallint);
0 rows inserted/updated/deleted
ij> select TABLENAME, TABLETYPE from sys.systables;
@@ -483,63 +483,63 @@
from sys.systables t, sys.sysconglomerates c
where t.TABLEID=c.TABLEID
order by TABLENAME, ISINDEX;
-TABLENAME |ISIND&
+TABLENAME |ISIN&
-----
-SYSALIASES |0
-SYSALIASES |1
-SYSALIASES |1
-SYSALIASES |1
-SYSCHECKS |0
-SYSCHECKS |1
-SYSCOLPERMS |0
-SYSCOLPERMS |1
-SYSCOLUMNS |0
-SYSCOLUMNS |1
-SYSCOLUMNS |1
-SYSCONGLOMERATES |0
-SYSCONGLOMERATES |1
-SYSCONGLOMERATES |1
-SYSCONGLOMERATES |1
-SYSCONSTRAINTS |0
-SYSCONSTRAINTS |1
-SYSCONSTRAINTS |1
-SYSCONSTRAINTS |1
-SYSDEPENDS |0
-SYSDEPENDS |1
-SYSDEPENDS |1
-SYSDUMMY1 |0
-SYSFILES |0
-SYSFILES |1
-SYSFILES |1
-SYSFOREIGNKEYS |0
-SYSFOREIGNKEYS |1
-SYSFOREIGNKEYS |1
-SYSKEYS |0
-SYSKEYS |1
-SYSREQUIREDPERM |0
-SYSREQUIREDPERM |1
-SYSROUTINEPERMS |0
-SYSROUTINEPERMS |1
-SYSSCHEMAS |0
-SYSSCHEMAS |1
-SYSSCHEMAS |1
-SYSSTATEMENTS |0
-SYSSTATEMENTS |1
-SYSSTATEMENTS |1
-SYSSTATISTICS |0
-SYSSTATISTICS |1
-SYSTABLEPERMS |0
-SYSTABLEPERMS |1
-SYSTABLES |0
-SYSTABLES |1
-SYSTABLES |1
-SYSTRIGGERS |0
-SYSTRIGGERS |1
-SYSTRIGGERS |1
-SYSTRIGGERS |1
-SYSVIEWS |0
-SYSVIEWS |1
-T |0
+SYSALIASES |false
+SYSALIASES |true
+SYSALIASES |true
+SYSALIASES |true
+SYSCHECKS |false
+SYSCHECKS |true
+SYSCOLPERMS |false
+SYSCOLPERMS |true
+SYSCOLUMNS |false
+SYSCOLUMNS |true
+SYSCOLUMNS |true
+SYSCONGLOMERATES |false
+SYSCONGLOMERATES |true
+SYSCONGLOMERATES |true
+SYSCONGLOMERATES |true
+SYSCONSTRAINTS |false
+SYSCONSTRAINTS |true
+SYSCONSTRAINTS |true
+SYSCONSTRAINTS |true
+SYSDEPENDS |false
+SYSDEPENDS |true
+SYSDEPENDS |true
+SYSDUMMY1 |false
+SYSFILES |false
+SYSFILES |true
+SYSFILES |true
+SYSFOREIGNKEYS |false
+SYSFOREIGNKEYS |true
+SYSFOREIGNKEYS |true
+SYSKEYS |false
+SYSKEYS |true
+SYSREQUIREDPERM |false
+SYSREQUIREDPERM |true
+SYSROUTINEPERMS |false
+SYSROUTINEPERMS |true
+SYSSCHEMAS |false
+SYSSCHEMAS |true
+SYSSCHEMAS |true
+SYSSTATEMENTS |false
+SYSSTATEMENTS |true
+SYSSTATEMENTS |true
+SYSSTATISTICS |false
+SYSSTATISTICS |true
+SYSTABLEPERMS |false
+SYSTABLEPERMS |true
+SYSTABLES |false
+SYSTABLES |true
+SYSTABLES |true
+SYSTRIGGERS |false
+SYSTRIGGERS |true
+SYSTRIGGERS |true
+SYSTRIGGERS |true
+SYSVIEWS |false
+SYSVIEWS |true
+T |false
ij> -- > 30 char table and column names
create table t234567890123456789012345678901234567890
(c23456789012345678901234567890 int);
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregate.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregate.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregate.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/aggregate.out Tue Dec 20 16:53:42 2005
@@ -213,9 +213,15 @@
0
WARNING 01003: Null values were eliminated from the argument of a column function.
ij> -- binary list operator
--- beetle 5571 - transient boolean type not allowed in DB2
select (1 in (1,2)), count(c1) from t1 group by c1;
-ERROR 42X01: Syntax error: Encountered "in" at line 3, column 11.
+1 |2
+-----------------
+true |1
+true |1
+true |1
+true |1
+true |0
+WARNING 01003: Null values were eliminated from the argument of a column function.
ij> select count((1 in (1,2))) from t1 group by c1;
1
-----------
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/db2Compatibility.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/db2Compatibility.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/db2Compatibility.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/db2Compatibility.out Tue Dec 20 16:53:42 2005
@@ -134,10 +134,8 @@
ij> drop schema "sysok" restrict;
0 rows inserted/updated/deleted
ij> -- data types not supported
-create table NOTYPE(i int, b BOOLEAN);
-ERROR 42X01: Syntax error: BOOLEAN.
-ij> create table NOTYPE(i int, b TINYINT);
-ERROR 42X01: Syntax error: Encountered "" at line 1, column 30.
+create table NOTYPE(i int, b TINYINT);
+ERROR 42X01: Syntax error: Encountered "" at line 2, column 30.
ij> create table NOTYPE(i int, b java.lang.String);
ERROR 42X01: Syntax error: Encountered "" at line 1, column 30.
ij> create table NOTYPE(i int, b com.acme.Address);
@@ -406,10 +404,8 @@
0 rows inserted/updated/deleted
ij> -- INSTANCEOF in where clause of select, delete, update,
-- beetle 5224
-create table t1 (i int, s smallint, c10 char(10), vc30 varchar(30), b boolean);
-ERROR 42X01: Syntax error: BOOLEAN.
-ij> create table mm (x org.apache.derbyTesting.functionTests.util.ManyMethods);
-ERROR 42X01: Syntax error: Encountered "" at line 1, column 20.
+create table mm (x org.apache.derbyTesting.functionTests.util.ManyMethods);
+ERROR 42X01: Syntax error: Encountered "" at line 3, column 20.
ij> create table sc (x org.apache.derbyTesting.functionTests.util.SubClass);
ERROR 42X01: Syntax error: Encountered "" at line 1, column 20.
ij> select i from t1 where i instanceof java.lang.Integer;
@@ -456,9 +452,6 @@
ERROR 42X01: Syntax error: Encountered "bit" at line 3, column 29.
ij> create table testtype2(col1 bit varying(10));
ERROR 42X01: Syntax error: Encountered "bit" at line 1, column 29.
-ij> -- boolean datatype already disabled
-create table testtype3(col1 boolean);
-ERROR 42X01: Syntax error: BOOLEAN.
ij> create table testtype4(col1 LONG NVARCHAR);
ERROR 0A000: Feature not implemented: LONG NVARCHAR.
ij> create table testtype5(col1 LONG VARBINARY);
@@ -913,21 +906,6 @@
ij> -- (4) USING should be disabled in INNER JOIN of SELECT statement
SELECT * FROM t1 RIGHT OUTER JOIN t2 USING (col1);
ERROR 42X01: Syntax error: Encountered "USING" at line 2, column 38.
-ij> -- (5) TRUE and FALSE constants should be disabled in WHERE clause of SELECT statement
-SELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1 WHERE true;
-ERROR 42X01: Syntax error: true.
-ij> SELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1 WHERE false;
-ERROR 42X01: Syntax error: false.
-ij> -- (5) TRUE and FALSE constants should be disabled in WHERE clause of DELETE statement
-DELETE FROM t1 where true;
-ERROR 42X01: Syntax error: true.
-ij> DELETE FROM t1 where false;
-ERROR 42X01: Syntax error: false.
-ij> -- (5) TRUE and FALSE constants should be disabled in WHERE clause of DELETE statement
-UPDATE t2 SET col1 = NULL WHERE true;
-ERROR 42X01: Syntax error: true.
-ij> UPDATE t2 SET col1 = NULL WHERE false;
-ERROR 42X01: Syntax error: false.
ij> -- (6) AT ISOLATION clause should be disabled in SELECT statement
-- AT ISOLATION not supported in both Cloudscape and DB2 mode and that is why rather than getting feature not implemented, we will get syntax error
SELECT * FROM t1 AT ISOLATION READ UNCOMMITTED;
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/implicitConversions.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/implicitConversions.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/implicitConversions.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/implicitConversions.out Tue Dec 20 16:53:42 2005
@@ -2596,9 +2596,15 @@
ij> values 'a', 1.1;
ERROR 42X61: Types 'CHAR' and 'DECIMAL' are not UNION compatible.
ij> values true, 'a';
-ERROR 42X01: Syntax error: true.
+1
+-----
+true
+true
ij> values 'a', true;
-ERROR 42X01: Syntax error: true.
+1
+-----
+true
+true
ij> values date('1996-09-09'), 'a';
1
----------
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/logop.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/logop.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/logop.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/logop.out Tue Dec 20 16:53:42 2005
@@ -251,18 +251,25 @@
X
-----------
1
-ij> -- following NOTs in select clause won't work because it results in a transient boolean datatype
-select not ( (1 = 1) or (2 = 2) ) and (3 = 4) from s;
-ERROR 42X01: Syntax error: Encountered "not" at line 2, column 8.
+ij> select ( not ( (1 = 1) or (2 = 2) ) and (3 = 4) ) from s;
+1
+-----
+false
ij> --
-select not ( ( (1 = 1) or (2 = 2) ) and (3 = 4) ) from s;
-ERROR 42X01: Syntax error: Encountered "not" at line 2, column 8.
+select ( not ( ( (1 = 1) or (2 = 2) ) and (3 = 4) ) ) from s;
+1
+-----
+true
ij> --
-select (1 = 2) and not ( (3 = 3) or (4 = 4) ) from s;
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 11.
+select ( (1 = 2) and not ( (3 = 3) or (4 = 4) ) ) from s;
+1
+-----
+false
ij> --
-select not ( (1 = 2) and ( (3 = 3) or (4 = 4) ) ) from s;
-ERROR 42X01: Syntax error: Encountered "not" at line 2, column 8.
+select ( not ( (1 = 2) and ( (3 = 3) or (4 = 4) ) ) ) from s;
+1
+-----
+true
ij> -- Ands under ands under ands ...
select * from s where not ( ( ( ((1=1) and (1=1)) and ((1=1) and (1=1)) ) and
( ((1=1) and (1=1)) and ((1=1) and (1=1)) ) ) and
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/schemas.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/schemas.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/schemas.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/schemas.out Tue Dec 20 16:53:42 2005
@@ -717,12 +717,18 @@
I |S |C |VC
--------------------------------------------------------------------------------
ij> -- correlated subqueries
--- negative tests
--- exists disallowed in select clause
select (exists (select * from test.ttt
- where iii = (select 11 from test.tt where ii = i and ii <> 1)) ) from test.s;
-ERROR 42X01: Syntax error: Encountered "exists" at line 6, column 9.
-ij> -- multiple matches at parent level
+ where iii = (select 11 from test.tt where ii = i and ii <> 1)) )
+a
+from test.s
+order by a;
+A
+-----
+NULL
+NULL
+true
+ij> -- negative tests
+-- multiple matches at parent level
select * from test.s, test.t where exists (select i from test.tt);
ERROR 42X03: Column name 'I' is in more than one table in the FROM list.
ij> -- match is against base table, but not derived column list
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/subquery.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/subquery.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/subquery.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/subquery.out Tue Dec 20 16:53:42 2005
@@ -466,12 +466,24 @@
I |S |C |VC |B
-----------------------------------------------------------------------------------------------------
ij> -- select list
-select i in (select i from t) from s;
-ERROR 42X01: Syntax error: Encountered "in" at line 2, column 10.
-ij> select i in (select i from t where 1 = 0) from s;
-ERROR 42X01: Syntax error: Encountered "in" at line 1, column 10.
-ij> select (i in (select i from t where 1 = 0)) is null from s;
-ERROR 42X01: Syntax error: Encountered "in" at line 1, column 11.
+select ( i in (select i from t) ) a from s order by a;
+A
+-----
+false
+true
+true
+ij> select ( i in (select i from t where 1 = 0) ) a from s order by a;
+A
+-----
+false
+false
+false
+ij> select ( (i in (select i from t where 1 = 0)) is null ) a from s order by a;
+A
+-----
+false
+false
+false
ij> -- subquery under an or
select i from s where i = -1 or i in (select i from t);
I
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/valuesclause.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/valuesclause.out?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/valuesclause.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/valuesclause.out Tue Dec 20 16:53:42 2005
@@ -160,22 +160,34 @@
ij> remove v2;
ij> -- type precedence tests. tinyint not supported by DB2 Cloudscape
values (1 = 1.2);
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 11.
+1
+-----
+false
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (1.2 = 1);
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 13.
+1
+-----
+false
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (1 = cast(1 as bigint));
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 11.
+1
+-----
+true
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (1 = cast(1 as smallint));
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 11.
+1
+-----
+true
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (cast(1 as bigint) = 1);
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 27.
+1
+-----
+true
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (cast(1 as smallint) = 1);
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 29.
+1
+-----
+true
ij> -- inserts
create table insert_test1 (c1 int);
0 rows inserted/updated/deleted
@@ -421,10 +433,14 @@
ERROR 42X01: Syntax error: Encountered "=" at line 2, column 10.
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (nullif('abc','a') = 'abc');
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 27.
+1
+-----
+true
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
select (nullif('abc','a') = 'abc') from t1;
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 27.
+1
+-----
+true
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
select c11 = any (select c11 from t1) from t1;
ERROR 42X01: Syntax error: Encountered "=" at line 2, column 12.
@@ -454,16 +470,24 @@
ERROR 42X01: Syntax error: Encountered "<=" at line 2, column 10.
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (1>1);
-ERROR 42X01: Syntax error: Encountered ">" at line 2, column 10.
+1
+-----
+false
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
select (c1 < 2) from t1;
-ERROR 42X01: Syntax error: Encountered "<" at line 2, column 12.
+1
+-----
+true
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values (1 between 2 and 5);
-ERROR 42X01: Syntax error: Encountered "between" at line 2, column 11.
+1
+-----
+false
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
select (c1 between 1 and 3) from t1;
-ERROR 42X01: Syntax error: Encountered "between" at line 2, column 12.
+1
+-----
+true
ij> -- boolean expression LIKE disallowed in values and select clause
prepare ll1 as 'values ''asdf'' like ?';
ERROR 42X01: Syntax error: Encountered "like" at line 1, column 15.
@@ -512,7 +536,7 @@
ERROR 42X01: Syntax error: Encountered "is" at line 2, column 33.
ij> -- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
select c1, (c1=1? cast(null as int) : c1) is null from t1;
-ERROR 42X01: Syntax error: Encountered "=" at line 2, column 15.
+ERROR 42X01: Syntax error: Encountered "?" at line 2, column 17.
ij> -- try few tests in cloudscape mode for boolean expressions in values or select clause
-- this test runs in SPS mode too, hence adding a comment line before the sql, so we get correct column number in error message in both SPS and non-SPS mode
values new java.lang.String() = '';
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall?rev=358163&r1=358162&r2=358163&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall Tue Dec 20 16:53:42 2005
@@ -1,6 +1,7 @@
jdbcapi/metadata.java
jdbcapi/metadataMultiConn.java
jdbcapi/odbc_metadata.java
+junitTests/lang/LangSuite.java
lang/AIjdbc.java
lang/CharUTF8.java
lang/ConcurrentImplicitCreateSchema.java