// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_sql_DatabaseMetaData__
#define __java_sql_DatabaseMetaData__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace sql
    {
      class DatabaseMetaData;
      class Connection;
      class ResultSet;
    }
  }
};

class ::java::sql::DatabaseMetaData : public ::java::lang::Object
{
public:
  virtual jboolean allProceduresAreCallable () = 0;
  virtual jboolean allTablesAreSelectable () = 0;
  virtual ::java::lang::String *getURL () = 0;
  virtual ::java::lang::String *getUserName () = 0;
  virtual jboolean isReadOnly () = 0;
  virtual jboolean nullsAreSortedHigh () = 0;
  virtual jboolean nullsAreSortedLow () = 0;
  virtual jboolean nullsAreSortedAtStart () = 0;
  virtual jboolean nullsAreSortedAtEnd () = 0;
  virtual ::java::lang::String *getDatabaseProductName () = 0;
  virtual ::java::lang::String *getDatabaseProductVersion () = 0;
  virtual ::java::lang::String *getDriverName () = 0;
  virtual ::java::lang::String *getDriverVersion () = 0;
  virtual jint getDriverMajorVersion () = 0;
  virtual jint getDriverMinorVersion () = 0;
  virtual jboolean usesLocalFiles () = 0;
  virtual jboolean usesLocalFilePerTable () = 0;
  virtual jboolean supportsMixedCaseIdentifiers () = 0;
  virtual jboolean storesUpperCaseIdentifiers () = 0;
  virtual jboolean storesLowerCaseIdentifiers () = 0;
  virtual jboolean storesMixedCaseIdentifiers () = 0;
  virtual jboolean supportsMixedCaseQuotedIdentifiers () = 0;
  virtual jboolean storesUpperCaseQuotedIdentifiers () = 0;
  virtual jboolean storesLowerCaseQuotedIdentifiers () = 0;
  virtual jboolean storesMixedCaseQuotedIdentifiers () = 0;
  virtual ::java::lang::String *getIdentifierQuoteString () = 0;
  virtual ::java::lang::String *getSQLKeywords () = 0;
  virtual ::java::lang::String *getNumericFunctions () = 0;
  virtual ::java::lang::String *getStringFunctions () = 0;
  virtual ::java::lang::String *getSystemFunctions () = 0;
  virtual ::java::lang::String *getTimeDateFunctions () = 0;
  virtual ::java::lang::String *getSearchStringEscape () = 0;
  virtual ::java::lang::String *getExtraNameCharacters () = 0;
  virtual jboolean supportsAlterTableWithAddColumn () = 0;
  virtual jboolean supportsAlterTableWithDropColumn () = 0;
  virtual jboolean supportsColumnAliasing () = 0;
  virtual jboolean nullPlusNonNullIsNull () = 0;
  virtual jboolean supportsConvert () = 0;
  virtual jboolean supportsConvert (jint, jint) = 0;
  virtual jboolean supportsTableCorrelationNames () = 0;
  virtual jboolean supportsDifferentTableCorrelationNames () = 0;
  virtual jboolean supportsExpressionsInOrderBy () = 0;
  virtual jboolean supportsOrderByUnrelated () = 0;
  virtual jboolean supportsGroupBy () = 0;
  virtual jboolean supportsGroupByUnrelated () = 0;
  virtual jboolean supportsGroupByBeyondSelect () = 0;
  virtual jboolean supportsLikeEscapeClause () = 0;
  virtual jboolean supportsMultipleResultSets () = 0;
  virtual jboolean supportsMultipleTransactions () = 0;
  virtual jboolean supportsNonNullableColumns () = 0;
  virtual jboolean supportsMinimumSQLGrammar () = 0;
  virtual jboolean supportsCoreSQLGrammar () = 0;
  virtual jboolean supportsExtendedSQLGrammar () = 0;
  virtual jboolean supportsANSI92EntryLevelSQL () = 0;
  virtual jboolean supportsANSI92IntermediateSQL () = 0;
  virtual jboolean supportsANSI92FullSQL () = 0;
  virtual jboolean supportsIntegrityEnhancementFacility () = 0;
  virtual jboolean supportsOuterJoins () = 0;
  virtual jboolean supportsFullOuterJoins () = 0;
  virtual jboolean supportsLimitedOuterJoins () = 0;
  virtual ::java::lang::String *getSchemaTerm () = 0;
  virtual ::java::lang::String *getProcedureTerm () = 0;
  virtual ::java::lang::String *getCatalogTerm () = 0;
  virtual jboolean isCatalogAtStart () = 0;
  virtual ::java::lang::String *getCatalogSeparator () = 0;
  virtual jboolean supportsSchemasInDataManipulation () = 0;
  virtual jboolean supportsSchemasInProcedureCalls () = 0;
  virtual jboolean supportsSchemasInTableDefinitions () = 0;
  virtual jboolean supportsSchemasInIndexDefinitions () = 0;
  virtual jboolean supportsSchemasInPrivilegeDefinitions () = 0;
  virtual jboolean supportsCatalogsInDataManipulation () = 0;
  virtual jboolean supportsCatalogsInProcedureCalls () = 0;
  virtual jboolean supportsCatalogsInTableDefinitions () = 0;
  virtual jboolean supportsCatalogsInIndexDefinitions () = 0;
  virtual jboolean supportsCatalogsInPrivilegeDefinitions () = 0;
  virtual jboolean supportsPositionedDelete () = 0;
  virtual jboolean supportsPositionedUpdate () = 0;
  virtual jboolean supportsSelectForUpdate () = 0;
  virtual jboolean supportsStoredProcedures () = 0;
  virtual jboolean supportsSubqueriesInComparisons () = 0;
  virtual jboolean supportsSubqueriesInExists () = 0;
  virtual jboolean supportsSubqueriesInIns () = 0;
  virtual jboolean supportsSubqueriesInQuantifieds () = 0;
  virtual jboolean supportsCorrelatedSubqueries () = 0;
  virtual jboolean supportsUnion () = 0;
  virtual jboolean supportsUnionAll () = 0;
  virtual jboolean supportsOpenCursorsAcrossCommit () = 0;
  virtual jboolean supportsOpenCursorsAcrossRollback () = 0;
  virtual jboolean supportsOpenStatementsAcrossCommit () = 0;
  virtual jboolean supportsOpenStatementsAcrossRollback () = 0;
  virtual jint getMaxBinaryLiteralLength () = 0;
  virtual jint getMaxCharLiteralLength () = 0;
  virtual jint getMaxColumnNameLength () = 0;
  virtual jint getMaxColumnsInGroupBy () = 0;
  virtual jint getMaxColumnsInIndex () = 0;
  virtual jint getMaxColumnsInOrderBy () = 0;
  virtual jint getMaxColumnsInSelect () = 0;
  virtual jint getMaxColumnsInTable () = 0;
  virtual jint getMaxConnections () = 0;
  virtual jint getMaxCursorNameLength () = 0;
  virtual jint getMaxIndexLength () = 0;
  virtual jint getMaxSchemaNameLength () = 0;
  virtual jint getMaxProcedureNameLength () = 0;
  virtual jint getMaxCatalogNameLength () = 0;
  virtual jint getMaxRowSize () = 0;
  virtual jboolean doesMaxRowSizeIncludeBlobs () = 0;
  virtual jint getMaxStatementLength () = 0;
  virtual jint getMaxStatements () = 0;
  virtual jint getMaxTableNameLength () = 0;
  virtual jint getMaxTablesInSelect () = 0;
  virtual jint getMaxUserNameLength () = 0;
  virtual jint getDefaultTransactionIsolation () = 0;
  virtual jboolean supportsTransactions () = 0;
  virtual jboolean supportsTransactionIsolationLevel (jint) = 0;
  virtual jboolean supportsDataDefinitionAndDataManipulationTransactions () = 0;
  virtual jboolean supportsDataManipulationTransactionsOnly () = 0;
  virtual jboolean dataDefinitionCausesTransactionCommit () = 0;
  virtual jboolean dataDefinitionIgnoredInTransactions () = 0;
  virtual ::java::sql::ResultSet *getProcedures (::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getProcedureColumns (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getTables (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String *> *) = 0;
  virtual ::java::sql::ResultSet *getSchemas () = 0;
  virtual ::java::sql::ResultSet *getCatalogs () = 0;
  virtual ::java::sql::ResultSet *getTableTypes () = 0;
  virtual ::java::sql::ResultSet *getColumns (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getColumnPrivileges (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getTablePrivileges (::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getBestRowIdentifier (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint, jboolean) = 0;
  virtual ::java::sql::ResultSet *getVersionColumns (::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getPrimaryKeys (::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getImportedKeys (::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getExportedKeys (::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getCrossReference (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::sql::ResultSet *getTypeInfo () = 0;
  virtual ::java::sql::ResultSet *getIndexInfo (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean) = 0;
  virtual jboolean supportsResultSetType (jint) = 0;
  virtual jboolean supportsResultSetConcurrency (jint, jint) = 0;
  virtual jboolean ownUpdatesAreVisible (jint) = 0;
  virtual jboolean ownDeletesAreVisible (jint) = 0;
  virtual jboolean ownInsertsAreVisible (jint) = 0;
  virtual jboolean othersUpdatesAreVisible (jint) = 0;
  virtual jboolean othersDeletesAreVisible (jint) = 0;
  virtual jboolean othersInsertsAreVisible (jint) = 0;
  virtual jboolean updatesAreDetected (jint) = 0;
  virtual jboolean deletesAreDetected (jint) = 0;
  virtual jboolean insertsAreDetected (jint) = 0;
  virtual jboolean supportsBatchUpdates () = 0;
  virtual ::java::sql::ResultSet *getUDTs (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jintArray) = 0;
  virtual ::java::sql::Connection *getConnection () = 0;
  static const jint bestRowUnknown = 0L;
  static const jint bestRowNotPseudo = 1L;
  static const jint bestRowPseudo = 2L;
  static const jint bestRowTemporary = 0L;
  static const jint bestRowTransaction = 1L;
  static const jint bestRowSession = 2L;
  static const jint procedureResultUnknown = 0L;
  static const jint procedureNoResult = 1L;
  static const jint procedureReturnsResult = 2L;
  static const jint procedureColumnUnknown = 0L;
  static const jint procedureColumnIn = 1L;
  static const jint procedureColumnInOut = 2L;
  static const jint procedureColumnOut = 4L;
  static const jint procedureColumnReturn = 5L;
  static const jint procedureColumnResult = 3L;
  static const jint procedureNoNulls = 0L;
  static const jint procedureNullable = 1L;
  static const jint procedureNullableUnknown = 2L;
  static const jint columnNoNulls = 0L;
  static const jint columnNullable = 1L;
  static const jint columnNullableUnknown = 2L;
  static const jint versionColumnUnknown = 0L;
  static const jint versionColumnNotPseudo = 1L;
  static const jint versionColumnPseudo = 2L;
  static const jint importedKeyCascade = 0L;
  static const jint importedKeyRestrict = 1L;
  static const jint importedKeySetNull = 2L;
  static const jint importedKeyNoAction = 3L;
  static const jint importedKeySetDefault = 4L;
  static const jint importedKeyInitiallyDeferred = 5L;
  static const jint importedKeyInitiallyImmediate = 6L;
  static const jint importedKeyNotDeferrable = 7L;
  static const jint typeNoNulls = 0L;
  static const jint typeNullable = 1L;
  static const jint typeNullableUnknown = 2L;
  static const jint typePredNone = 0L;
  static const jint typePredChar = 1L;
  static const jint typePredBasic = 2L;
  static const jint typeSearchable = 3L;
  static const jint tableIndexStatistic = 0L;
  static const jint tableIndexClustered = 1L;
  static const jint tableIndexHashed = 2L;
  static const jint tableIndexOther = 3L;

  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif /* __java_sql_DatabaseMetaData__ */
