/* * JBoss, Home of Professional Open Source. * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. Some portions may be licensed * to Red Hat, Inc. under one or more contributor license agreements. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. */ package org.teiid.jdbc; /** * <p> This class provides constants indicating positions of columns in the * <code>ResultSets</code> returned by methods on <code>MMDatabaseMetaData</code> * object. The inner classes represent the methods while attributes represent the * column positions. The name of the constant explains the column content.</p> * <p> The constants in the inner classes could include column positions for columns * that are hardcoded, columns positions of some columns on server's * <code>Results</code> object.</p> * <p> Each of the inner classes have a constant <code>MAX_COLUMNS</code> that * represents the number of columns to be read from the server's <code>Results</code> * object.</p> * <p> All the column positions are one based. </code> */ interface JDBCColumnPositions { /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface SCHEMAS { /** Number of columns to be read from results returned getElements method. */ static final int MAX_COLUMNS = 2; static final int TABLE_CATALOG = 2; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface CATALOGS { /** Number of columns to be read from results returned getElements method. */ static final int MAX_COLUMNS = 1; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface COLUMNS { /** Number of columns to be read from results returned getElements method. */ static final int MAX_COLUMNS = 23; /** Position of column that contains catalog name in which the table for the column is present. */ static final int TABLE_CAT = 1; static final int TABLE_SCHEM = 2; static final int TABLE_NAME = 3; static final int COLUMN_NAME = 4; /** Position of column that contains SQL type from java.sql.Types for column's data type. */ static final int DATA_TYPE = 5; /** Position of column that contains local type name used by the data source. */ static final int TYPE_NAME = 6; static final int COLUMN_SIZE = 7; /** Position of column that is not used will contain nulls */ static final int BUFFER_LENGTH = 8; static final int DECIMAL_DIGITS = 9; static final int NUM_PREC_RADIX = 10; /** Position of column that has an int value indicating nullablity */ static final int NULLABLE = 11; /** Position of column containing explanatory notes. */ static final int REMARKS = 12; static final int COLUMN_DEF = 13; /** Position of column that not used will contain nulls */ static final int SQL_DATA_TYPE = 14; /** Position of column that not used will contain nulls */ static final int SQL_DATETIME_SUB = 15; static final int CHAR_OCTET_LENGTH = 16; static final int ORDINAL_POSITION = 17; /** Position of column that has an String value indicating nullablity */ static final int IS_NULLABLE = 18; static final int SCOPE_CATALOG = 19; static final int SCOPE_SCHEMA = 20; static final int SCOPE_TABLE = 21; static final int SOURCE_DATA_TYPE = 22; static final int IS_AUTOINCREMENT = 23; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface TABLES { /** Number of columns to be read from results returned getTables method. */ static final int MAX_COLUMNS = 11; /** Position of column that contains catalog name in which the table is present. */ static final int TABLE_CAT = 1; static final int TYPE_CAT = 6; static final int TYPE_SCHEM = 7; static final int TYPE_NAME = 8; static final int SELF_REFERENCING_COL_NAME = 9; static final int REF_GENERATION = 10; static final int ISPHYSICAL = 11; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface TYPE_INFO { /** Number of columns to be read from results returned getElements method. */ static final int MAX_COLUMNS = 18; /** Position of column that contains local type name used by the data source. */ static final int TYPE_NAME = 1; /** Position of column that contains SQL type from java.sql.Types for column's data type. */ static final int DATA_TYPE = 2; static final int PRECISION = 3; /** Position of column that contains prefix used to quote a literal. */ static final int LITERAL_PREFIX = 4; /** Position of column that contains suffix used to quote a literal. */ static final int LITERAL_SUFFIX = 5; /** Position of column that contains params used in creating the type. */ static final int CREATE_PARAMS = 6; /** Position of column that contains the nullable value. */ static final int NULLABLE = 7; static final int CASE_SENSITIVE = 8; /** Position of column that contains the searchable value. */ static final int SEARCHABLE = 9; /** Position of column that contains the unsigned value. */ static final int UNSIGNED_ATTRIBUTE = 10; static final int FIXED_PREC_SCALE = 11; static final int AUTO_INCREMENT = 12; /** Position of column that contains local type name used by the data source. */ static final int LOCAL_TYPE_NAME = 13; /** Position of column that contains the min scale value. */ static final int MINIMUM_SCALE = 14; /** Position of column that contains the max scale value. */ static final int MAXIMUM_SCALE = 15; /** Position of column that not used will contain nulls */ static final int SQL_DATA_TYPE = 16; /** Position of column that not used will contain nulls */ static final int SQL_DATETIME_SUB = 17; static final int NUM_PREC_RADIX = 18; /** Position of column in server's results containing name of the datatype.*/ static final int NAME = 19; /** Position of column in server's results containing isSigned value.*/ static final int IS_SIGNED = 20; /** Position of column in server's results containing nullType name.*/ static final int NULL_TYPE_NAME = 21; /** Position of column in server's results containing search type name.*/ static final int SEARCH_TYPE_NAME = 22; } /** * This class contains constants representing column positions on ResultSet * returned by getUDTS method on DatabaseMetaData. These constant values * are be used to hardcode the column values used in constructin the ResultSet obj. */ interface UDTS { /** Number of columns to be read from results returned getUserDefinedTypes method. */ static final int MAX_COLUMNS = 7; // name of the column containing table or Groups name in which UDTS are present. static final int TABLE_NAME = 3; // name of the column containing catalog or Virtual database name. static final int TYPE_CAT = 1; // name of the column containing schema or Virtual database version. static final int TYPE_SCHEM = 2; // name of the column containing name of type name column. static final int TYPE_NAME = 9; // name of the column containing class name column. static final int CLASS_NAME = 4; // name of the column containing name of sql datatype code column static final int DATA_TYPE = 5; // name of the column containing comments column static final int REMARKS = 6; static final int BASE_TYPE = 7; /** Position of column in server's results containing java class name.*/ static final int JAVA_CLASS = 8; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getIndexInfo method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from the query against System.KeyElements table.</p> */ interface INDEX_INFO { /** Number of columns to be read from results returned by server results. */ static final int MAX_COLUMNS = 13; /** Position of column that contains catalog name of the table. */ static final int TABLE_CAT = 1; static final int TABLE_SCHEM = 2; static final int TABLE_NAME = 3; /** Position of column that contains non uniqueness of the index. */ static final int NON_UNIQUE = 4; /** Position of column that contains qualifier for the index. */ static final int INDEX_QUALIFIER = 5; static final int INDEX_NAME = 6; /** Position of column that contains type of index. */ static final int TYPE = 7; static final int ORDINAL_POSITION = 8; static final int COLUMN_NAME = 9; /** Position of column that contains desc if index is ascending or descending. */ static final int ASC_OR_DESC = 10; /** Position of column that contains cardinality of the index. */ static final int CARDINALITY = 11; /** Position of column that contains pages oocupied by table. */ static final int PAGES = 12; /** Position of column that contains any filter condition. */ static final int FILTER_CONDITION = 13; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface PRIMARY_KEYS { /** Number of columns to be read from results returned by getPrimaryKeys. */ static final int MAX_COLUMNS = 6; /** Position of column that contains catalog name of the primaryTable. */ static final int TABLE_CAT = 1; static final int TABLE_SCHEM = 2; static final int TABLE_NAME = 3; static final int COLUMN_NAME = 4; static final int KEY_SEQ = 5; static final int PK_NAME = 6; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getCrossReferences method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getCrossReferences method on server's <code>Metadata object</code>. */ interface REFERENCE_KEYS { /** Number of columns to be read from results returned any of the 3 methods. */ static final int MAX_COLUMNS = 14; /** Position of column that contains catalog name of the primaryTable. */ static final int PKTABLE_CAT = 1; /** Position of column that contains scheam name of the primaryTable. */ static final int PKTABLE_SCHEM = 2; static final int PKTABLE_NAME = 3; static final int PKCOLUMN_NAME = 4; /** Position of column that contains catalog name of the foreignTable. */ static final int FKTABLE_CAT = 5; /** Position of column that contains schema name of the foreignTable. */ static final int FKTABLE_SCHEM = 6; static final int FKTABLE_NAME = 7; static final int FKCOLUMN_NAME = 8; static final int KEY_SEQ = 9; /** Position of column that determines how forein key changes if PK is updated. */ static final int UPDATE_RULE = 10; /** Position of column that determines how forein key changes if PK is deleted. */ static final int DELETE_RULE = 11; static final int FK_NAME = 12; static final int PK_NAME = 13; /** Position of column that determines if forein key constraints can be deffered until commit. */ static final int DEFERRABILITY = 14; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getProcedures method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface PROCEDURES { /** Number of columns to be read from results returned getCrossReferences method. */ static final int MAX_COLUMNS = 9; /** Position of column that contains catalog name of the procedure. */ static final int PROCEDURE_CAT = 1; static final int PROCEDURE_SCHEM = 2; static final int PROCEDURE_NAME = 3; /** Position of column the is reserved for future use. */ static final int RESERVED_1 = 4; /** Position of column the is reserved for future use. */ static final int RESERVED_2 = 5; /** Position of column the is reserved for future use. */ static final int RESERVED_3 = 6; static final int REMARKS = 7; /** Position of column Procedure type. */ static final int PROCEDURE_TYPE = 8; static final int SPECIFIC_NAME = 9; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. * <code>JAVA_CLASS</code> is the column position for element data type on * server's Results object. */ interface PROCEDURE_COLUMNS { /** Number of columns to be read from results returned getProcedureColumns method. */ static final int MAX_COLUMNS = 20; /** Position of column that contains catalog name of the procedure. */ static final int PROCEDURE_CAT = 1; static final int PROCEDURE_SCHEM = 2; static final int PROCEDURE_NAME = 3; static final int COLUMN_NAME = 4; /** Position of the column containing column or element type. */ static final int COLUMN_TYPE = 5; /** Position of column that contains SQL type from java.sql.Types for column's data type. */ static final int DATA_TYPE = 6; /** Position of column that contains local type name used by the data source. */ static final int TYPE_NAME = 7; static final int PRECISION = 8; static final int LENGTH = 9; static final int SCALE = 10; static final int RADIX = 11; /** Position of column that contains the nullable value. */ static final int NULLABLE = 12; /** Position of column that contains comments. */ static final int REMARKS = 13; static final int COLUMN_DEF = 14; static final int SQL_DATA_TYPE = 15; static final int SQL_DATETIME_SUB = 16; static final int CHAR_OCTET_LENGTH = 17; static final int ORDINAL_POSITION = 18; static final int IS_NULLABLE = 19; static final int SPECIFIC_NAME = 20; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class also has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. */ interface TABLE_PRIVILEGES { /** Number of columns to be read from results returned getGroupEntitlements method. */ static final int MAX_COLUMNS = 6; /** Position of VirtualDatabaseName column in server's results object returned by getGroupEntitlements method in User API */ static final int VIRTUAL_DATABASE_NAME = 0; /** Position of VirtualDatabaseVersion column in server's results object returned by getElementEntitlements method in User API */ static final int VIRTUAL_DATABASE_VERSION = 1; /** Position of GroupName column in server's results object returned by getGroupEntitlements method in User API */ static final int GROUP_NAME = 2; /** Position of Grantor column in server's results object returned by getGroupEntitlements method in User API */ static final int GRANTOR = 3; /** Position of Grantee column in server's results object returned by getGroupEntitlements method in User API */ static final int GRANTEE = 4; /** Position of Permission column in server's results object returned by getGroupEntitlements method in User API */ static final int PERMISSION = 5; /** Position of the column containing catalog name info. */ static final int TABLE_CAT = 0; /** Position of the column containing privilage grantable info. */ static final int IS_GRANTABLE = 6; } /** * <p>This class contains constants representing column positions on ResultSet * returned by getColumns method on DatabaseMetaData. The class also has constants * for columns whose values are to be hardcoded in MMDatabaseMetaData object. * <code>MAX_COLUMNS</code> is the number of columns to be read from server's * results from getElements method on <code>Metadata object</code>. */ interface COLUMN_PRIVILEGES { /** Number of columns to be read from results returned getElementEntitlements method. */ static final int MAX_COLUMNS = 7; /** Position of VirtualDatabaseName column in server's results object returned by getElementEntitlements method in User API */ static final int VIRTUAL_DATABASE_NAME = 0; /** Position of VirtualDatabaseVersion column in server's results object returned by getElementEntitlements method in User API */ static final int VIRTUAL_DATABASE_VERSION = 1; /** Position of GroupName column in server's results object returned by getElementEntitlements method in User API */ static final int GROUP_NAME = 2; /** Position of ElementName column in server's results object returned by getElementEntitlements method in User API */ static final int ELEMENT_NAME = 3; /** Position of Grantor column in server's results object returned by getElementEntitlements method in User API */ static final int GRANTOR = 4; /** Position of Grantee column in server's results object returned by getElementEntitlements method in User API */ static final int GRANTEE = 5; /** Position of Permission column in server's results object returned by getElementEntitlements method in User API */ static final int PERMISSION = 6; /** Position of the column containing catalog name info. */ static final int TABLE_CAT = 0; /** Position of the column containing privilage grantable info. */ static final int IS_GRANTABLE = 7; } }