Class PgDatabaseMetaData
- java.lang.Object
-
- org.postgresql.jdbc.PgDatabaseMetaData
-
- All Implemented Interfaces:
java.sql.DatabaseMetaData,java.sql.Wrapper
public class PgDatabaseMetaData extends java.lang.Object implements java.sql.DatabaseMetaData
-
-
Field Summary
Fields Modifier and Type Field Description protected PgConnectionconnectionprivate intindexMaxKeysprivate java.lang.Stringkeywordsprivate intnameDataLengthprivate static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>tableTypeClauses-
Fields inherited from interface java.sql.DatabaseMetaData
attributeNoNulls, attributeNullable, attributeNullableUnknown, bestRowNotPseudo, bestRowPseudo, bestRowSession, bestRowTemporary, bestRowTransaction, bestRowUnknown, columnNoNulls, columnNullable, columnNullableUnknown, functionColumnIn, functionColumnInOut, functionColumnOut, functionColumnResult, functionColumnUnknown, functionNoNulls, functionNoTable, functionNullable, functionNullableUnknown, functionResultUnknown, functionReturn, functionReturnsTable, importedKeyCascade, importedKeyInitiallyDeferred, importedKeyInitiallyImmediate, importedKeyNoAction, importedKeyNotDeferrable, importedKeyRestrict, importedKeySetDefault, importedKeySetNull, procedureColumnIn, procedureColumnInOut, procedureColumnOut, procedureColumnResult, procedureColumnReturn, procedureColumnUnknown, procedureNoNulls, procedureNoResult, procedureNullable, procedureNullableUnknown, procedureResultUnknown, procedureReturnsResult, sqlStateSQL, sqlStateSQL99, sqlStateXOpen, tableIndexClustered, tableIndexHashed, tableIndexOther, tableIndexStatistic, typeNoNulls, typeNullable, typeNullableUnknown, typePredBasic, typePredChar, typePredNone, typeSearchable, versionColumnNotPseudo, versionColumnPseudo, versionColumnUnknown
-
-
Constructor Summary
Constructors Constructor Description PgDatabaseMetaData(PgConnection conn)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidaddACLPrivileges(java.lang.String acl, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<java.lang.String[]>>> privileges)Add the user described by the given acl to the Lists of users with the privileges described by the acl.booleanallProceduresAreCallable()booleanallTablesAreSelectable()booleanautoCommitFailureClosesAllResultSets()protected java.sql.StatementcreateMetaDataStatement()booleandataDefinitionCausesTransactionCommit()Does a data definition statement within a transaction force the transaction to commit? It seems to mean something like:booleandataDefinitionIgnoredInTransactions()booleandeletesAreDetected(int i)booleandoesMaxRowSizeIncludeBlobs()protected java.lang.StringescapeQuotes(java.lang.String s)Turn the provided value into a valid string literal for direct inclusion into a query.booleangeneratedKeyAlwaysReturned()java.sql.ResultSetgetAttributes(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern, java.lang.String attributeNamePattern)java.sql.ResultSetgetBestRowIdentifier(java.lang.String catalog, java.lang.String schema, java.lang.String table, int scope, boolean nullable)java.sql.ResultSetgetCatalogs()java.lang.StringgetCatalogSeparator()java.lang.StringgetCatalogTerm()java.sql.ResultSetgetClientInfoProperties()java.sql.ResultSetgetColumnPrivileges(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String columnNamePattern)java.sql.ResultSetgetColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)java.sql.ConnectiongetConnection()java.sql.ResultSetgetCrossReference(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable)intgetDatabaseMajorVersion()intgetDatabaseMinorVersion()java.lang.StringgetDatabaseProductName()Retrieves the name of this database product.java.lang.StringgetDatabaseProductVersion()intgetDefaultTransactionIsolation()intgetDriverMajorVersion()intgetDriverMinorVersion()java.lang.StringgetDriverName()java.lang.StringgetDriverVersion()java.sql.ResultSetgetExportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)java.lang.StringgetExtraNameCharacters()java.sql.ResultSetgetFunctionColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern, java.lang.String columnNamePattern)java.sql.ResultSetgetFunctions(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern)java.lang.StringgetIdentifierQuoteString()What is the string used to quote SQL identifiers? This returns a space if identifier quoting isn't supported.protected java.sql.ResultSetgetImportedExportedKeys(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable)java.sql.ResultSetgetImportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)java.sql.ResultSetgetIndexInfo(java.lang.String catalog, java.lang.String schema, java.lang.String tableName, boolean unique, boolean approximate)intgetJDBCMajorVersion()intgetJDBCMinorVersion()intgetMaxBinaryLiteralLength()intgetMaxCatalogNameLength()intgetMaxCharLiteralLength()intgetMaxColumnNameLength()intgetMaxColumnsInGroupBy()intgetMaxColumnsInIndex()intgetMaxColumnsInOrderBy()intgetMaxColumnsInSelect()intgetMaxColumnsInTable()What is the maximum number of columns in a table? From the CREATE TABLE reference page...intgetMaxConnections()How many active connection can we have at a time to this database? Well, since it depends on postmaster, which just does a listen() followed by an accept() and fork(), its basically very high.intgetMaxCursorNameLength()protected intgetMaxIndexKeys()intgetMaxIndexLength()longgetMaxLogicalLobSize()protected intgetMaxNameLength()intgetMaxProcedureNameLength()intgetMaxRowSize()intgetMaxSchemaNameLength()intgetMaxStatementLength()intgetMaxStatements()intgetMaxTableNameLength()intgetMaxTablesInSelect()intgetMaxUserNameLength()java.lang.StringgetNumericFunctions()java.sql.ResultSetgetPrimaryKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)protected java.sql.ResultSetgetPrimaryUniqueKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)java.sql.ResultSetgetProcedureColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern, java.lang.String columnNamePattern)java.sql.ResultSetgetProcedures(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern)java.lang.StringgetProcedureTerm()java.sql.ResultSetgetPseudoColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)intgetResultSetHoldability()java.sql.RowIdLifetimegetRowIdLifetime()java.sql.ResultSetgetSchemas()java.sql.ResultSetgetSchemas(java.lang.String catalog, java.lang.String schemaPattern)java.lang.StringgetSchemaTerm()java.lang.StringgetSearchStringEscape()java.lang.StringgetSQLKeywords()intgetSQLStateType()java.lang.StringgetStringFunctions()java.sql.ResultSetgetSuperTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern)java.sql.ResultSetgetSuperTypes(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern)java.lang.StringgetSystemFunctions()java.sql.ResultSetgetTablePrivileges(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern)java.sql.ResultSetgetTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String[] types)java.sql.ResultSetgetTableTypes()java.lang.StringgetTimeDateFunctions()java.sql.ResultSetgetTypeInfo()java.sql.ResultSetgetUDTs(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern, int[] types)java.lang.StringgetURL()java.lang.StringgetUserName()java.sql.ResultSetgetVersionColumns(java.lang.String catalog, java.lang.String schema, java.lang.String table)booleaninsertsAreDetected(int type)booleanisCatalogAtStart()booleanisReadOnly()booleanisWrapperFor(java.lang.Class<?> iface)booleanlocatorsUpdateCopy()booleannullPlusNonNullIsNull()booleannullsAreSortedAtEnd()booleannullsAreSortedAtStart()booleannullsAreSortedHigh()booleannullsAreSortedLow()booleanothersDeletesAreVisible(int i)booleanothersInsertsAreVisible(int type)booleanothersUpdatesAreVisible(int type)booleanownDeletesAreVisible(int type)booleanownInsertsAreVisible(int type)booleanownUpdatesAreVisible(int type)java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<java.lang.String[]>>>parseACL(java.lang.String aclArray, java.lang.String owner)Take the a String representing an array of ACLs and return a Map mapping the SQL permission name to a List of usernames who have that permission.private static java.util.List<java.lang.String>parseACLArray(java.lang.String aclString)Parse an String of ACLs into a List of ACLs.booleanstoresLowerCaseIdentifiers()booleanstoresLowerCaseQuotedIdentifiers()booleanstoresMixedCaseIdentifiers()booleanstoresMixedCaseQuotedIdentifiers()booleanstoresUpperCaseIdentifiers()booleanstoresUpperCaseQuotedIdentifiers()booleansupportsAlterTableWithAddColumn()booleansupportsAlterTableWithDropColumn()booleansupportsANSI92EntryLevelSQL()Does this driver support the ANSI-92 entry level SQL grammar? All JDBC Compliant drivers must return true.booleansupportsANSI92FullSQL()booleansupportsANSI92IntermediateSQL()booleansupportsBatchUpdates()booleansupportsCatalogsInDataManipulation()booleansupportsCatalogsInIndexDefinitions()booleansupportsCatalogsInPrivilegeDefinitions()booleansupportsCatalogsInProcedureCalls()booleansupportsCatalogsInTableDefinitions()booleansupportsColumnAliasing()booleansupportsConvert()booleansupportsConvert(int fromType, int toType)booleansupportsCoreSQLGrammar()Does this driver support the Core ODBC SQL grammar.booleansupportsCorrelatedSubqueries()booleansupportsDataDefinitionAndDataManipulationTransactions()booleansupportsDataManipulationTransactionsOnly()booleansupportsDifferentTableCorrelationNames()booleansupportsExpressionsInOrderBy()booleansupportsExtendedSQLGrammar()Does this driver support the Extended (Level 2) ODBC SQL grammar.booleansupportsFullOuterJoins()booleansupportsGetGeneratedKeys()booleansupportsGroupBy()booleansupportsGroupByBeyondSelect()booleansupportsGroupByUnrelated()booleansupportsIntegrityEnhancementFacility()Is the SQL Integrity Enhancement Facility supported? Our best guess is that this means support for constraintsbooleansupportsLikeEscapeClause()booleansupportsLimitedOuterJoins()booleansupportsMinimumSQLGrammar()booleansupportsMixedCaseIdentifiers()Does the database treat mixed case unquoted SQL identifiers as case sensitive and as a result store them in mixed case? A JDBC-Compliant driver will always return false.booleansupportsMixedCaseQuotedIdentifiers()Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case? A JDBC compliant driver will always return true.booleansupportsMultipleOpenResults()booleansupportsMultipleResultSets()booleansupportsMultipleTransactions()booleansupportsNamedParameters()booleansupportsNonNullableColumns()booleansupportsOpenCursorsAcrossCommit()In PostgreSQL, Cursors are only open within transactions.booleansupportsOpenCursorsAcrossRollback()booleansupportsOpenStatementsAcrossCommit()booleansupportsOpenStatementsAcrossRollback()booleansupportsOrderByUnrelated()booleansupportsOuterJoins()booleansupportsPositionedDelete()We support cursors for gets only it seems.booleansupportsPositionedUpdate()booleansupportsRefCursors()booleansupportsResultSetConcurrency(int type, int concurrency)booleansupportsResultSetHoldability(int holdability)booleansupportsResultSetType(int type)booleansupportsSavepoints()booleansupportsSchemasInDataManipulation()booleansupportsSchemasInIndexDefinitions()booleansupportsSchemasInPrivilegeDefinitions()booleansupportsSchemasInProcedureCalls()booleansupportsSchemasInTableDefinitions()booleansupportsSelectForUpdate()booleansupportsStatementPooling()booleansupportsStoredFunctionsUsingCallSyntax()booleansupportsStoredProcedures()booleansupportsSubqueriesInComparisons()booleansupportsSubqueriesInExists()booleansupportsSubqueriesInIns()booleansupportsSubqueriesInQuantifieds()booleansupportsTableCorrelationNames()booleansupportsTransactionIsolationLevel(int level)booleansupportsTransactions()booleansupportsUnion()booleansupportsUnionAll()<T> Tunwrap(java.lang.Class<T> iface)booleanupdatesAreDetected(int type)booleanusesLocalFilePerTable()Does the database use a file for each table? Well, not really, since it doesn't use local files.booleanusesLocalFiles()Does the database store tables in a local file? No - it stores them in a file on the server.
-
-
-
Field Detail
-
keywords
private java.lang.String keywords
-
connection
protected final PgConnection connection
-
nameDataLength
private int nameDataLength
-
indexMaxKeys
private int indexMaxKeys
-
tableTypeClauses
private static final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> tableTypeClauses
-
-
Constructor Detail
-
PgDatabaseMetaData
public PgDatabaseMetaData(PgConnection conn)
-
-
Method Detail
-
getMaxIndexKeys
protected int getMaxIndexKeys() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
getMaxNameLength
protected int getMaxNameLength() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
allProceduresAreCallable
public boolean allProceduresAreCallable() throws java.sql.SQLException- Specified by:
allProceduresAreCallablein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
allTablesAreSelectable
public boolean allTablesAreSelectable() throws java.sql.SQLException- Specified by:
allTablesAreSelectablein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getURL
public java.lang.String getURL() throws java.sql.SQLException- Specified by:
getURLin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getUserName
public java.lang.String getUserName() throws java.sql.SQLException- Specified by:
getUserNamein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
isReadOnly
public boolean isReadOnly() throws java.sql.SQLException- Specified by:
isReadOnlyin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
nullsAreSortedHigh
public boolean nullsAreSortedHigh() throws java.sql.SQLException- Specified by:
nullsAreSortedHighin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
nullsAreSortedLow
public boolean nullsAreSortedLow() throws java.sql.SQLException- Specified by:
nullsAreSortedLowin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
nullsAreSortedAtStart
public boolean nullsAreSortedAtStart() throws java.sql.SQLException- Specified by:
nullsAreSortedAtStartin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
nullsAreSortedAtEnd
public boolean nullsAreSortedAtEnd() throws java.sql.SQLException- Specified by:
nullsAreSortedAtEndin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getDatabaseProductName
public java.lang.String getDatabaseProductName() throws java.sql.SQLExceptionRetrieves the name of this database product. We hope that it is PostgreSQL, so we return that explicitly.- Specified by:
getDatabaseProductNamein interfacejava.sql.DatabaseMetaData- Returns:
- "PostgreSQL"
- Throws:
java.sql.SQLException
-
getDatabaseProductVersion
public java.lang.String getDatabaseProductVersion() throws java.sql.SQLException- Specified by:
getDatabaseProductVersionin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getDriverName
public java.lang.String getDriverName()
- Specified by:
getDriverNamein interfacejava.sql.DatabaseMetaData
-
getDriverVersion
public java.lang.String getDriverVersion()
- Specified by:
getDriverVersionin interfacejava.sql.DatabaseMetaData
-
getDriverMajorVersion
public int getDriverMajorVersion()
- Specified by:
getDriverMajorVersionin interfacejava.sql.DatabaseMetaData
-
getDriverMinorVersion
public int getDriverMinorVersion()
- Specified by:
getDriverMinorVersionin interfacejava.sql.DatabaseMetaData
-
usesLocalFiles
public boolean usesLocalFiles() throws java.sql.SQLExceptionDoes the database store tables in a local file? No - it stores them in a file on the server.- Specified by:
usesLocalFilesin interfacejava.sql.DatabaseMetaData- Returns:
- true if so
- Throws:
java.sql.SQLException- if a database access error occurs
-
usesLocalFilePerTable
public boolean usesLocalFilePerTable() throws java.sql.SQLExceptionDoes the database use a file for each table? Well, not really, since it doesn't use local files.- Specified by:
usesLocalFilePerTablein interfacejava.sql.DatabaseMetaData- Returns:
- true if so
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsMixedCaseIdentifiers
public boolean supportsMixedCaseIdentifiers() throws java.sql.SQLExceptionDoes the database treat mixed case unquoted SQL identifiers as case sensitive and as a result store them in mixed case? A JDBC-Compliant driver will always return false.- Specified by:
supportsMixedCaseIdentifiersin interfacejava.sql.DatabaseMetaData- Returns:
- true if so
- Throws:
java.sql.SQLException- if a database access error occurs
-
storesUpperCaseIdentifiers
public boolean storesUpperCaseIdentifiers() throws java.sql.SQLException- Specified by:
storesUpperCaseIdentifiersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
storesLowerCaseIdentifiers
public boolean storesLowerCaseIdentifiers() throws java.sql.SQLException- Specified by:
storesLowerCaseIdentifiersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
storesMixedCaseIdentifiers
public boolean storesMixedCaseIdentifiers() throws java.sql.SQLException- Specified by:
storesMixedCaseIdentifiersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsMixedCaseQuotedIdentifiers
public boolean supportsMixedCaseQuotedIdentifiers() throws java.sql.SQLExceptionDoes the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case? A JDBC compliant driver will always return true.- Specified by:
supportsMixedCaseQuotedIdentifiersin interfacejava.sql.DatabaseMetaData- Returns:
- true if so
- Throws:
java.sql.SQLException- if a database access error occurs
-
storesUpperCaseQuotedIdentifiers
public boolean storesUpperCaseQuotedIdentifiers() throws java.sql.SQLException- Specified by:
storesUpperCaseQuotedIdentifiersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
storesLowerCaseQuotedIdentifiers
public boolean storesLowerCaseQuotedIdentifiers() throws java.sql.SQLException- Specified by:
storesLowerCaseQuotedIdentifiersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
storesMixedCaseQuotedIdentifiers
public boolean storesMixedCaseQuotedIdentifiers() throws java.sql.SQLException- Specified by:
storesMixedCaseQuotedIdentifiersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getIdentifierQuoteString
public java.lang.String getIdentifierQuoteString() throws java.sql.SQLExceptionWhat is the string used to quote SQL identifiers? This returns a space if identifier quoting isn't supported. A JDBC Compliant driver will always use a double quote character.- Specified by:
getIdentifierQuoteStringin interfacejava.sql.DatabaseMetaData- Returns:
- the quoting string
- Throws:
java.sql.SQLException- if a database access error occurs
-
getSQLKeywords
public java.lang.String getSQLKeywords() throws java.sql.SQLExceptionFrom PostgreSQL 9.0+ return the keywords from pg_catalog.pg_get_keywords()
- Specified by:
getSQLKeywordsin interfacejava.sql.DatabaseMetaData- Returns:
- a comma separated list of keywords we use
- Throws:
java.sql.SQLException- if a database access error occurs
-
getNumericFunctions
public java.lang.String getNumericFunctions() throws java.sql.SQLException- Specified by:
getNumericFunctionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getStringFunctions
public java.lang.String getStringFunctions() throws java.sql.SQLException- Specified by:
getStringFunctionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getSystemFunctions
public java.lang.String getSystemFunctions() throws java.sql.SQLException- Specified by:
getSystemFunctionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getTimeDateFunctions
public java.lang.String getTimeDateFunctions() throws java.sql.SQLException- Specified by:
getTimeDateFunctionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getSearchStringEscape
public java.lang.String getSearchStringEscape() throws java.sql.SQLException- Specified by:
getSearchStringEscapein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getExtraNameCharacters
public java.lang.String getExtraNameCharacters() throws java.sql.SQLExceptionPostgresql allows any high-bit character to be used in an unquoted identifier, so we can't possibly list them all.
From the file src/backend/parser/scan.l, an identifier is ident_start [A-Za-z\200-\377_] ident_cont [A-Za-z\200-\377_0-9\$] identifier {ident_start}{ident_cont}*
- Specified by:
getExtraNameCharactersin interfacejava.sql.DatabaseMetaData- Returns:
- a string containing the extra characters
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsAlterTableWithAddColumn
public boolean supportsAlterTableWithAddColumn() throws java.sql.SQLException- Specified by:
supportsAlterTableWithAddColumnin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 6.1+
- Throws:
java.sql.SQLException
-
supportsAlterTableWithDropColumn
public boolean supportsAlterTableWithDropColumn() throws java.sql.SQLException- Specified by:
supportsAlterTableWithDropColumnin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException
-
supportsColumnAliasing
public boolean supportsColumnAliasing() throws java.sql.SQLException- Specified by:
supportsColumnAliasingin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
nullPlusNonNullIsNull
public boolean nullPlusNonNullIsNull() throws java.sql.SQLException- Specified by:
nullPlusNonNullIsNullin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsConvert
public boolean supportsConvert() throws java.sql.SQLException- Specified by:
supportsConvertin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsConvert
public boolean supportsConvert(int fromType, int toType) throws java.sql.SQLException- Specified by:
supportsConvertin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsTableCorrelationNames
public boolean supportsTableCorrelationNames() throws java.sql.SQLException- Specified by:
supportsTableCorrelationNamesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsDifferentTableCorrelationNames
public boolean supportsDifferentTableCorrelationNames() throws java.sql.SQLException- Specified by:
supportsDifferentTableCorrelationNamesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsExpressionsInOrderBy
public boolean supportsExpressionsInOrderBy() throws java.sql.SQLException- Specified by:
supportsExpressionsInOrderByin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsOrderByUnrelated
public boolean supportsOrderByUnrelated() throws java.sql.SQLException- Specified by:
supportsOrderByUnrelatedin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 6.4+
- Throws:
java.sql.SQLException
-
supportsGroupBy
public boolean supportsGroupBy() throws java.sql.SQLException- Specified by:
supportsGroupByin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsGroupByUnrelated
public boolean supportsGroupByUnrelated() throws java.sql.SQLException- Specified by:
supportsGroupByUnrelatedin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 6.4+
- Throws:
java.sql.SQLException
-
supportsGroupByBeyondSelect
public boolean supportsGroupByBeyondSelect() throws java.sql.SQLException- Specified by:
supportsGroupByBeyondSelectin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 6.4+
- Throws:
java.sql.SQLException
-
supportsLikeEscapeClause
public boolean supportsLikeEscapeClause() throws java.sql.SQLException- Specified by:
supportsLikeEscapeClausein interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.1+
- Throws:
java.sql.SQLException
-
supportsMultipleResultSets
public boolean supportsMultipleResultSets() throws java.sql.SQLException- Specified by:
supportsMultipleResultSetsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsMultipleTransactions
public boolean supportsMultipleTransactions() throws java.sql.SQLException- Specified by:
supportsMultipleTransactionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsNonNullableColumns
public boolean supportsNonNullableColumns() throws java.sql.SQLException- Specified by:
supportsNonNullableColumnsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsMinimumSQLGrammar
public boolean supportsMinimumSQLGrammar() throws java.sql.SQLExceptionThis grammar is defined at: http://www.microsoft.com/msdn/sdk/platforms/doc/odbc/src/intropr.htm
In Appendix C. From this description, we seem to support the ODBC minimal (Level 0) grammar.
- Specified by:
supportsMinimumSQLGrammarin interfacejava.sql.DatabaseMetaData- Returns:
- true
- Throws:
java.sql.SQLException
-
supportsCoreSQLGrammar
public boolean supportsCoreSQLGrammar() throws java.sql.SQLExceptionDoes this driver support the Core ODBC SQL grammar. We need SQL-92 conformance for this.- Specified by:
supportsCoreSQLGrammarin interfacejava.sql.DatabaseMetaData- Returns:
- false
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsExtendedSQLGrammar
public boolean supportsExtendedSQLGrammar() throws java.sql.SQLExceptionDoes this driver support the Extended (Level 2) ODBC SQL grammar. We don't conform to the Core (Level 1), so we can't conform to the Extended SQL Grammar.- Specified by:
supportsExtendedSQLGrammarin interfacejava.sql.DatabaseMetaData- Returns:
- false
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsANSI92EntryLevelSQL
public boolean supportsANSI92EntryLevelSQL() throws java.sql.SQLExceptionDoes this driver support the ANSI-92 entry level SQL grammar? All JDBC Compliant drivers must return true. We currently report false until 'schema' support is added. Then this should be changed to return true, since we will be mostly compliant (probably more compliant than many other databases) And since this is a requirement for all JDBC drivers we need to get to the point where we can return true.- Specified by:
supportsANSI92EntryLevelSQLin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsANSI92IntermediateSQL
public boolean supportsANSI92IntermediateSQL() throws java.sql.SQLException- Specified by:
supportsANSI92IntermediateSQLin interfacejava.sql.DatabaseMetaData- Returns:
- false
- Throws:
java.sql.SQLException
-
supportsANSI92FullSQL
public boolean supportsANSI92FullSQL() throws java.sql.SQLException- Specified by:
supportsANSI92FullSQLin interfacejava.sql.DatabaseMetaData- Returns:
- false
- Throws:
java.sql.SQLException
-
supportsIntegrityEnhancementFacility
public boolean supportsIntegrityEnhancementFacility() throws java.sql.SQLExceptionIs the SQL Integrity Enhancement Facility supported? Our best guess is that this means support for constraints- Specified by:
supportsIntegrityEnhancementFacilityin interfacejava.sql.DatabaseMetaData- Returns:
- true
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsOuterJoins
public boolean supportsOuterJoins() throws java.sql.SQLException- Specified by:
supportsOuterJoinsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.1+
- Throws:
java.sql.SQLException
-
supportsFullOuterJoins
public boolean supportsFullOuterJoins() throws java.sql.SQLException- Specified by:
supportsFullOuterJoinsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.1+
- Throws:
java.sql.SQLException
-
supportsLimitedOuterJoins
public boolean supportsLimitedOuterJoins() throws java.sql.SQLException- Specified by:
supportsLimitedOuterJoinsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.1+
- Throws:
java.sql.SQLException
-
getSchemaTerm
public java.lang.String getSchemaTerm() throws java.sql.SQLExceptionPostgreSQL doesn't have schemas, but when it does, we'll use the term "schema".
- Specified by:
getSchemaTermin interfacejava.sql.DatabaseMetaData- Returns:
"schema"- Throws:
java.sql.SQLException
-
getProcedureTerm
public java.lang.String getProcedureTerm() throws java.sql.SQLException- Specified by:
getProcedureTermin interfacejava.sql.DatabaseMetaData- Returns:
"function"- Throws:
java.sql.SQLException
-
getCatalogTerm
public java.lang.String getCatalogTerm() throws java.sql.SQLException- Specified by:
getCatalogTermin interfacejava.sql.DatabaseMetaData- Returns:
"database"- Throws:
java.sql.SQLException
-
isCatalogAtStart
public boolean isCatalogAtStart() throws java.sql.SQLException- Specified by:
isCatalogAtStartin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getCatalogSeparator
public java.lang.String getCatalogSeparator() throws java.sql.SQLException- Specified by:
getCatalogSeparatorin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSchemasInDataManipulation
public boolean supportsSchemasInDataManipulation() throws java.sql.SQLException- Specified by:
supportsSchemasInDataManipulationin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException
-
supportsSchemasInProcedureCalls
public boolean supportsSchemasInProcedureCalls() throws java.sql.SQLException- Specified by:
supportsSchemasInProcedureCallsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException
-
supportsSchemasInTableDefinitions
public boolean supportsSchemasInTableDefinitions() throws java.sql.SQLException- Specified by:
supportsSchemasInTableDefinitionsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException
-
supportsSchemasInIndexDefinitions
public boolean supportsSchemasInIndexDefinitions() throws java.sql.SQLException- Specified by:
supportsSchemasInIndexDefinitionsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException
-
supportsSchemasInPrivilegeDefinitions
public boolean supportsSchemasInPrivilegeDefinitions() throws java.sql.SQLException- Specified by:
supportsSchemasInPrivilegeDefinitionsin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.3+
- Throws:
java.sql.SQLException
-
supportsCatalogsInDataManipulation
public boolean supportsCatalogsInDataManipulation() throws java.sql.SQLException- Specified by:
supportsCatalogsInDataManipulationin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsCatalogsInProcedureCalls
public boolean supportsCatalogsInProcedureCalls() throws java.sql.SQLException- Specified by:
supportsCatalogsInProcedureCallsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsCatalogsInTableDefinitions
public boolean supportsCatalogsInTableDefinitions() throws java.sql.SQLException- Specified by:
supportsCatalogsInTableDefinitionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsCatalogsInIndexDefinitions
public boolean supportsCatalogsInIndexDefinitions() throws java.sql.SQLException- Specified by:
supportsCatalogsInIndexDefinitionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsCatalogsInPrivilegeDefinitions
public boolean supportsCatalogsInPrivilegeDefinitions() throws java.sql.SQLException- Specified by:
supportsCatalogsInPrivilegeDefinitionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsPositionedDelete
public boolean supportsPositionedDelete() throws java.sql.SQLExceptionWe support cursors for gets only it seems. I dont see a method to get a positioned delete.- Specified by:
supportsPositionedDeletein interfacejava.sql.DatabaseMetaData- Returns:
- false
- Throws:
java.sql.SQLException- if a database access error occurs
-
supportsPositionedUpdate
public boolean supportsPositionedUpdate() throws java.sql.SQLException- Specified by:
supportsPositionedUpdatein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSelectForUpdate
public boolean supportsSelectForUpdate() throws java.sql.SQLException- Specified by:
supportsSelectForUpdatein interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 6.5+
- Throws:
java.sql.SQLException
-
supportsStoredProcedures
public boolean supportsStoredProcedures() throws java.sql.SQLException- Specified by:
supportsStoredProceduresin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSubqueriesInComparisons
public boolean supportsSubqueriesInComparisons() throws java.sql.SQLException- Specified by:
supportsSubqueriesInComparisonsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSubqueriesInExists
public boolean supportsSubqueriesInExists() throws java.sql.SQLException- Specified by:
supportsSubqueriesInExistsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSubqueriesInIns
public boolean supportsSubqueriesInIns() throws java.sql.SQLException- Specified by:
supportsSubqueriesInInsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSubqueriesInQuantifieds
public boolean supportsSubqueriesInQuantifieds() throws java.sql.SQLException- Specified by:
supportsSubqueriesInQuantifiedsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsCorrelatedSubqueries
public boolean supportsCorrelatedSubqueries() throws java.sql.SQLException- Specified by:
supportsCorrelatedSubqueriesin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.1+
- Throws:
java.sql.SQLException
-
supportsUnion
public boolean supportsUnion() throws java.sql.SQLException- Specified by:
supportsUnionin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 6.3+
- Throws:
java.sql.SQLException
-
supportsUnionAll
public boolean supportsUnionAll() throws java.sql.SQLException- Specified by:
supportsUnionAllin interfacejava.sql.DatabaseMetaData- Returns:
- true if connected to PostgreSQL 7.1+
- Throws:
java.sql.SQLException
-
supportsOpenCursorsAcrossCommit
public boolean supportsOpenCursorsAcrossCommit() throws java.sql.SQLExceptionIn PostgreSQL, Cursors are only open within transactions.- Specified by:
supportsOpenCursorsAcrossCommitin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsOpenCursorsAcrossRollback
public boolean supportsOpenCursorsAcrossRollback() throws java.sql.SQLException- Specified by:
supportsOpenCursorsAcrossRollbackin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsOpenStatementsAcrossCommit
public boolean supportsOpenStatementsAcrossCommit() throws java.sql.SQLExceptionCan statements remain open across commits? They may, but this driver cannot guarantee that. In further reflection. we are talking a Statement object here, so the answer is yes, since the Statement is only a vehicle to ExecSQL()
- Specified by:
supportsOpenStatementsAcrossCommitin interfacejava.sql.DatabaseMetaData- Returns:
- true
- Throws:
java.sql.SQLException
-
supportsOpenStatementsAcrossRollback
public boolean supportsOpenStatementsAcrossRollback() throws java.sql.SQLExceptionCan statements remain open across rollbacks? They may, but this driver cannot guarantee that. In further contemplation, we are talking a Statement object here, so the answer is yes, since the Statement is only a vehicle to ExecSQL() in Connection
- Specified by:
supportsOpenStatementsAcrossRollbackin interfacejava.sql.DatabaseMetaData- Returns:
- true
- Throws:
java.sql.SQLException
-
getMaxCharLiteralLength
public int getMaxCharLiteralLength() throws java.sql.SQLException- Specified by:
getMaxCharLiteralLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxBinaryLiteralLength
public int getMaxBinaryLiteralLength() throws java.sql.SQLException- Specified by:
getMaxBinaryLiteralLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxColumnNameLength
public int getMaxColumnNameLength() throws java.sql.SQLException- Specified by:
getMaxColumnNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxColumnsInGroupBy
public int getMaxColumnsInGroupBy() throws java.sql.SQLException- Specified by:
getMaxColumnsInGroupByin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxColumnsInIndex
public int getMaxColumnsInIndex() throws java.sql.SQLException- Specified by:
getMaxColumnsInIndexin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxColumnsInOrderBy
public int getMaxColumnsInOrderBy() throws java.sql.SQLException- Specified by:
getMaxColumnsInOrderByin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxColumnsInSelect
public int getMaxColumnsInSelect() throws java.sql.SQLException- Specified by:
getMaxColumnsInSelectin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxColumnsInTable
public int getMaxColumnsInTable() throws java.sql.SQLExceptionWhat is the maximum number of columns in a table? From the CREATE TABLE reference page..."The new class is created as a heap with no initial data. A class can have no more than 1600 attributes (realistically, this is limited by the fact that tuple sizes must be less than 8192 bytes)..."
- Specified by:
getMaxColumnsInTablein interfacejava.sql.DatabaseMetaData- Returns:
- the max columns
- Throws:
java.sql.SQLException- if a database access error occurs
-
getMaxConnections
public int getMaxConnections() throws java.sql.SQLExceptionHow many active connection can we have at a time to this database? Well, since it depends on postmaster, which just does a listen() followed by an accept() and fork(), its basically very high. Unless the system runs out of processes, it can be 65535 (the number of aux. ports on a TCP/IP system). I will return 8192 since that is what even the largest system can realistically handle,- Specified by:
getMaxConnectionsin interfacejava.sql.DatabaseMetaData- Returns:
- the maximum number of connections
- Throws:
java.sql.SQLException- if a database access error occurs
-
getMaxCursorNameLength
public int getMaxCursorNameLength() throws java.sql.SQLException- Specified by:
getMaxCursorNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxIndexLength
public int getMaxIndexLength() throws java.sql.SQLException- Specified by:
getMaxIndexLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxSchemaNameLength
public int getMaxSchemaNameLength() throws java.sql.SQLException- Specified by:
getMaxSchemaNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxProcedureNameLength
public int getMaxProcedureNameLength() throws java.sql.SQLException- Specified by:
getMaxProcedureNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxCatalogNameLength
public int getMaxCatalogNameLength() throws java.sql.SQLException- Specified by:
getMaxCatalogNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxRowSize
public int getMaxRowSize() throws java.sql.SQLException- Specified by:
getMaxRowSizein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
doesMaxRowSizeIncludeBlobs
public boolean doesMaxRowSizeIncludeBlobs() throws java.sql.SQLException- Specified by:
doesMaxRowSizeIncludeBlobsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxStatementLength
public int getMaxStatementLength() throws java.sql.SQLException- Specified by:
getMaxStatementLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxStatements
public int getMaxStatements() throws java.sql.SQLException- Specified by:
getMaxStatementsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxTableNameLength
public int getMaxTableNameLength() throws java.sql.SQLException- Specified by:
getMaxTableNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxTablesInSelect
public int getMaxTablesInSelect() throws java.sql.SQLException- Specified by:
getMaxTablesInSelectin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getMaxUserNameLength
public int getMaxUserNameLength() throws java.sql.SQLException- Specified by:
getMaxUserNameLengthin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getDefaultTransactionIsolation
public int getDefaultTransactionIsolation() throws java.sql.SQLException- Specified by:
getDefaultTransactionIsolationin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsTransactions
public boolean supportsTransactions() throws java.sql.SQLException- Specified by:
supportsTransactionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsTransactionIsolationLevel
public boolean supportsTransactionIsolationLevel(int level) throws java.sql.SQLExceptionWe only support TRANSACTION_SERIALIZABLE and TRANSACTION_READ_COMMITTED before 8.0; from 8.0 READ_UNCOMMITTED and REPEATABLE_READ are accepted aliases for READ_COMMITTED.
- Specified by:
supportsTransactionIsolationLevelin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsDataDefinitionAndDataManipulationTransactions
public boolean supportsDataDefinitionAndDataManipulationTransactions() throws java.sql.SQLException- Specified by:
supportsDataDefinitionAndDataManipulationTransactionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsDataManipulationTransactionsOnly
public boolean supportsDataManipulationTransactionsOnly() throws java.sql.SQLException- Specified by:
supportsDataManipulationTransactionsOnlyin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
dataDefinitionCausesTransactionCommit
public boolean dataDefinitionCausesTransactionCommit() throws java.sql.SQLExceptionDoes a data definition statement within a transaction force the transaction to commit? It seems to mean something like:CREATE TABLE T (A INT); INSERT INTO T (A) VALUES (2); BEGIN; UPDATE T SET A = A + 1; CREATE TABLE X (A INT); SELECT A FROM T INTO X; COMMIT;
Does the CREATE TABLE call cause a commit? The answer is no.
- Specified by:
dataDefinitionCausesTransactionCommitin interfacejava.sql.DatabaseMetaData- Returns:
- true if so
- Throws:
java.sql.SQLException- if a database access error occurs
-
dataDefinitionIgnoredInTransactions
public boolean dataDefinitionIgnoredInTransactions() throws java.sql.SQLException- Specified by:
dataDefinitionIgnoredInTransactionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
escapeQuotes
protected java.lang.String escapeQuotes(java.lang.String s) throws java.sql.SQLExceptionTurn the provided value into a valid string literal for direct inclusion into a query. This includes the single quotes needed around it.- Parameters:
s- input value- Returns:
- string literal for direct inclusion into a query
- Throws:
java.sql.SQLException- if something wrong happens
-
getProcedures
public java.sql.ResultSet getProcedures(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern) throws java.sql.SQLException- Specified by:
getProceduresin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getProcedureColumns
public java.sql.ResultSet getProcedureColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern, java.lang.String columnNamePattern) throws java.sql.SQLException- Specified by:
getProcedureColumnsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getTables
public java.sql.ResultSet getTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String[] types) throws java.sql.SQLException- Specified by:
getTablesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getSchemas
public java.sql.ResultSet getSchemas() throws java.sql.SQLException- Specified by:
getSchemasin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getSchemas
public java.sql.ResultSet getSchemas(java.lang.String catalog, java.lang.String schemaPattern) throws java.sql.SQLException- Specified by:
getSchemasin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getCatalogs
public java.sql.ResultSet getCatalogs() throws java.sql.SQLException- Specified by:
getCatalogsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getTableTypes
public java.sql.ResultSet getTableTypes() throws java.sql.SQLException- Specified by:
getTableTypesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getColumns
public java.sql.ResultSet getColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern) throws java.sql.SQLException- Specified by:
getColumnsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getColumnPrivileges
public java.sql.ResultSet getColumnPrivileges(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String columnNamePattern) throws java.sql.SQLException- Specified by:
getColumnPrivilegesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getTablePrivileges
public java.sql.ResultSet getTablePrivileges(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern) throws java.sql.SQLException- Specified by:
getTablePrivilegesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
parseACLArray
private static java.util.List<java.lang.String> parseACLArray(java.lang.String aclString)
Parse an String of ACLs into a List of ACLs.
-
addACLPrivileges
private static void addACLPrivileges(java.lang.String acl, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<java.lang.String[]>>> privileges)Add the user described by the given acl to the Lists of users with the privileges described by the acl.
-
parseACL
public java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<java.lang.String[]>>> parseACL(java.lang.String aclArray, java.lang.String owner)Take the a String representing an array of ACLs and return a Map mapping the SQL permission name to a List of usernames who have that permission. For instance:SELECT -> user1 -> list of [grantor, grantable]- Parameters:
aclArray- ACL arrayowner- owner- Returns:
- a Map mapping the SQL permission name
-
getBestRowIdentifier
public java.sql.ResultSet getBestRowIdentifier(java.lang.String catalog, java.lang.String schema, java.lang.String table, int scope, boolean nullable) throws java.sql.SQLException- Specified by:
getBestRowIdentifierin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getVersionColumns
public java.sql.ResultSet getVersionColumns(java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException- Specified by:
getVersionColumnsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getPrimaryKeys
public java.sql.ResultSet getPrimaryKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException- Specified by:
getPrimaryKeysin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getPrimaryUniqueKeys
protected java.sql.ResultSet getPrimaryUniqueKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
getImportedExportedKeys
protected java.sql.ResultSet getImportedExportedKeys(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable) throws java.sql.SQLException- Parameters:
primaryCatalog- primary catalogprimarySchema- primary schemaprimaryTable- if provided will get the keys exported by this tableforeignCatalog- foreign catalogforeignSchema- foreign schemaforeignTable- if provided will get the keys imported by this table- Returns:
- ResultSet
- Throws:
java.sql.SQLException- if something wrong happens
-
getImportedKeys
public java.sql.ResultSet getImportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException- Specified by:
getImportedKeysin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getExportedKeys
public java.sql.ResultSet getExportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException- Specified by:
getExportedKeysin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getCrossReference
public java.sql.ResultSet getCrossReference(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable) throws java.sql.SQLException- Specified by:
getCrossReferencein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getTypeInfo
public java.sql.ResultSet getTypeInfo() throws java.sql.SQLException- Specified by:
getTypeInfoin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getIndexInfo
public java.sql.ResultSet getIndexInfo(java.lang.String catalog, java.lang.String schema, java.lang.String tableName, boolean unique, boolean approximate) throws java.sql.SQLException- Specified by:
getIndexInfoin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsResultSetType
public boolean supportsResultSetType(int type) throws java.sql.SQLException- Specified by:
supportsResultSetTypein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsResultSetConcurrency
public boolean supportsResultSetConcurrency(int type, int concurrency) throws java.sql.SQLException- Specified by:
supportsResultSetConcurrencyin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
ownUpdatesAreVisible
public boolean ownUpdatesAreVisible(int type) throws java.sql.SQLException- Specified by:
ownUpdatesAreVisiblein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
ownDeletesAreVisible
public boolean ownDeletesAreVisible(int type) throws java.sql.SQLException- Specified by:
ownDeletesAreVisiblein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
ownInsertsAreVisible
public boolean ownInsertsAreVisible(int type) throws java.sql.SQLException- Specified by:
ownInsertsAreVisiblein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
othersUpdatesAreVisible
public boolean othersUpdatesAreVisible(int type) throws java.sql.SQLException- Specified by:
othersUpdatesAreVisiblein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
othersDeletesAreVisible
public boolean othersDeletesAreVisible(int i) throws java.sql.SQLException- Specified by:
othersDeletesAreVisiblein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
othersInsertsAreVisible
public boolean othersInsertsAreVisible(int type) throws java.sql.SQLException- Specified by:
othersInsertsAreVisiblein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
updatesAreDetected
public boolean updatesAreDetected(int type) throws java.sql.SQLException- Specified by:
updatesAreDetectedin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
deletesAreDetected
public boolean deletesAreDetected(int i) throws java.sql.SQLException- Specified by:
deletesAreDetectedin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
insertsAreDetected
public boolean insertsAreDetected(int type) throws java.sql.SQLException- Specified by:
insertsAreDetectedin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsBatchUpdates
public boolean supportsBatchUpdates() throws java.sql.SQLException- Specified by:
supportsBatchUpdatesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getUDTs
public java.sql.ResultSet getUDTs(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern, int[] types) throws java.sql.SQLException- Specified by:
getUDTsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException- Specified by:
getConnectionin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
createMetaDataStatement
protected java.sql.Statement createMetaDataStatement() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
getMaxLogicalLobSize
public long getMaxLogicalLobSize() throws java.sql.SQLException- Specified by:
getMaxLogicalLobSizein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsRefCursors
public boolean supportsRefCursors() throws java.sql.SQLException- Specified by:
supportsRefCursorsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getRowIdLifetime
public java.sql.RowIdLifetime getRowIdLifetime() throws java.sql.SQLException- Specified by:
getRowIdLifetimein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsStoredFunctionsUsingCallSyntax
public boolean supportsStoredFunctionsUsingCallSyntax() throws java.sql.SQLException- Specified by:
supportsStoredFunctionsUsingCallSyntaxin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
autoCommitFailureClosesAllResultSets
public boolean autoCommitFailureClosesAllResultSets() throws java.sql.SQLException- Specified by:
autoCommitFailureClosesAllResultSetsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getClientInfoProperties
public java.sql.ResultSet getClientInfoProperties() throws java.sql.SQLException- Specified by:
getClientInfoPropertiesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException- Specified by:
isWrapperForin interfacejava.sql.Wrapper- Throws:
java.sql.SQLException
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException- Specified by:
unwrapin interfacejava.sql.Wrapper- Throws:
java.sql.SQLException
-
getFunctions
public java.sql.ResultSet getFunctions(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern) throws java.sql.SQLException- Specified by:
getFunctionsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getFunctionColumns
public java.sql.ResultSet getFunctionColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern, java.lang.String columnNamePattern) throws java.sql.SQLException- Specified by:
getFunctionColumnsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getPseudoColumns
public java.sql.ResultSet getPseudoColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern) throws java.sql.SQLException- Specified by:
getPseudoColumnsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
generatedKeyAlwaysReturned
public boolean generatedKeyAlwaysReturned() throws java.sql.SQLException- Specified by:
generatedKeyAlwaysReturnedin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsSavepoints
public boolean supportsSavepoints() throws java.sql.SQLException- Specified by:
supportsSavepointsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsNamedParameters
public boolean supportsNamedParameters() throws java.sql.SQLException- Specified by:
supportsNamedParametersin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsMultipleOpenResults
public boolean supportsMultipleOpenResults() throws java.sql.SQLException- Specified by:
supportsMultipleOpenResultsin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsGetGeneratedKeys
public boolean supportsGetGeneratedKeys() throws java.sql.SQLException- Specified by:
supportsGetGeneratedKeysin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getSuperTypes
public java.sql.ResultSet getSuperTypes(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern) throws java.sql.SQLException- Specified by:
getSuperTypesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getSuperTables
public java.sql.ResultSet getSuperTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern) throws java.sql.SQLException- Specified by:
getSuperTablesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getAttributes
public java.sql.ResultSet getAttributes(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern, java.lang.String attributeNamePattern) throws java.sql.SQLException- Specified by:
getAttributesin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsResultSetHoldability
public boolean supportsResultSetHoldability(int holdability) throws java.sql.SQLException- Specified by:
supportsResultSetHoldabilityin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getResultSetHoldability
public int getResultSetHoldability() throws java.sql.SQLException- Specified by:
getResultSetHoldabilityin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getDatabaseMajorVersion
public int getDatabaseMajorVersion() throws java.sql.SQLException- Specified by:
getDatabaseMajorVersionin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getDatabaseMinorVersion
public int getDatabaseMinorVersion() throws java.sql.SQLException- Specified by:
getDatabaseMinorVersionin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
getJDBCMajorVersion
public int getJDBCMajorVersion()
- Specified by:
getJDBCMajorVersionin interfacejava.sql.DatabaseMetaData
-
getJDBCMinorVersion
public int getJDBCMinorVersion()
- Specified by:
getJDBCMinorVersionin interfacejava.sql.DatabaseMetaData
-
getSQLStateType
public int getSQLStateType() throws java.sql.SQLException- Specified by:
getSQLStateTypein interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
locatorsUpdateCopy
public boolean locatorsUpdateCopy() throws java.sql.SQLException- Specified by:
locatorsUpdateCopyin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
supportsStatementPooling
public boolean supportsStatementPooling() throws java.sql.SQLException- Specified by:
supportsStatementPoolingin interfacejava.sql.DatabaseMetaData- Throws:
java.sql.SQLException
-
-