In SQL, three part naming refers to identifying tables using <catalog>.<schema>.<table>. Columns would be identified by <catalog>.<schema>.<table>.<column>.

Note: The <catalog> and <schema> can be omitted if your driver or data sources is able to resolve the referenced item without the omitted information.

Some data sources only support <catalog>.<table>, without the notion of schemas. SimbaEngine provides support for both of these situations, in fact the Ultralight sample provides support for three part naming while the Quickstart sample does not support schemas, only providing two part naming.

By default, drivers built with the SimbaEngine SDK will indicate that the drivers support schemas. Note that the following steps are for the C++ DSI, however the steps are essentially the same for the Java and .Net DSIs.

To disable support for schemas, follow the below steps. To enable schemas, follow the below steps but do the inverse of each step.

With SQLEngine

1) In your IConnection subclass, use the DSIPropertyUtilities::SetSchemaSupport() function to set the correct properties to indicate your driver does not support schemas.
2) In your IMetadataHelper class, do not fill in the m_schema field of the Identifiers for both GetNextProcedure() or GetNextTable().
3) Your DSIExtSqlDataEngine subclass should ignore the in_schemaName argument for both OpenTable() and OpenProcedure().
4) Your DSIExtResultSet subclass should not return a schema name for the GetSchemaName() function.
5) Your DSIExtResultSet subclass columns should not set a schema name for the DSIColumnMetadata::m_schemaName field.

Without SQLEngine

1) In your IConnection subclass, use the DSIPropertyUtilities::SetSchemaSupport() function to set the correct properties to indicate your driver does not support schemas.
2) In your catalog metadata sources, any columns referring to schema names should return NULL. The DSI_SCHEMAONLY_METADATA metadata source should return an empty result set.
3) Your IDataEngine and/or IQueryExecutor should ignore schemas in any SQL queries, or should report an error indicating schemas are not supported.
4) Your IResultSet subclass columns should not set a schema name for the DSIColumnMetadata::m_schemaName field.