use of org.hsqldb_voltpatches.Table in project voltdb by VoltDB.
the class DatabaseInformationFull method ADMINISTRABLE_ROLE_AUTHORIZATIONS.
//------------------------------------------------------------------------------
// SQL SCHEMATA VIEWS
/**
* Returns roles that are grantable by an admin user, which means all the
* roles
*
* @return Table
*/
Table ADMINISTRABLE_ROLE_AUTHORIZATIONS() {
Table t = sysTables[ADMINISTRABLE_ROLE_AUTHORIZATIONS];
if (t == null) {
t = createBlankTable(sysTableHsqlNames[ADMINISTRABLE_ROLE_AUTHORIZATIONS]);
addColumn(t, "GRANTEE", SQL_IDENTIFIER);
addColumn(t, "ROLE_NAME", SQL_IDENTIFIER);
addColumn(t, "IS_GRANTABLE", SQL_IDENTIFIER);
HsqlName name = HsqlNameManager.newInfoSchemaObjectName(sysTableHsqlNames[ADMINISTRABLE_ROLE_AUTHORIZATIONS].name, false, SchemaObject.INDEX);
t.createPrimaryKey(name, new int[] { 0, 1, 2 }, false);
return t;
}
if (session.isAdmin()) {
insertRoles(t, session.getGrantee(), true);
}
return t;
}
use of org.hsqldb_voltpatches.Table in project voltdb by VoltDB.
the class DatabaseInformationFull method ROUTINE_JAR_USAGE.
Table ROUTINE_JAR_USAGE() {
Table t = sysTables[ROUTINE_JAR_USAGE];
if (t == null) {
t = createBlankTable(sysTableHsqlNames[ROUTINE_JAR_USAGE]);
addColumn(t, "SPECIFIC_CATALOG", SQL_IDENTIFIER);
addColumn(t, "SPECIFIC_SCHEMA", SQL_IDENTIFIER);
addColumn(t, "SPECIFIC_NAME", SQL_IDENTIFIER);
addColumn(t, "JAR_CATALOG", SQL_IDENTIFIER);
addColumn(t, "JAR_SCHEMA", SQL_IDENTIFIER);
addColumn(t, "JAR_NAME", SQL_IDENTIFIER);
HsqlName name = HsqlNameManager.newInfoSchemaObjectName(sysTableHsqlNames[ROUTINE_JAR_USAGE].name, false, SchemaObject.INDEX);
t.createPrimaryKey(name, new int[] { 0, 1, 2, 3, 4, 5 }, false);
return t;
}
// column number mappings
final int specific_catalog = 0;
final int specific_schema = 1;
final int specific_name = 2;
final int jar_catalog = 3;
final int jar_schema = 4;
final int jar_name = 5;
//
Iterator it;
Object[] row;
PersistentStore store = database.persistentStoreCollection.getStore(t);
it = database.schemaManager.databaseObjectIterator(SchemaObject.ROUTINE);
while (it.hasNext()) {
RoutineSchema routine = (RoutineSchema) it.next();
if (!session.getGrantee().isAccessible(routine)) {
continue;
}
Routine[] specifics = routine.getSpecificRoutines();
for (int m = 0; m < specifics.length; m++) {
if (specifics[m].getLanguage() != Routine.LANGUAGE_JAVA) {
continue;
}
row = t.getEmptyRowData();
row[specific_catalog] = database.getCatalogName().name;
row[specific_schema] = routine.getSchemaName().name;
row[specific_name] = routine.getName().name;
row[jar_catalog] = database.getCatalogName().name;
row[jar_schema] = database.schemaManager.getSQLJSchemaHsqlName();
row[jar_name] = "CLASSPATH";
t.insertSys(store, row);
}
}
return t;
}
use of org.hsqldb_voltpatches.Table in project voltdb by VoltDB.
the class DatabaseInformationFull method SYSTEM_VERSIONCOLUMNS.
/**
* Retrieves a <code>Table</code> object describing the accessible
* columns that are automatically updated when any value in a row
* is updated. <p>
*
* Each row is a version column description with the following columns: <p>
*
* <OL>
* <LI><B>SCOPE</B> <code>SMALLINT</code> => is not used
* <LI><B>COLUMN_NAME</B> <code>VARCHAR</code> => column name
* <LI><B>DATA_TYPE</B> <code>SMALLINT</code> =>
* SQL data type from java.sql.Types
* <LI><B>TYPE_NAME</B> <code>SMALLINT</code> =>
* Data source dependent type name
* <LI><B>COLUMN_SIZE</B> <code>INTEGER</code> => precision
* <LI><B>BUFFER_LENGTH</B> <code>INTEGER</code> =>
* length of column value in bytes
* <LI><B>DECIMAL_DIGITS</B> <code>SMALLINT</code> => scale
* <LI><B>PSEUDO_COLUMN</B> <code>SMALLINT</code> =>
* is this a pseudo column like an Oracle <code>ROWID</code>:<BR>
* (as defined in <code>java.sql.DatabaseMetadata</code>)
* <UL>
* <LI><code>versionColumnUnknown</code> - may or may not be
* pseudo column
* <LI><code>versionColumnNotPseudo</code> - is NOT a pseudo column
* <LI><code>versionColumnPseudo</code> - is a pseudo column
* </UL>
* </OL> <p>
*
* <B>Note:</B> Currently, the HSQLDB engine does not support version
* columns, so an empty table is returned. <p>
*
* @return a <code>Table</code> object describing the columns
* that are automatically updated when any value
* in a row is updated
*/
Table SYSTEM_VERSIONCOLUMNS() {
Table t = sysTables[SYSTEM_VERSIONCOLUMNS];
if (t == null) {
t = createBlankTable(sysTableHsqlNames[SYSTEM_VERSIONCOLUMNS]);
// ----------------------------------------------------------------
// required by DatabaseMetaData.getVersionColumns result set
// ----------------------------------------------------------------
addColumn(t, "SCOPE", Type.SQL_INTEGER);
// not null
addColumn(t, "COLUMN_NAME", SQL_IDENTIFIER);
// not null
addColumn(t, "DATA_TYPE", Type.SQL_SMALLINT);
// not null
addColumn(t, "TYPE_NAME", SQL_IDENTIFIER);
addColumn(t, "COLUMN_SIZE", Type.SQL_SMALLINT);
addColumn(t, "BUFFER_LENGTH", Type.SQL_INTEGER);
addColumn(t, "DECIMAL_DIGITS", Type.SQL_SMALLINT);
// not null
addColumn(t, "PSEUDO_COLUMN", Type.SQL_SMALLINT);
// -----------------------------------------------------------------
// required by DatabaseMetaData.getVersionColumns filter parameters
// -----------------------------------------------------------------
addColumn(t, "TABLE_CAT", SQL_IDENTIFIER);
addColumn(t, "TABLE_SCHEM", SQL_IDENTIFIER);
// not null
addColumn(t, "TABLE_NAME", SQL_IDENTIFIER);
// -----------------------------------------------------------------
HsqlName name = HsqlNameManager.newInfoSchemaObjectName(sysTableHsqlNames[SYSTEM_VERSIONCOLUMNS].name, false, SchemaObject.INDEX);
t.createPrimaryKey(name, null, false);
return t;
}
return t;
}
use of org.hsqldb_voltpatches.Table in project voltdb by VoltDB.
the class DatabaseInformationFull method SQL_PARTS.
Table SQL_PARTS() {
Table t = sysTables[SQL_PARTS];
if (t == null) {
t = createBlankTable(sysTableHsqlNames[SQL_PARTS]);
addColumn(t, "PART", CHARACTER_DATA);
addColumn(t, "NAME", CHARACTER_DATA);
addColumn(t, "IS_SUPPORTED", YES_OR_NO);
addColumn(t, "IS_VERIFIED_BY", CHARACTER_DATA);
addColumn(t, "COMMENTS", CHARACTER_DATA);
HsqlName name = HsqlNameManager.newInfoSchemaObjectName(sysTableHsqlNames[SQL_PARTS].name, false, SchemaObject.INDEX);
t.createPrimaryKey(name, new int[] { 0 }, false);
return t;
}
PersistentStore store = database.persistentStoreCollection.getStore(t);
Session sys = database.sessionManager.newSysSession(SqlInvariants.INFORMATION_SCHEMA_HSQLNAME, session.getUser());
String sql = (String) statementMap.get("/*sql_parts*/");
Result rs = sys.executeDirectStatement(sql);
t.insertSys(store, rs);
return t;
}
Aggregations