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

📄 databaseinformationmain.java

📁 hsql是很有名的嵌入式数据库
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                row[iupdate_rule]    = updateRule;                row[idelete_rule]    = deleteRule;                row[ifk_name]        = fkName;                row[ipk_name]        = pkName;                row[ideferrability]  = deferrability;                t.insertSys(row);            }        }        t.setDataReadOnly(true);        return t;    }    /**     * Retrieves a <code>Table</code> object describing the visible     * <code>Index</code> objects for each accessible table defined     * within this database.<p>     *     * Each row is an index column description with the following     * columns: <p>     *     * <pre class="SqlCodeExample">     * TABLE_CAT        VARCHAR   table's catalog     * TABLE_SCHEM      VARCHAR   simple name of table's schema     * TABLE_NAME       VARCHAR   simple name of the table using the index     * NON_UNIQUE       BOOLEAN   can index values be non-unique?     * INDEX_QUALIFIER  VARCHAR   catalog in which the index is defined     * INDEX_NAME       VARCHAR   simple name of the index     * TYPE             SMALLINT  index type: { Clustered | Hashed | Other }     * ORDINAL_POSITION SMALLINT  column sequence number within index     * COLUMN_NAME      VARCHAR   simple column name     * ASC_OR_DESC      VARCHAR   col. sort sequence: {"A" (Asc) | "D" (Desc)}     * CARDINALITY      INTEGER   # of unique values in index (not implemented)     * PAGES            INTEGER   index page use (not implemented)     * FILTER_CONDITION VARCHAR   filter condition, if any (not implemented)     * </pre> <p>     *     * @return a <code>Table</code> object describing the visible     *        <code>Index</code> objects for each accessible     *        table defined within this database.     * @throws HsqlException if an error occurs while producing the table     */    final Table SYSTEM_INDEXINFO() throws HsqlException {        Table t = sysTables[SYSTEM_INDEXINFO];        if (t == null) {            t = createBlankTable(sysTableHsqlNames[SYSTEM_INDEXINFO]);            addColumn(t, "TABLE_CAT", Types.VARCHAR);            addColumn(t, "TABLE_SCHEM", Types.VARCHAR);            addColumn(t, "TABLE_NAME", Types.VARCHAR, false);           // NOT NULL            addColumn(t, "NON_UNIQUE", Types.BOOLEAN, false);           // NOT NULL            addColumn(t, "INDEX_QUALIFIER", Types.VARCHAR);            addColumn(t, "INDEX_NAME", Types.VARCHAR);            addColumn(t, "TYPE", Types.SMALLINT, false);                // NOT NULL            addColumn(t, "ORDINAL_POSITION", Types.SMALLINT, false);    // NOT NULL            addColumn(t, "COLUMN_NAME", Types.VARCHAR);            addColumn(t, "ASC_OR_DESC", Types.VARCHAR, 1, true);            addColumn(t, "CARDINALITY", Types.INTEGER);            addColumn(t, "PAGES", Types.INTEGER);            addColumn(t, "FILTER_CONDITION", Types.VARCHAR);            // order: NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.            // added for unique: INDEX_QUALIFIER, TABLE_NAME            // false PK, as INDEX_QUALIFIER may be null            t.createPrimaryKey(null, new int[] {                3, 6, 5, 7, 4, 2            }, false);            return t;        }        // calculated column values        String  tableCatalog;        String  tableSchema;        String  tableName;        Boolean nonUnique;        String  indexQualifier;        String  indexName;        Integer indexType;        //Integer ordinalPosition;        //String  columnName;        //String  ascOrDesc;        Integer cardinality;        Integer pages;        String  filterCondition;        // Intermediate holders        Iterator       tables;        Table          table;        int            indexCount;        int[]          cols;        int            col;        int            colCount;        Object[]       row;        DITableInfo    ti;        HsqlProperties p;        // column number mappings        final int itable_cat        = 0;        final int itable_schem      = 1;        final int itable_name       = 2;        final int inon_unique       = 3;        final int iindex_qualifier  = 4;        final int iindex_name       = 5;        final int itype             = 6;        final int iordinal_position = 7;        final int icolumn_name      = 8;        final int iasc_or_desc      = 9;        final int icardinality      = 10;        final int ipages            = 11;        final int ifilter_condition = 12;        // Initialization        ti = new DITableInfo();        p  = database.getProperties();        tables = p.isPropertyTrue("hsqldb.system_table_indexinfo")                 ? allTables()                 : database.schemaManager.allTablesIterator();        // Do it.        while (tables.hasNext()) {            table = (Table) tables.next();            if (table.isView() ||!isAccessibleTable(table)) {                continue;            }            ti.setTable(table);            tableCatalog = ns.getCatalogName(table);            tableSchema  = table.getSchemaName();            tableName    = ti.getName();            // not supported yet            filterCondition = null;            // different cat for index not supported yet            indexQualifier = tableCatalog;            indexCount     = table.getIndexCount();            // process all of the visible indices for this table            for (int i = 0; i < indexCount; i++) {                colCount = ti.getIndexVisibleColumns(i);                if (colCount < 1) {                    continue;                }                indexName   = ti.getIndexName(i);                nonUnique   = ti.isIndexNonUnique(i);                cardinality = ti.getIndexCardinality(i);                pages       = ti.getIndexPages(i);                cols        = ti.getIndexColumns(i);                indexType   = ti.getIndexType(i);                for (int k = 0; k < colCount; k++) {                    col                    = cols[k];                    row                    = t.getEmptyRowData();                    row[itable_cat]        = tableCatalog;                    row[itable_schem]      = tableSchema;                    row[itable_name]       = tableName;                    row[inon_unique]       = nonUnique;                    row[iindex_qualifier]  = indexQualifier;                    row[iindex_name]       = indexName;                    row[itype]             = indexType;                    row[iordinal_position] = ValuePool.getInt(k + 1);                    row[icolumn_name]      = ti.getColName(col);                    row[iasc_or_desc]      = ti.getIndexColDirection(i, col);                    row[icardinality]      = cardinality;                    row[ipages]            = pages;                    row[ifilter_condition] = filterCondition;                    t.insertSys(row);                }            }        }        t.setDataReadOnly(true);        return t;    }    /**     * Retrieves a <code>Table</code> object describing the visible     * primary key columns of each accessible table defined within     * this database. <p>     *     * Each row is a PRIMARY KEY column description with the following     * columns: <p>     *     * <pre class="SqlCodeExample">     * TABLE_CAT   VARCHAR   table catalog     * TABLE_SCHEM VARCHAR   table schema     * TABLE_NAME  VARCHAR   table name     * COLUMN_NAME VARCHAR   column name     * KEY_SEQ     SMALLINT  sequence number within primary key     * PK_NAME     VARCHAR   primary key constraint name     * </pre> <p>     *     * @return a <code>Table</code> object describing the visible     *        primary key columns of each accessible table     *        defined within this database.     * @throws HsqlException if an error occurs while producing the table     */    final Table SYSTEM_PRIMARYKEYS() throws HsqlException {        Table t = sysTables[SYSTEM_PRIMARYKEYS];        if (t == null) {            t = createBlankTable(sysTableHsqlNames[SYSTEM_PRIMARYKEYS]);            addColumn(t, "TABLE_CAT", Types.VARCHAR);            addColumn(t, "TABLE_SCHEM", Types.VARCHAR);            addColumn(t, "TABLE_NAME", Types.VARCHAR, false);     // not null            addColumn(t, "COLUMN_NAME", Types.VARCHAR, false);    // not null            addColumn(t, "KEY_SEQ", Types.SMALLINT, false);       // not null            addColumn(t, "PK_NAME", Types.VARCHAR);            // order: COLUMN_NAME            // added for unique: TABLE_NAME, TABLE_SCHEM, TABLE_CAT            // false PK, as  TABLE_SCHEM and/or TABLE_CAT may be null            t.createPrimaryKey(null, new int[] {                3, 2, 1, 0            }, false);            return t;        }        // calculated column values        String tableCatalog;        String tableSchema;        String tableName;        //String  columnName;        //Integer keySequence;        String primaryKeyName;        // Intermediate holders        Iterator       tables;        Table          table;        Object[]       row;        Index          index;        int[]          cols;        int            colCount;        DITableInfo    ti;        HsqlProperties p;        // column number mappings        final int itable_cat   = 0;        final int itable_schem = 1;        final int itable_name  = 2;        final int icolumn_name = 3;        final int ikey_seq     = 4;        final int ipk_name     = 5;        // Initialization        ti = new DITableInfo();        p  = database.getProperties();        tables = p.isPropertyTrue("hsqldb.system_table_primarykeys")                 ? allTables()                 : database.schemaManager.allTablesIterator();        while (tables.hasNext()) {            table = (Table) tables.next();            if (table.isView() ||!isAccessibleTable(table)                    ||!table.hasPrimaryKey()) {                continue;            }            index = table.getPrimaryIndex();            ti.setTable(table);            tableCatalog   = ns.getCatalogName(table);            tableSchema    = table.getSchemaName();            tableName      = ti.getName();            primaryKeyName = index.getName().name;            cols           = index.getColumns();            colCount       = cols.length;            for (int j = 0; j < colCount; j++) {                row               = t.getEmptyRowData();                row[itable_cat]   = tableCatalog;                row[itable_schem] = tableSchema;                row[itable_name]  = tableName;                row[icolumn_name] = ti.getColName(cols[j]);                row[ikey_seq]     = ValuePool.getInt(j + 1);                row[ipk_name]     = primaryKeyName;                t.insertSys(row);            }        }        t.setDataReadOnly(true);        return t;    }    /**     * Retrieves a <code>Table</code> object describing the     * return, parameter and result columns of the accessible     * routines defined within this database.<p>     *     * Each row is a procedure column description with the following     * columns: <p>     *     * <pre class="SqlCodeExample">     * PROCEDURE_CAT   VARCHAR   routine catalog     * PROCEDURE_SCHEM VARCHAR   routine schema     * PROCEDURE_NAME  VARCHAR   routine name     * COLUMN_NAME     VARCHAR   column/parameter name     * COLUMN_TYPE     SMALLINT  kind of column/parameter     * DATA_TYPE       SMALLINT  SQL type from DITypes     * TYPE_NAME       VARCHAR   SQL type name     * PRECISION       INTEGER   precision (length) of type     * LENGTH          INTEGER   transfer size, in bytes, if definitely known     *                           (roughly equivalent to BUFFER_SIZE for table     *                           columns)     * SCALE           SMALLINT  scale     * RADIX           SMALLINT  ra

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -