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 bp...@apache.org on 2006/10/15 17:35:30 UTC
svn commit: r464215 [1/3] - in /db/derby/code/trunk/java:
engine/org/apache/derby/iapi/sql/dictionary/
engine/org/apache/derby/impl/sql/catalog/
engine/org/apache/derby/impl/sql/execute/
testing/org/apache/derbyTesting/functionTests/master/ testing/org...
Author: bpendleton
Date: Sun Oct 15 08:35:27 2006
New Revision: 464215
URL: http://svn.apache.org/viewvc?view=rev&rev=464215
Log:
DERBY-630: CREATE TRIGGER fails with null pointer exception
This patch was contributed by Yip Ng (yipng168@gmail.com)
The current implementation for CREATE TRIGGER needs to handle null compilation
schema. A compilation schema with null value indicates that the
trigger action statement text does not depend on the current schema. This means:
1. It is safe to compile this statement in any schema since there is no dependency with
the CURRENT SCHEMA. i.e.: All relevent fields are qualified with a specific schema.
2. The statement cache mechanism can utilize this piece of information to enable
better statement plan sharing across different schemas; thus, avoiding unnecessary
statement compilation.
So the proposal is:
a) Allow null compilation schema. The system catalog first needs to change the
compiliation schema id column of SYS.SYSSTATEMENTS and SYS.SYSVIEWS system
table's nullability to true. This would also require a soft upgrade for the
previous versions of Derby. This step will resolve the NPE problem of this jira.
b) Handle null compilation schema in statement preparation logic. This can be filed
as a separate jira as improvement. It may require some work on the SQL parser to
determine whether the compiled statement depends on the CURRENT SCHEMA or not, so
that the compilation schema can be properly set.
Added:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_3.out (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Upgrade_10_1_10_3.java (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Upgrade_10_1_10_3_sed.properties (with props)
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateTriggerConstantAction.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/syscat.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/triggerGeneral.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/upgrade.properties
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/upgrade.runall
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/triggerGeneral.sql
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTester.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/build.xml
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/copyfiles.ant
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java Sun Oct 15 08:35:27 2006
@@ -104,6 +104,9 @@
/** Derby 10.2 System Catalog version */
public static final int DD_VERSION_DERBY_10_2 = 140;
+ /** Derby 10.3 System Catalog version */
+ public static final int DD_VERSION_DERBY_10_3 = 150;
+
// general info
public static final String DATABASE_ID = "derby.databaseID";
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java Sun Oct 15 08:35:27 2006
@@ -148,6 +148,8 @@
return "10.1";
case DataDictionary.DD_VERSION_DERBY_10_2:
return "10.2";
+ case DataDictionary.DD_VERSION_DERBY_10_3:
+ return "10.3";
default:
return null;
}
@@ -282,6 +284,21 @@
}
*/
+ /*
+ * Derby soft upgrade code
+ */
+ if (lastSoftUpgradeVersion <= DataDictionary.DD_VERSION_DERBY_10_2)
+ {
+ if (fromMajorVersionNumber <= DataDictionary.DD_VERSION_DERBY_10_2)
+ {
+ modifySysTableNullability(tc,
+ DataDictionaryImpl.SYSSTATEMENTS_CATALOG_NUM);
+
+ modifySysTableNullability(tc,
+ DataDictionaryImpl.SYSVIEWS_CATALOG_NUM);
+ }
+ }
+
tc.setProperty(DataDictionary.SOFT_DATA_DICTIONARY_VERSION, this, true);
}
@@ -689,27 +706,50 @@
*
* Modifies the nullability of the system table corresponding
* to the received catalog number.
- * OLD Cloudscape 5.1 upgrade code
+ *
* @param tc TransactionController.
* @param catalogNum The catalog number corresponding
* to the table for which we will modify the nullability.
+ *
+ * OLD Cloudscape 5.1 upgrade code
* If this corresponds to SYSALIASES, then the nullability of
* the SYSALIASES.ALIASINFO column will be changed to true
* (Beetle 4430). If this corresponds to SYSSTATEMENTS,
* the nullability of the SYSSTATEMENTS.LASTCOMPILED
* column will be changed to true.
*
- * @exception StandardException
+ * Derby upgrade code
+ * If this corresponds to SYSSTATEMENTS, then the nullability of
+ * the SYSSTATEMENTS.COMPILATION_SCHEMAID column will
+ * be changed to true. If this corresponds to SYSVIEWS, the nullability
+ * of the SYSVIEWS.COMPILATION_SCHEMAID column will be changed to true.
+ *
+ * @exception StandardException Thrown on error
*/
-
- /* OLD Cloudscape 5.1 upgrade code. See applySafeChanges().
-
private void modifySysTableNullability(TransactionController tc, int catalogNum)
- throws StandardException
- {
-
- TabInfo ti = bootingDictionary.getNonCoreTIByNumber(catalogNum);
+ throws StandardException
+ {
+ TabInfoImpl ti = bootingDictionary.getNonCoreTIByNumber(catalogNum);
CatalogRowFactory rowFactory = ti.getCatalogRowFactory();
+
+ if (catalogNum == DataDictionaryImpl.SYSSTATEMENTS_CATALOG_NUM)
+ {
+ // SYSSTATEMENTS table ==> SYSSTATEMENTS_COMPILATION_SCHEMAID needs
+ // to be modified.
+ bootingDictionary.upgrade_setNullability(rowFactory,
+ SYSSTATEMENTSRowFactory.SYSSTATEMENTS_COMPILATION_SCHEMAID,
+ true, tc);
+ }
+ else if (catalogNum == DataDictionaryImpl.SYSVIEWS_CATALOG_NUM)
+ {
+ // SYSVIEWS table ==> SYSVIEWS_COMPILATION_SCHEMAID needs
+ // to be modified.
+ bootingDictionary.upgrade_setNullability(rowFactory,
+ SYSVIEWSRowFactory.SYSVIEWS_COMPILATION_SCHEMAID,
+ true, tc);
+ }
+
+ /* OLD Cloudscape 5.1 upgrade code. See applySafeChanges().
if (catalogNum == DataDictionaryImpl.SYSALIASES_CATALOG_NUM) {
// SYSALIASES table ==> ALIASINFO needs to be modified.
bootingDictionary.upgrade_setNullability(rowFactory,
@@ -720,8 +760,10 @@
bootingDictionary.upgrade_setNullability(rowFactory,
SYSSTATEMENTSRowFactory.SYSSTATEMENTS_LASTCOMPILED, true, tc);
}
+ */
+
}
-*/
+
/**
Check to see if a database has been upgraded to the required
level in order to use a language feature.
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java Sun Oct 15 08:35:27 2006
@@ -460,7 +460,7 @@
public void boot(boolean create, Properties startParams)
throws StandardException
{
- softwareVersion = new DD_Version(this, DataDictionary.DD_VERSION_DERBY_10_2);
+ softwareVersion = new DD_Version(this, DataDictionary.DD_VERSION_DERBY_10_3);
/* There is a bootstrapping problem here. We would like to use
* a language connection context to find the name of the system and default
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java Sun Oct 15 08:35:27 2006
@@ -187,7 +187,8 @@
typeStr = spsDescriptor.getTypeAsString();
initiallyCompilable = spsDescriptor.initiallyCompilable();
preparedStatement = spsDescriptor.getPreparedStatement(compileMe);
- compUuidStr = spsDescriptor.getCompSchemaId().toString();
+ compUuidStr = (spsDescriptor.getCompSchemaId() != null)?
+ spsDescriptor.getCompSchemaId().toString():null;
usingText = spsDescriptor.getUsingText();
}
@@ -263,7 +264,7 @@
String text;
String usingText;
UUID uuid;
- UUID compUuid;
+ UUID compUuid = null;
String uuidStr;
UUID suuid; // schema
String suuidStr; // schema
@@ -328,7 +329,8 @@
// 8th column is COMPILATIONSCHEMAID (UUID - char(36))
col = row.getColumn(8);
uuidStr = col.getString();
- compUuid = getUUIDFactory().recreateUUID(uuidStr);
+ if (uuidStr != null)
+ compUuid = getUUIDFactory().recreateUUID(uuidStr);
// 9th column is TEXT (LONG VARCHAR)
col = row.getColumn(9);
@@ -472,7 +474,7 @@
SYSSTATEMENTS_COMPILATION_SCHEMAID, // column number
0, // precision
0, // scale
- false, // nullability
+ true, // nullability
"CHAR", // dataType
true, // built-in type
36 // maxLength
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java Sun Oct 15 08:35:27 2006
@@ -319,7 +319,7 @@
SYSVIEWS_COMPILATION_SCHEMAID, // column number
0, // precision
0, // scale
- false, // nullability
+ true, // nullability
"CHAR", // dataType
true, // built-in type
36 // maxLength
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateTriggerConstantAction.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateTriggerConstantAction.java?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateTriggerConstantAction.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateTriggerConstantAction.java Sun Oct 15 08:35:27 2006
@@ -199,11 +199,35 @@
def = dd.getSchemaDescriptor(def.getDescriptorName(), tc,
false);
}
- spsCompSchemaId = def.getUUID();
- }
- if (SanityManager.DEBUG) {
- SanityManager.ASSERT(spsCompSchemaId != null,
- "spsCompSchemaId is null");
+
+ /*
+ ** It is possible for spsCompSchemaId to be null. For instance,
+ ** the current schema may not have been physically created yet but
+ ** it exists "virtually". In this case, its UUID will have the
+ ** value of null meaning that it is not persistent. e.g.:
+ **
+ ** CONNECT 'db;create=true' user 'ernie';
+ ** CREATE TABLE bert.t1 (i INT);
+ ** CREATE TRIGGER bert.tr1 AFTER INSERT ON bert.t1
+ ** FOR EACH STATEMENT MODE DB2SQL
+ ** SELECT * FROM SYS.SYSTABLES;
+ **
+ ** Note that in the above case, the trigger action statement have a
+ ** null compilation schema. A compilation schema with null value
+ ** indicates that the trigger action statement text does not have
+ ** any dependencies with the CURRENT SCHEMA. This means:
+ **
+ ** o It is safe to compile this statement in any schema since
+ ** there is no dependency with the CURRENT SCHEMA. i.e.: All
+ ** relevent identifiers are qualified with a specific schema.
+ **
+ ** o The statement cache mechanism can utilize this piece of
+ ** information to enable better statement plan sharing across
+ ** connections in different schemas; thus, avoiding unnecessary
+ ** statement compilation.
+ */
+ if (def != null)
+ spsCompSchemaId = def.getUUID();
}
String tabName;
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/syscat.out Sun Oct 15 08:35:27 2006
@@ -210,7 +210,7 @@
SYSSCHEMAS |AUTHORIZATIONID |3 |VARCHAR(128) NOT NULL
SYSSCHEMAS |SCHEMAID |1 |CHAR(36) NOT NULL
SYSSCHEMAS |SCHEMANAME |2 |VARCHAR(128) NOT NULL
-SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36) NOT NULL
+SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36)
SYSSTATEMENTS |LASTCOMPILED |7 |TIMESTAMP
SYSSTATEMENTS |SCHEMAID |3 |CHAR(36) NOT NULL
SYSSTATEMENTS |STMTID |1 |CHAR(36) NOT NULL
@@ -260,7 +260,7 @@
SYSTRIGGERS |TYPE |7 |CHAR(1) NOT NULL
SYSTRIGGERS |WHENSTMTID |10 |CHAR(36)
SYSVIEWS |CHECKOPTION |3 |CHAR(1) NOT NULL
-SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36) NOT NULL
+SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36)
SYSVIEWS |TABLEID |1 |CHAR(36) NOT NULL
SYSVIEWS |VIEWDEFINITION |2 |LONG VARCHAR NOT NULL
ij> select TABLENAME, ISINDEX
@@ -426,7 +426,7 @@
SYSSCHEMAS |AUTHORIZATIONID |3 |VARCHAR(128) NOT NULL
SYSSCHEMAS |SCHEMAID |1 |CHAR(36) NOT NULL
SYSSCHEMAS |SCHEMANAME |2 |VARCHAR(128) NOT NULL
-SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36) NOT NULL
+SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36)
SYSSTATEMENTS |LASTCOMPILED |7 |TIMESTAMP
SYSSTATEMENTS |SCHEMAID |3 |CHAR(36) NOT NULL
SYSSTATEMENTS |STMTID |1 |CHAR(36) NOT NULL
@@ -476,7 +476,7 @@
SYSTRIGGERS |TYPE |7 |CHAR(1) NOT NULL
SYSTRIGGERS |WHENSTMTID |10 |CHAR(36)
SYSVIEWS |CHECKOPTION |3 |CHAR(1) NOT NULL
-SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36) NOT NULL
+SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36)
SYSVIEWS |TABLEID |1 |CHAR(36) NOT NULL
SYSVIEWS |VIEWDEFINITION |2 |LONG VARCHAR NOT NULL
T |I |1 |INTEGER
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/syscat.out Sun Oct 15 08:35:27 2006
@@ -210,7 +210,7 @@
SYSSCHEMAS |AUTHORIZATIONID |3 |VARCHAR(128) NOT NULL
SYSSCHEMAS |SCHEMAID |1 |CHAR(36) NOT NULL
SYSSCHEMAS |SCHEMANAME |2 |VARCHAR(128) NOT NULL
-SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36) NOT NULL
+SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36)
SYSSTATEMENTS |LASTCOMPILED |7 |TIMESTAMP
SYSSTATEMENTS |SCHEMAID |3 |CHAR(36) NOT NULL
SYSSTATEMENTS |STMTID |1 |CHAR(36) NOT NULL
@@ -260,7 +260,7 @@
SYSTRIGGERS |TYPE |7 |CHAR(1) NOT NULL
SYSTRIGGERS |WHENSTMTID |10 |CHAR(36)
SYSVIEWS |CHECKOPTION |3 |CHAR(1) NOT NULL
-SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36) NOT NULL
+SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36)
SYSVIEWS |TABLEID |1 |CHAR(36) NOT NULL
SYSVIEWS |VIEWDEFINITION |2 |LONG VARCHAR NOT NULL
ij> select TABLENAME, ISINDEX
@@ -426,7 +426,7 @@
SYSSCHEMAS |AUTHORIZATIONID |3 |VARCHAR(128) NOT NULL
SYSSCHEMAS |SCHEMAID |1 |CHAR(36) NOT NULL
SYSSCHEMAS |SCHEMANAME |2 |VARCHAR(128) NOT NULL
-SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36) NOT NULL
+SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36)
SYSSTATEMENTS |LASTCOMPILED |7 |TIMESTAMP
SYSSTATEMENTS |SCHEMAID |3 |CHAR(36) NOT NULL
SYSSTATEMENTS |STMTID |1 |CHAR(36) NOT NULL
@@ -476,7 +476,7 @@
SYSTRIGGERS |TYPE |7 |CHAR(1) NOT NULL
SYSTRIGGERS |WHENSTMTID |10 |CHAR(36)
SYSVIEWS |CHECKOPTION |3 |CHAR(1) NOT NULL
-SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36) NOT NULL
+SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36)
SYSVIEWS |TABLEID |1 |CHAR(36) NOT NULL
SYSVIEWS |VIEWDEFINITION |2 |LONG VARCHAR NOT NULL
T |I |1 |INTEGER
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/syscat.out?view=diff&rev=464215&r1=464214&r2=464215
==============================================================================
--- 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 Sun Oct 15 08:35:27 2006
@@ -210,7 +210,7 @@
SYSSCHEMAS |AUTHORIZATIONID |3 |VARCHAR(128) NOT NULL
SYSSCHEMAS |SCHEMAID |1 |CHAR(36) NOT NULL
SYSSCHEMAS |SCHEMANAME |2 |VARCHAR(128) NOT NULL
-SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36) NOT NULL
+SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36)
SYSSTATEMENTS |LASTCOMPILED |7 |TIMESTAMP
SYSSTATEMENTS |SCHEMAID |3 |CHAR(36) NOT NULL
SYSSTATEMENTS |STMTID |1 |CHAR(36) NOT NULL
@@ -260,7 +260,7 @@
SYSTRIGGERS |TYPE |7 |CHAR(1) NOT NULL
SYSTRIGGERS |WHENSTMTID |10 |CHAR(36)
SYSVIEWS |CHECKOPTION |3 |CHAR(1) NOT NULL
-SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36) NOT NULL
+SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36)
SYSVIEWS |TABLEID |1 |CHAR(36) NOT NULL
SYSVIEWS |VIEWDEFINITION |2 |LONG VARCHAR NOT NULL
ij> select TABLENAME, ISINDEX
@@ -426,7 +426,7 @@
SYSSCHEMAS |AUTHORIZATIONID |3 |VARCHAR(128) NOT NULL
SYSSCHEMAS |SCHEMAID |1 |CHAR(36) NOT NULL
SYSSCHEMAS |SCHEMANAME |2 |VARCHAR(128) NOT NULL
-SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36) NOT NULL
+SYSSTATEMENTS |COMPILATIONSCHEMAID |8 |CHAR(36)
SYSSTATEMENTS |LASTCOMPILED |7 |TIMESTAMP
SYSSTATEMENTS |SCHEMAID |3 |CHAR(36) NOT NULL
SYSSTATEMENTS |STMTID |1 |CHAR(36) NOT NULL
@@ -476,7 +476,7 @@
SYSTRIGGERS |TYPE |7 |CHAR(1) NOT NULL
SYSTRIGGERS |WHENSTMTID |10 |CHAR(36)
SYSVIEWS |CHECKOPTION |3 |CHAR(1) NOT NULL
-SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36) NOT NULL
+SYSVIEWS |COMPILATIONSCHEMAID |4 |CHAR(36)
SYSVIEWS |TABLEID |1 |CHAR(36) NOT NULL
SYSVIEWS |VIEWDEFINITION |2 |LONG VARCHAR NOT NULL
T |I |1 |INTEGER