org.modeshape.jdbc

## Class ModeShapeMetaData

- java.lang.Object
- - org.modeshape.jdbc.JcrMetaData
  - - org.modeshape.jdbc.ModeShapeMetaData

- All Implemented Interfaces:
    DatabaseMetaData, Wrapper

      public class ModeShapeMetaData
      extends JcrMetaData

  Specialized implementation for ModeShape-specific features.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.modeshape.jdbc.JcrMetaData

      `JcrMetaData.PseudoPropertyDefinition`

  - ### Field Summary

    - ### Fields inherited from class org.modeshape.jdbc.JcrMetaData

      `DEFAULT_ZERO, NO_LIMIT, PSEUDO_COLUMN_DEFNS, PSEUDO_COLUMN_NAMES, WILDCARD`

    - ### 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 and Description
    `ModeShapeMetaData(JcrConnection connection)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `nullPlusNonNullIsNull()` ModeShape uses arithmetic operations in criteria, and in the current implementation if one operand is null then the operations returns the other.
    `boolean` | `nullsAreSortedAtEnd()` Assumed to be false for JCR implementations (meaning that sort order IS used), though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.
    `boolean` | `nullsAreSortedAtStart()` Assumed to be false for JCR implementations (meaning that sort order IS used), though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.
    `boolean` | `nullsAreSortedHigh()` Assumed to be false for JCR implementations, though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.
    `boolean` | `nullsAreSortedLow()` Assumed to be true for JCR implementations, though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.
    `boolean` | `supportsFullOuterJoins()` ModeShape does support `FULL OUTER JOIN`, so this method returns true when this driver connects to a ModeShape JCR repository.
    `boolean` | `supportsUnion()` ModeShape does support `UNION`, so this method returns true when this driver connects to a ModeShape JCR repository.
    `boolean` | `supportsUnionAll()` ModeShape does support `UNION ALL`, so this method returns true when this driver connects to a ModeShape JCR repository.

    - ### Methods inherited from class org.modeshape.jdbc.JcrMetaData

      `allProceduresAreCallable, allTablesAreSelectable, autoCommitFailureClosesAllResultSets, dataDefinitionCausesTransactionCommit, dataDefinitionIgnoredInTransactions, deletesAreDetected, doesMaxRowSizeIncludeBlobs, generatedKeyAlwaysReturned, getAttributes, getBestRowIdentifier, getCatalogs, getCatalogSeparator, getCatalogTerm, getClientInfoProperties, getColumnPrivileges, getColumns, getConnection, getCrossReference, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductUrl, getDatabaseProductVersion, getDefaultTransactionIsolation, getDriverMajorVersion, getDriverMinorVersion, getDriverName, getDriverVersion, getExportedKeys, getExtraNameCharacters, getFunctionColumns, getFunctions, getIdentifierQuoteString, getImportedKeys, getIndexInfo, getJDBCMajorVersion, getJDBCMinorVersion, getMaxBinaryLiteralLength, getMaxCatalogNameLength, getMaxCharLiteralLength, getMaxColumnNameLength, getMaxColumnsInGroupBy, getMaxColumnsInIndex, getMaxColumnsInOrderBy, getMaxColumnsInSelect, getMaxColumnsInTable, getMaxConnections, getMaxCursorNameLength, getMaxIndexLength, getMaxProcedureNameLength, getMaxRowSize, getMaxSchemaNameLength, getMaxStatementLength, getMaxStatements, getMaxTableNameLength, getMaxTablesInSelect, getMaxUserNameLength, getNumericFunctions, getPrimaryKeys, getProcedureColumns, getProcedures, getProcedureTerm, getPseudoColumns, getResultSetHoldability, getRowIdLifetime, getSchemas, getSchemas, getSchemaTerm, getSearchStringEscape, getSQLKeywords, getSQLStateType, getStringFunctions, getSuperTables, getSuperTypes, getSystemFunctions, getTablePrivileges, getTables, getTableTypes, getTimeDateFunctions, getTypeInfo, getUDTs, getURL, getUserName, getVersionColumns, insertsAreDetected, isCatalogAtStart, isReadOnly, isWrapperFor, locatorsUpdateCopy, othersDeletesAreVisible, othersInsertsAreVisible, othersUpdatesAreVisible, ownDeletesAreVisible, ownInsertsAreVisible, ownUpdatesAreVisible, storesLowerCaseIdentifiers, storesLowerCaseQuotedIdentifiers, storesMixedCaseIdentifiers, storesMixedCaseQuotedIdentifiers, storesUpperCaseIdentifiers, storesUpperCaseQuotedIdentifiers, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsANSI92EntryLevelSQL, supportsANSI92FullSQL, supportsANSI92IntermediateSQL, supportsBatchUpdates, supportsCatalogsInDataManipulation, supportsCatalogsInIndexDefinitions, supportsCatalogsInPrivilegeDefinitions, supportsCatalogsInProcedureCalls, supportsCatalogsInTableDefinitions, supportsColumnAliasing, supportsConvert, supportsConvert, supportsCoreSQLGrammar, supportsCorrelatedSubqueries, supportsDataDefinitionAndDataManipulationTransactions, supportsDataManipulationTransactionsOnly, supportsDifferentTableCorrelationNames, supportsExpressionsInOrderBy, supportsExtendedSQLGrammar, supportsGetGeneratedKeys, supportsGroupBy, supportsGroupByBeyondSelect, supportsGroupByUnrelated, supportsIntegrityEnhancementFacility, supportsLikeEscapeClause, supportsLimitedOuterJoins, supportsMinimumSQLGrammar, supportsMixedCaseIdentifiers, supportsMixedCaseQuotedIdentifiers, supportsMultipleOpenResults, supportsMultipleResultSets, supportsMultipleTransactions, supportsNamedParameters, supportsNonNullableColumns, supportsOpenCursorsAcrossCommit, supportsOpenCursorsAcrossRollback, supportsOpenStatementsAcrossCommit, supportsOpenStatementsAcrossRollback, supportsOrderByUnrelated, supportsOuterJoins, supportsPositionedDelete, supportsPositionedUpdate, supportsResultSetConcurrency, supportsResultSetHoldability, supportsResultSetType, supportsSavepoints, supportsSchemasInDataManipulation, supportsSchemasInIndexDefinitions, supportsSchemasInPrivilegeDefinitions, supportsSchemasInProcedureCalls, supportsSchemasInTableDefinitions, supportsSelectForUpdate, supportsStatementPooling, supportsStoredFunctionsUsingCallSyntax, supportsStoredProcedures, supportsSubqueriesInComparisons, supportsSubqueriesInExists, supportsSubqueriesInIns, supportsSubqueriesInQuantifieds, supportsTableCorrelationNames, supportsTransactionIsolationLevel, supportsTransactions, unwrap, updatesAreDetected, usesLocalFilePerTable, usesLocalFiles`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ModeShapeMetaData

          public ModeShapeMetaData(JcrConnection connection)

  - ### Method Detail

    - #### supportsFullOuterJoins

          public boolean supportsFullOuterJoins()

      ModeShape does support `FULL OUTER JOIN`, so this method returns true when this driver connects to a ModeShape JCR repository.

      Specified by:
        `supportsFullOuterJoins` in interface `DatabaseMetaData`
      Overrides:
        `supportsFullOuterJoins` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.supportsFullOuterJoins()`

    - #### supportsUnion

          public boolean supportsUnion()

      ModeShape does support `UNION`, so this method returns true when this driver connects to a ModeShape JCR repository.

      Specified by:
        `supportsUnion` in interface `DatabaseMetaData`
      Overrides:
        `supportsUnion` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.supportsUnion()`

    - #### supportsUnionAll

          public boolean supportsUnionAll()

      ModeShape does support `UNION ALL`, so this method returns true when this driver connects to a ModeShape JCR repository.

      Specified by:
        `supportsUnionAll` in interface `DatabaseMetaData`
      Overrides:
        `supportsUnionAll` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.supportsUnionAll()`

    - #### nullPlusNonNullIsNull

          public boolean nullPlusNonNullIsNull()

      ModeShape uses arithmetic operations in criteria, and in the current implementation if one operand is null then the operations returns the other. Therefore, 'null + X = X', so this method returns `false`.

      Specified by:
        `nullPlusNonNullIsNull` in interface `DatabaseMetaData`
      Overrides:
        `nullPlusNonNullIsNull` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.nullPlusNonNullIsNull()`

    - #### nullsAreSortedAtEnd

          public boolean nullsAreSortedAtEnd()

      Assumed to be false for JCR implementations (meaning that sort order IS used), though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.

      ModeShape definitely uses sort order. Therefore, this method always returns `false`.

      Specified by:
        `nullsAreSortedAtEnd` in interface `DatabaseMetaData`
      Overrides:
        `nullsAreSortedAtEnd` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.nullsAreSortedAtEnd()`

    - #### nullsAreSortedAtStart

          public boolean nullsAreSortedAtStart()

      Assumed to be false for JCR implementations (meaning that sort order IS used), though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.

      ModeShape definitely uses sort order. Therefore, this method always returns `false`.

      Specified by:
        `nullsAreSortedAtStart` in interface `DatabaseMetaData`
      Overrides:
        `nullsAreSortedAtStart` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.nullsAreSortedAtStart()`

    - #### nullsAreSortedHigh

          public boolean nullsAreSortedHigh()

      Assumed to be false for JCR implementations, though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.

      ModeShape sorts null values to be lower than non-null values. Therefore, this method returns `false`.

      Specified by:
        `nullsAreSortedHigh` in interface `DatabaseMetaData`
      Overrides:
        `nullsAreSortedHigh` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.nullsAreSortedHigh()`

    - #### nullsAreSortedLow

          public boolean nullsAreSortedLow()

      Assumed to be true for JCR implementations, though section 6.7.37 of JCR 2.0 specification says ordering of null values is implementation-determined.

      ModeShape sorts null values to be lower than non-null values. Therefore, this method returns `true`.

      Specified by:
        `nullsAreSortedLow` in interface `DatabaseMetaData`
      Overrides:
        `nullsAreSortedLow` in class `JcrMetaData`
      See Also:
        `DatabaseMetaData.nullsAreSortedLow()`

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.