📄 sysaliasesrowfactory.java
字号:
switch( indexNumber ) { case SYSALIASES_INDEX1_ID: /* 1st column is SCHEMAID (char(36)) */ row.setColumn(1, getDataValueFactory().getCharDataValue((String) null)); /* 2nd column is ALIAS (varchar(128)) */ row.setColumn(2, getDataValueFactory().getVarcharDataValue((String) null)); /* 3rd column is NAMESPACE (char(1)) */ row.setColumn(3, getDataValueFactory().getCharDataValue((String) null)); break; case SYSALIASES_INDEX2_ID: /* 1st column is ALIASID (UUID - char(36)) */ row.setColumn(1, getDataValueFactory().getCharDataValue((String) null)); break; case SYSALIASES_INDEX3_ID: /* 1st column is SCHEMAID (char(36)) */ row.setColumn(1, getDataValueFactory().getCharDataValue((String) null)); /* 2nd column is SPECIFICNAME (varchar(128)) */ row.setColumn(2, getDataValueFactory().getVarcharDataValue((String) null)); break; } // end switch return row; } /////////////////////////////////////////////////////////////////////////// // // ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory // /////////////////////////////////////////////////////////////////////////// /** * Make a AliasDescriptor out of a SYSALIASES row * * @param row a SYSALIASES row * @param parentTupleDescriptor Null for this kind of descriptor. * @param dd dataDictionary * * @exception StandardException thrown on failure */ public TupleDescriptor buildDescriptor( ExecRow row, TupleDescriptor parentTupleDescriptor, DataDictionary dd ) throws StandardException { if (SanityManager.DEBUG) { SanityManager.ASSERT( row.nColumns() == SYSALIASES_COLUMN_COUNT, "Wrong number of columns for a SYSALIASES row"); } char cAliasType; char cNameSpace; DataValueDescriptor col; String aliasID; UUID aliasUUID; String aliasName; String javaClassName; String sAliasType; String sNameSpace; String typeStr; boolean systemAlias = false; AliasInfo aliasInfo = null; /* 1st column is ALIASID (UUID - char(36)) */ col = row.getColumn(SYSALIASES_ALIASID); aliasID = col.getString(); aliasUUID = getUUIDFactory().recreateUUID(aliasID); /* 2nd column is ALIAS (varchar(128)) */ col = row.getColumn(SYSALIASES_ALIAS); aliasName = col.getString(); /* 3rd column is SCHEMAID (UUID - char(36)) */ col = row.getColumn(SYSALIASES_SCHEMAID); UUID schemaUUID = col.isNull() ? null : getUUIDFactory().recreateUUID(col.getString()); /* 4th column is JAVACLASSNAME (longvarchar) */ col = row.getColumn(SYSALIASES_JAVACLASSNAME); javaClassName = col.getString(); /* 5th column is ALIASTYPE (char(1)) */ col = row.getColumn(SYSALIASES_ALIASTYPE); sAliasType = col.getString(); if (SanityManager.DEBUG) { SanityManager.ASSERT(sAliasType.length() == 1, "Fifth column (aliastype) type incorrect"); switch (sAliasType.charAt(0)) { case AliasInfo.ALIAS_TYPE_PROCEDURE_AS_CHAR: case AliasInfo.ALIAS_TYPE_FUNCTION_AS_CHAR: case AliasInfo.ALIAS_TYPE_SYNONYM_AS_CHAR: break; default: SanityManager.THROWASSERT("Invalid type value '" +sAliasType+ "' for alias"); } } cAliasType = sAliasType.charAt(0); /* 6th column is NAMESPACE (char(1)) */ col = row.getColumn(SYSALIASES_NAMESPACE); sNameSpace = col.getString(); if (SanityManager.DEBUG) { SanityManager.ASSERT(sNameSpace.length() == 1, "Sixth column (namespace) type incorrect"); switch (sNameSpace.charAt(0)) { case AliasInfo.ALIAS_NAME_SPACE_PROCEDURE_AS_CHAR: case AliasInfo.ALIAS_NAME_SPACE_FUNCTION_AS_CHAR: case AliasInfo.ALIAS_TYPE_SYNONYM_AS_CHAR: break; default: SanityManager.THROWASSERT("Invalid type value '" +sNameSpace+ "' for alias"); } } cNameSpace = sNameSpace.charAt(0); /* 7th column is SYSTEMALIAS (boolean) */ col = row.getColumn(SYSALIASES_SYSTEMALIAS); systemAlias = col.getBoolean(); /* 8th column is ALIASINFO (org.apache.derby.catalog.AliasInfo) */ col = row.getColumn(SYSALIASES_ALIASINFO); aliasInfo = (AliasInfo) col.getObject(); /* 9th column is specific name */ col = row.getColumn(SYSALIASES_SPECIFIC_NAME); String specificName = col.getString(); /* now build and return the descriptor */ return new AliasDescriptor(dd, aliasUUID, aliasName, schemaUUID, javaClassName, cAliasType, cNameSpace, systemAlias, aliasInfo, specificName); } /** * Builds a list of columns suitable for creating this Catalog. * * * @return array of SystemColumn suitable for making this catalog. */ public SystemColumn[] buildColumnList() { SystemColumn[] columnList = new SystemColumn[SYSALIASES_COLUMN_COUNT]; // describe columns columnList[0] = new SystemColumnImpl( convertIdCase( "ALIASID"), // column name 1, // column number 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[1] = new SystemColumnImpl( convertIdCase( "ALIAS"), // column name 2, // column number false // nullability ); columnList[2] = new SystemColumnImpl( convertIdCase( "SCHEMAID"), // column name 3, // column number 0, // precision 0, // scale true, // nullability "CHAR", // dataType true, // built-in type 36 // maxLength ); columnList[3] = new SystemColumnImpl( convertIdCase( "JAVACLASSNAME"), // column name 4, 0, // precision 0, // scale false, // nullability "LONG VARCHAR", // dataType true, // built-in type Integer.MAX_VALUE // maxLength ); columnList[4] = new SystemColumnImpl( convertIdCase( "ALIASTYPE"), // column name 5, 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 1 // maxLength ); columnList[5] = new SystemColumnImpl( convertIdCase( "NAMESPACE"), // column name 6, 0, // precision 0, // scale false, // nullability "CHAR", // dataType true, // built-in type 1 // maxLength ); columnList[6] = new SystemColumnImpl( convertIdCase( "SYSTEMALIAS"), // column name 7, 0, // precision 0, // scale false, // nullability "BOOLEAN", // dataType true, // built-in type 0 // maxLength ); columnList[7] = new SystemColumnImpl( convertIdCase( "ALIASINFO"), // column name 8, // column number 0, // precision 0, // scale true, // nullability "org.apache.derby.catalog.AliasInfo", // dataType false, // built-in type TypeDescriptor.MAXIMUM_WIDTH_UNKNOWN // maxLength ); columnList[8] = new SystemColumnImpl( convertIdCase( "SPECIFICNAME"), 9, // column number false // nullability ); return columnList; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -