Model and Translator Properties
    • 06 Dec 2023
    • 4 Minutes to read
    • Dark
      Light
    • PDF

    Model and Translator Properties

    • Dark
      Light
    • PDF

    Article summary

     Following is information about Model and Translator properties  and the associated parameters for:

    • Available Data Model Properties for JDB

    • Available Translator Properties for JDBC

    • Available Translator Properties for Microsoft Active Directory

    Available Data Model Properties for JDBC

    ParameterDescriptionDefault
    catalogSee DatabaseMetaData.getTables [1]

    null

    schemaPatternSee DatabaseMetaData.getTables [1] null
    tableNamePatternSee DatabaseMetaData.getTables [1] null
    procedureNamePatternSee DatabaseMetaData.getProcedures [1] null
    tableTypesComma separated list - without spaces - of imported table types. See DatabaseMetaData.getTables [1] null
    excludeTablesA case-insensitive regular expression that when matched against a fully qualified table name [2] will exclude it from import.  Applied after table names are retrieved.  Use a negative look-ahead (?!<inclusion pattern>).* to act as an inclusion filter.
     Null
    excludeProceduresA case-insensitive regular expression that when matched against a fully qualified procedure name [2] will exclude it from import.  Applied after procedure names are retrieved.  Use a negative look-ahead (?!<inclusion pattern>).* to act as an inclusion filter. null
    useFullSchemaName

    When false, directs the importer to drop the source catalog/schema from the object name, so that the fully qualified name will be in the form of <model name>.<table name>

    Note: When false this may lead to objects with duplicate names when importing from multiple schemas, which results in an exception.  This option does not affect the name in source property.

     true
    importKeys

    true to import primary and foreign keys

    Note: Foreign keys to tables that are not imported will be ignored.

     true
    autoCreateUniqueConstraintstrue to create a unique constraint if one is not found for a foreign keys true
    importIndexestrue to import index/unique key/cardinality information false
    importApproximateIndexes

    true to import approximate index information.

    See DatabaseMetaData.getIndexInfo [1]

     true
    importProcedures

    true to import procedures and procedure columns.

    Note that it is not always possible to import procedure result set columns due to database limitations. It is also not currently possible to import overloaded procedures.

     false
    widenUnsignedTypes

    true to convert unsigned types to the next widest type. For example SQL Server reports tinyint as an unsigned type.

    With this option enabled, tinyint would be imported as a short instead of a byte.

     true
    quoteNameInSourcefalse will override the default and direct the service to create source queries using unquoted identifiers. true
    useProcedureSpecificName

    true will allow the import of overloaded procedures (which will normally result in a duplicate procedure error) by using the unique procedure specific name as the service name.

    This option will only work with JDBC 4.0 compatible drivers that report specific names.

     false

     

     useCatalogName

    true will use any non-null/non-empty catalog name as part of the name in source, e.g. "catalog"."schema"."table"."column", and in the service runtime name if useFullSchemaName is also true.

    false will not use the catalog name in either the name in source or the service runtime name. Should be set to false for sources that do not fully support a catalog concept, but return a non-null catalog name in their metadata - such as HSQL.

     true
     useQualifiedName

    true will use name qualification for both the service name and name in source as dictated by the useCatalogName and useFullSchemaName properties.  

    Set to false to disable all qualification for both the service name and the name in source, which effectively ignores the useCatalogName and useFullSchemaName properties.  

    Note: When false this may lead to objects with duplicate names when importing from multiple schemas, which results in an exception.

     true

     

     useAnyIndexCardinality

    true will use the maximum cardinality returned from DatabaseMetaData.getIndexInfo. importKeys or importIndexes needs to be enabled for this setting to have an effect.

    This allows for better stats gathering from sources that don’t support returning a statistical index.

     False
     importStatistics

    true will use database dependent logic to determine the cardinality if none is determined.

    Not yet supported by all database types – currently only supported by Oracle and MySQL.

     False

     importRowIdAsBinary

    true will import RowId columns as varbinary values.

     False

     [1] JavaDoc for DatabaseMetaData


    [2] The fully qualified name for exclusion is based upon the settings of the translator and the particulars of the database. All of the applicable name parts used by the translator settings (see useQualifiedName and useCatalogName) including catalog, schema, table will be combined as catalogName.schemaName.tableName with no quoting. For example Oracle does not report a catalog, so the name used with default settings for comparison would be just schemaName.tableName.

    Available Translator Properties for JDBC

    ParameterDescriptionDefault
    DatabaseTimeZoneThe time zone of the database. Used when fetching date, time, or timestamp values. The system default time zone
    DatabaseVersionThe specific database version. Used to further tune pushdown support.

    The base supported version or the version derived from the DatabaseMetadata.getDatabaseProductVersion string. Automatic detection requires a Connection.

    If there are circumstances where you are getting an exception from capabilities being unavailable (most likely due to an issue obtaining a Connection), then set DatabaseVersion property.

    Use the JDBCExecutionFactory.usesDatabaseVersion() method to control whether your translator requires a connection to determine capabilities.

    TrimStringsTrue to trim trailing whitespace from fixed length character strings. Note that the service only has a string, or varchar, type that treats trailing whitespace as meaningful. false
    UseBindVariablesTrue indicates that PreparedStatements should be used and that literal values in the source query should be replaced with bind variables. If false only LOB values will trigger the use of PreparedStatements. true
    UseCommentsInSourceQuery This will embed a leading comment with session/request id in the source SQL for informational purposes. Can be customized with the CommentFormat property. false
    CommentFormat

    MessageFormat string to be used if UseCommentsInSourceQuery is enabled.

    Available properties:

     0 - session id string

     1 - parent request id string

     2 - request part id string

     3 - execution count id string

    4 - user name string

    5 - VDB name string

    6 - VDB version integer

    7 - is transactional Boolean

     
    MaxPreparedInsertBatchSizeThe max size of a prepared insert batch. 2048
    StructRetrieval

    Struct retrieval mode can be one of

    OBJECT - getObject value returned

    COPY - returned as a SerialStruct

    ARRAY - returned as an Array

     OBJECT

     

     EnableDependentJoinsFor sources that support temporary tables (DB2, Derby, H2, HSQL 2.0+, MySQL 5.0+, Oracle, PostgreSQL, SQLServer, Sybase) allow dependent join pushdown false

    Available Translator Properties for Microsoft Active Directory

    ParameterDescriptionDefault
    SearchDefaultBaseDNDefault Base DN for LDAP Searches Null
    SearchDefaultScopeDefault Scope for LDAP Searches. Can be one of SUBTREE_SCOPE, OBJECT_SCOPE, ONELEVEL_SCOPE.ONELEVEL_SCOPE
    RestrictToObjectClassRestrict Searches to objectClass named in the Name field for a tableFalse
    UsePaginationUse a PagedResultsControl to page through large results. This is not supported by all directory servers.False
    ExceptionOnSizeLimitExceededSet to true to throw an exception when a SizeLimitExceededException is received and a LIMIT is not properly enforced.False

    Was this article helpful?