⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 databaseinformationfull.java

📁 hsqldb是100%java实现的数据库,是一个开放源代码的JAVA数据库 l 具有标准的SQL语法和JAVA接口 l HSQLDB可以自由使用和分发 l 非常简洁和快速的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    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 + -