📄 databaseinformationfull.java
字号:
Table SYSTEM_SUPERTABLES() throws HsqlException { Table t = sysTables[SYSTEM_SUPERTABLES]; if (t == null) { t = createBlankTable(sysTableHsqlNames[SYSTEM_SUPERTABLES]); addColumn(t, "TABLE_CAT", Types.VARCHAR); addColumn(t, "TABLE_SCHEM", Types.VARCHAR); addColumn(t, "TABLE_NAME", Types.VARCHAR, false); // not null addColumn(t, "SUPERTABLE_NAME", Types.VARCHAR, false); // not null t.createPrimaryKey(null); return t; } t.setDataReadOnly(true); return t; } /** * Retrieves a <code>Table</code> object describing the accessible * direct super type (if any) of each accessible user-defined type (UDT) * defined within this database. <p> * * Each row is a super type description with the following columns: <p> * * <pre class="SqlCodeExample"> * TYPE_CAT VARCHAR the UDT's catalog * TYPE_SCHEM VARCHAR UDT's schema * TYPE_NAME VARCHAR type name of the UDT * SUPERTYPE_CAT VARCHAR the direct super type's catalog * SUPERTYPE_SCHEM VARCHAR the direct super type's schema * SUPERTYPE_NAME VARCHAR the direct super type's name * </pre> <p> * @return a <code>Table</code> object describing the accessible * direct supertype (if any) of each accessible * user-defined type (UDT) defined within this database * @throws HsqlException if an error occurs while producing the table */ Table SYSTEM_SUPERTYPES() throws HsqlException { Table t = sysTables[SYSTEM_SUPERTYPES]; if (t == null) { t = createBlankTable(sysTableHsqlNames[SYSTEM_SUPERTYPES]); addColumn(t, "TYPE_CAT", Types.VARCHAR); addColumn(t, "TYPE_SCHEM", Types.VARCHAR); addColumn(t, "TYPE_NAME", Types.VARCHAR, false); // not null addColumn(t, "SUPERTYPE_CAT", Types.VARCHAR); addColumn(t, "SUPERTYPE_SCHEM", Types.VARCHAR); addColumn(t, "SUPERTYPE_NAME", Types.VARCHAR, false); // not null t.createPrimaryKey(null); return t; } t.setDataReadOnly(true); return t; } /** * Retrieves a <code>Table</code> object describing the TEXT TABLE objects * defined within this database. The table contains one row for each row * in the SYSTEM_TABLES table with a HSQLDB_TYPE of TEXT . <p> * * Each row is a description of the attributes that defines its TEXT TABLE, * with the following columns: * * <pre class="SqlCodeExample"> * TABLE_CAT VARCHAR table's catalog name * TABLE_SCHEM VARCHAR table's simple schema name * TABLE_NAME VARCHAR table's simple name * DATA_SOURCE_DEFINITION VARCHAR the "spec" proption of the table's * SET TABLE ... SOURCE DDL declaration * FILE_PATH VARCHAR absolute file path. * FILE_ENCODING VARCHAR endcoding of table's text file * FIELD_SEPARATOR VARCHAR default field separator * VARCHAR_SEPARATOR VARCAHR varchar field separator * LONGVARCHAR_SEPARATOR VARCHAR longvarchar field separator * IS_IGNORE_FIRST BOOLEAN ignores first line of file? * IS_QUOTED BOOLEAN fields are quoted if necessary? * IS_ALL_QUOTED BOOLEAN all fields are quoted? * IS_DESC BOOLEAN read rows starting at end of file? * </pre> <p> * * @return a <code>Table</code> object describing the text attributes * of the accessible text tables defined within this database * @throws HsqlException if an error occurs while producing the table * */ Table SYSTEM_TEXTTABLES() throws HsqlException { Table t = sysTables[SYSTEM_TEXTTABLES]; if (t == null) { t = createBlankTable(sysTableHsqlNames[SYSTEM_TEXTTABLES]); addColumn(t, "TABLE_CAT", Types.VARCHAR); addColumn(t, "TABLE_SCHEM", Types.VARCHAR); addColumn(t, "TABLE_NAME", Types.VARCHAR, false); // not null addColumn(t, "DATA_SOURCE_DEFINTION", Types.VARCHAR); addColumn(t, "FILE_PATH", Types.VARCHAR); addColumn(t, "FILE_ENCODING", Types.VARCHAR); addColumn(t, "FIELD_SEPARATOR", Types.VARCHAR); addColumn(t, "VARCHAR_SEPARATOR", Types.VARCHAR); addColumn(t, "LONGVARCHAR_SEPARATOR", Types.VARCHAR); addColumn(t, "IS_IGNORE_FIRST", Types.BOOLEAN); addColumn(t, "IS_ALL_QUOTED", Types.BOOLEAN); addColumn(t, "IS_QUOTED", Types.BOOLEAN); addColumn(t, "IS_DESC", Types.BOOLEAN); // ------------------------------------------------------------ t.createPrimaryKey(); return t; } // intermediate holders Iterator tables; Table table; Object[] row;// DITableInfo ti; TextCache tc; // column number mappings final int itable_cat = 0; final int itable_schem = 1; final int itable_name = 2; final int idsd = 3; final int ifile_path = 4; final int ifile_enc = 5; final int ifs = 6; final int ivfs = 7; final int ilvfs = 8; final int iif = 9; final int iiq = 10; final int iiaq = 11; final int iid = 12; // Initialization tables = database.schemaManager.allTablesIterator(); // Do it. while (tables.hasNext()) { table = (Table) tables.next(); if (!table.isText() ||!isAccessibleTable(table)) { continue; } row = t.getEmptyRowData(); row[itable_cat] = ns.getCatalogName(table); row[itable_schem] = table.getSchemaName(); row[itable_name] = table.getName().name; if (table.getCache() instanceof TextCache) { tc = (TextCache) table.getCache(); row[idsd] = table.getDataSource(); row[ifile_path] = FileUtil.canonicalOrAbsolutePath(tc.getFileName()); row[ifile_enc] = tc.stringEncoding; row[ifs] = tc.fs; row[ivfs] = tc.vs; row[ilvfs] = tc.lvs; row[iif] = ValuePool.getBoolean(tc.ignoreFirst); row[iiq] = ValuePool.getBoolean(tc.isQuoted); row[iiaq] = ValuePool.getBoolean(tc.isAllQuoted); row[iid] = ValuePool.getBoolean(table.isDescDataSource()); } t.insertSys(row); } t.setDataReadOnly(true); return t; } /** * Retrieves a <code>Table</code> object describing the usage * of accessible columns in accessible triggers defined within * the database. <p> * * Each column usage description has the following columns: <p> * * <pre class="SqlCodeExample"> * TRIGGER_CAT VARCHAR Trigger catalog. * TRIGGER_SCHEM VARCHAR Trigger schema. * TRIGGER_NAME VARCHAR Trigger name. * TABLE_CAT VARCHAR Catalog of table on which the trigger is defined. * TABLE_SCHEM VARCHAR Schema of table on which the trigger is defined. * TABLE_NAME VARCHAR Table on which the trigger is defined. * COLUMN_NAME VARCHAR Name of the column used in the trigger. * COLUMN_LIST VARCHAR Specified in UPDATE clause?: ("Y" | "N"} * COLUMN_USAGE VARCHAR {"NEW" | "OLD" | "IN" | "OUT" | "IN OUT"} * </pre> <p> * @return a <code>Table</code> object describing of the usage * of accessible columns in accessible triggers * defined within this database * @throws HsqlException if an error occurs while producing the table */ Table SYSTEM_TRIGGERCOLUMNS() throws HsqlException { Table t = sysTables[SYSTEM_TRIGGERCOLUMNS]; if (t == null) { t = createBlankTable(sysTableHsqlNames[SYSTEM_TRIGGERCOLUMNS]); addColumn(t, "TRIGGER_CAT", Types.VARCHAR); addColumn(t, "TRIGGER_SCHEM", Types.VARCHAR); addColumn(t, "TRIGGER_NAME", Types.VARCHAR); addColumn(t, "TABLE_CAT", Types.VARCHAR); addColumn(t, "TABLE_SCHEM", Types.VARCHAR); addColumn(t, "TABLE_NAME", Types.VARCHAR); addColumn(t, "COLUMN_NAME", Types.VARCHAR); addColumn(t, "COLUMN_LIST", Types.VARCHAR); addColumn(t, "COLUMN_USAGE", Types.VARCHAR); // order: all columns, in order, as each column // of each table may eventually be listed under various capacities // (when a more comprehensive trugger system is put in place) // false PK, as cat and schem may be null t.createPrimaryKey(null, new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, false); return t; } Result rs; // - used appends to make class file constant pool smaller // - saves ~ 100 bytes jar space rs = session.sqlExecuteDirectNoPreChecks( "select a.TRIGGER_CAT,a.TRIGGER_SCHEM,a.TRIGGER_NAME, " + "a.TABLE_CAT,a.TABLE_SCHEM,a.TABLE_NAME,b.COLUMN_NAME,'Y'," + "'IN' from INFORMATION_SCHEMA.SYSTEM_TRIGGERS a, " + "INFORMATION_SCHEMA.SYSTEM_COLUMNS b where " + "a.TABLE_NAME=b.TABLE_NAME and a.TABLE_SCHEM=b.TABLE_SCHEM");/* (new StringBuffer(185)).append("SELECT").append(' ').append( "a.").append("TRIGGER_CAT").append(',').append("a.").append( "TRIGGER_SCHEM").append(',').append("a.").append( "TRIGGER_NAME").append(',').append("a.").append( "TABLE_CAT").append(',').append("a.").append( "TABLE_SCHEM").append(',').append("a.").append( "TABLE_NAME").append(',').append("b.").append( "COLUMN_NAME").append(',').append("'Y'").append(',').append( "'IN'").append(' ').append("from").append(' ').append( "INFORMATION_SCHEMA").append('.').append( "SYSTEM_TRIGGERS").append(" a,").append( "INFORMATION_SCHEMA").append('.').append( "SYSTEM_COLUMNS").append(" b ").append("where").append( ' ').append("a.").append("TABLE_NAME").append('=').append( "b.").append("TABLE_NAME").toString();*/ t.insertSys(rs); t.setDataReadOnly(true); return t; } /** * Retrieves a <code>Table</code> object describing the accessible * triggers defined within the database. <p> * * Each row is a trigger description with the following columns: <p> * * <pre class="SqlCodeExample"> * TRIGGER_CAT VARCHAR Trigger catalog. * TRIGGER_SCHEM VARCHAR Trigger Schema. * TRIGGER_NAME VARCHAR Trigger Name. * TRIGGER_TYPE VARCHAR {("BEFORE" | "AFTER") + [" EACH ROW"] } * TRIGGERING_EVENT VARCHAR {"INSERT" | "UPDATE" | "DELETE"} * (future?: "INSTEAD OF " + ("SELECT" | ...)) * TABLE_CAT VARCHAR Table's catalog. * TABLE_SCHEM VARCHAR Table's schema. * BASE_OBJECT_TYPE VARCHAR "TABLE" * (future?: "VIEW" | "SCHEMA" | "DATABASE") * TABLE_NAME VARCHAR Table on which trigger is defined * COLUMN_NAME VARCHAR NULL (future?: nested table column name) * REFERENCING_NAMES VARCHAR ROW, OLD, NEW, etc. * WHEN_CLAUSE VARCHAR Condition firing trigger (NULL => always) * STATUS VARCHAR {"ENABLED" | "DISABLED"} * DESCRIPTION VARCHAR typically, the trigger's DDL * ACTION_TYPE VARCHAR "CALL" (future?: embedded language name) * TRIGGER_BODY VARCHAR Statement(s) executed * </pre> <p> * * @return a <code>Table</code> object describing the accessible * triggers defined within this database. * @throws HsqlException if an error occurs while producing the table */ Table SYSTEM_TRIGGERS() throws HsqlException { Table t = sysTables[SYSTEM_TRIGGERS]; if (t == null) { t = createBlankTable(sysTableHsqlNames[SYSTEM_TRIGGERS]); addColumn(t, "TRIGGER_CAT", Types.VARCHAR); addColumn(t, "TRIGGER_SCHEM", Types.VARCHAR); addColumn(t, "TRIGGER_NAME", Types.VARCHAR, false); addColumn(t, "TRIGGER_TYPE", Types.VARCHAR, 15, false); addColumn(t, "TRIGGERING_EVENT", Types.VARCHAR, 10, false); addColumn(t, "TABLE_CAT", Types.VARCHAR); addColumn(t, "TABLE_SCHEM", Types.VARCHAR); addColumn(t, "BASE_OBJECT_TYPE", Types.VARCHAR, 8, false); addColumn(t, "TABLE_NAME", Types.VARCHAR, false); addColumn(t, "COLUMN_NAME", Types.VARCHAR); addColumn(t, "REFERENCING_NAMES", Types.VARCHAR, false); addColumn(t, "WHEN_CLAUSE", Types.VARCHAR); addColumn(t, "STATUS", Types.VARCHAR, 8, false); addColumn(t, "DESCRIPTION", Types.VARCHAR, false); addColumn(t, "ACTION_TYPE", Types.VARCHAR, false); addColumn(t, "TRIGGER_BODY", Types.VARCHAR, false); // order: TRIGGER_TYPE, TRIGGER_SCHEM, TRIGGER_NAME // added for unique: TRIGGER_CAT // false PK, as TRIGGER_SCHEM and/or TRIGGER_CAT may be null t.createPrimaryKey(null, new int[] { 3, 1, 2, 0 }, false); return t; } // calculated column values
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -