📄 systriggersrowfactory.java
字号:
SanityManager.ASSERT(row.nColumns() == SYSTRIGGERS_COLUMN_COUNT, "Wrong number of columns for a SYSTRIGGERS row"); } // 1st column is TRIGGERID (UUID - char(36)) col = row.getColumn(1); uuidStr = col.getString(); uuid = getUUIDFactory().recreateUUID(uuidStr); // 2nd column is TRIGGERNAME (varchar(128)) col = row.getColumn(2); name = col.getString(); // 3rd column is SCHEMAID (UUID - char(36)) col = row.getColumn(3); uuidStr = col.getString(); suuid = getUUIDFactory().recreateUUID(uuidStr); // 4th column is CREATIONTIMESTAMP (TIMESTAMP) col = row.getColumn(4); createTime = (Timestamp) col.getObject(); // 5th column is EVENT (char(1)) col = row.getColumn(5); theChar = col.getString().charAt(0); switch (theChar) { case 'U': eventMask = TriggerDescriptor.TRIGGER_EVENT_UPDATE; break; case 'I': eventMask = TriggerDescriptor.TRIGGER_EVENT_INSERT; break; case 'D': eventMask = TriggerDescriptor.TRIGGER_EVENT_DELETE; break; default: if (SanityManager.DEBUG) { SanityManager.THROWASSERT("bad event mask: "+theChar); } } // 6th column is FIRINGTIME (char(1)) isBefore = getCharBoolean(row.getColumn(6), 'B', 'A'); // 7th column is TYPE (char(1)) isRow = getCharBoolean(row.getColumn(7), 'R', 'S'); // 8th column is STATE (char(1)) isEnabled = getCharBoolean(row.getColumn(8), 'E', 'D'); // 9th column is TABLEID (UUID - char(36)) col = row.getColumn(9); uuidStr = col.getString(); tuuid = getUUIDFactory().recreateUUID(uuidStr); // 10th column is WHENSTMTID (UUID - char(36)) col = row.getColumn(10); uuidStr = col.getString(); if (uuidStr != null) whenSPSID = getUUIDFactory().recreateUUID(uuidStr); // 11th column is ACTIONSTMTID (UUID - char(36)) col = row.getColumn(11); uuidStr = col.getString(); if (uuidStr != null) actionSPSID = getUUIDFactory().recreateUUID(uuidStr); // 12th column is REFERENCEDCOLUMNS user type org.apache.derby.catalog.ReferencedColumns col = row.getColumn(12); rcd = (ReferencedColumns) col.getObject(); // 13th column is TRIGGERDEFINITION (longvarhar) col = row.getColumn(13); triggerDefinition = col.getString(); // 14th column is REFERENCINGOLD (boolean) col = row.getColumn(14); referencingOld = col.getBoolean(); // 15th column is REFERENCINGNEW (boolean) col = row.getColumn(15); referencingNew = col.getBoolean(); // 16th column is REFERENCINGNAME (varchar(128)) col = row.getColumn(16); oldReferencingName = col.getString(); // 17th column is REFERENCINGNAME (varchar(128)) col = row.getColumn(17); newReferencingName = col.getString(); descriptor = new TriggerDescriptor( dd, dd.getSchemaDescriptor(suuid, null), uuid, name, eventMask, isBefore, isRow, isEnabled, dd.getTableDescriptor(tuuid), whenSPSID, actionSPSID, createTime, (rcd == null) ? (int[])null : rcd.getReferencedColumnPositions(), triggerDefinition, referencingOld, referencingNew, oldReferencingName, newReferencingName ); return descriptor; } /** * Builds a list of columns suitable for creating this Catalog. * The last column, the serialized statement, is not added * to the column list. This is done deliberately to make it * a 'hidden' column -- one that is not visible to customers, * but is visible to the system. * * * @return array of SystemColumn suitable for making this catalog. */ public SystemColumn[] buildColumnList() { SystemColumn[] columnList = new SystemColumn[SYSTRIGGERS_COLUMN_COUNT]; // describe columns columnList[SYSTRIGGERS_TRIGGERID-1] = new SystemColumnImpl( convertIdCase( "TRIGGERID"), // name SYSTRIGGERS_TRIGGERID, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[SYSTRIGGERS_TRIGGERNAME-1] = new SystemColumnImpl( // SQL IDENTIFIER convertIdCase( "TRIGGERNAME"), // column name SYSTRIGGERS_TRIGGERNAME, // column number false // nullability ); columnList[SYSTRIGGERS_SCHEMAID-1] = new SystemColumnImpl( convertIdCase( "SCHEMAID"), // name SYSTRIGGERS_SCHEMAID, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[SYSTRIGGERS_CREATIONTIMESTAMP-1] = new SystemColumnImpl( convertIdCase( "CREATIONTIMESTAMP"), // name SYSTRIGGERS_CREATIONTIMESTAMP, // column number 0, // precision 0, // scale false, // nullability "TIMESTAMP", // dataType true, // built-in type TypeId.TIMESTAMP_MAXWIDTH // maxLength ); columnList[SYSTRIGGERS_EVENT-1] = new SystemColumnImpl( convertIdCase( "EVENT"), // name SYSTRIGGERS_EVENT, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 1 // maxLength ); columnList[SYSTRIGGERS_FIRINGTIME-1] = new SystemColumnImpl( convertIdCase( "FIRINGTIME"), // name SYSTRIGGERS_FIRINGTIME, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 1 // maxLength ); columnList[SYSTRIGGERS_TYPE-1] = new SystemColumnImpl( convertIdCase( "TYPE"), // name SYSTRIGGERS_TYPE, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 1 // maxLength ); columnList[SYSTRIGGERS_STATE-1] = new SystemColumnImpl( convertIdCase( "STATE"), // name SYSTRIGGERS_STATE,// column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 1 // maxLength ); columnList[SYSTRIGGERS_TABLEID-1] = new SystemColumnImpl( convertIdCase( "TABLEID"), // name SYSTRIGGERS_TABLEID, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[SYSTRIGGERS_WHENSTMTID-1] = new SystemColumnImpl( convertIdCase( "WHENSTMTID"), // name SYSTRIGGERS_WHENSTMTID, // column number 0, // precision 0, // scale true, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[SYSTRIGGERS_ACTIONSTMTID-1] = new SystemColumnImpl( convertIdCase( "ACTIONSTMTID"), // name SYSTRIGGERS_ACTIONSTMTID, // column number 0, // precision 0, // scale true, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[SYSTRIGGERS_REFERENCEDCOLUMNS-1] = new SystemColumnImpl( convertIdCase( "REFERENCEDCOLUMNS"), // name SYSTRIGGERS_REFERENCEDCOLUMNS, // column number 0, // precision 0, // scale true, // nullability "org.apache.derby.catalog.ReferencedColumns", //datatype false, // built-in type DataTypeDescriptor.MAXIMUM_WIDTH_UNKNOWN // maxLength ); columnList[SYSTRIGGERS_TRIGGERDEFINITION-1] = new SystemColumnImpl( convertIdCase( "TRIGGERDEFINITION"), // name SYSTRIGGERS_TRIGGERDEFINITION, // column number 0, // precision 0, // scale true, // nullability "LONG VARCHAR", // dataType true, // built-in type Integer.MAX_VALUE // maxLength ); columnList[SYSTRIGGERS_REFERENCINGOLD-1] = new SystemColumnImpl( convertIdCase( "REFERENCINGOLD"), // name SYSTRIGGERS_REFERENCINGOLD,// column number 0, // precision 0, // scale true, // nullability "BOOLEAN", // dataType true, // built-in type 1 // maxLength ); columnList[SYSTRIGGERS_REFERENCINGNEW-1] = new SystemColumnImpl( convertIdCase( "REFERENCINGNEW"), // name SYSTRIGGERS_REFERENCINGNEW,// column number 0, // precision 0, // scale true, // nullability "BOOLEAN", // dataType true, // built-in type 1 // maxLength ); columnList[SYSTRIGGERS_OLDREFERENCINGNAME-1] = new SystemColumnImpl( // SQL IDENTIFIER convertIdCase( "OLDREFERENCINGNAME"), // column name SYSTRIGGERS_OLDREFERENCINGNAME, // column number true // nullability ); columnList[SYSTRIGGERS_NEWREFERENCINGNAME-1] = new SystemColumnImpl( // SQL IDENTIFIER convertIdCase( "NEWREFERENCINGNAME"), // column name SYSTRIGGERS_NEWREFERENCINGNAME, // column number true // nullability ); return columnList; } public int heapColumnCount() { return SYSTRIGGERS_COLUMN_COUNT; } // a little helper private boolean getCharBoolean(DataValueDescriptor col, char trueValue, char falseValue) throws StandardException { char theChar = col.getString().charAt(0); if (theChar == trueValue) { return true; } else if (theChar == falseValue) { return false; } else { if (SanityManager.DEBUG) SanityManager.THROWASSERT("bad char value "+theChar); return true; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -