Class ExasolSqlDialect

  • All Implemented Interfaces:
    com.exasol.adapter.dialects.SqlDialect

    public class ExasolSqlDialect
    extends com.exasol.adapter.dialects.AbstractSqlDialect
    Exasol SQL dialect.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface com.exasol.adapter.dialects.SqlDialect

        com.exasol.adapter.dialects.SqlDialect.ExceptionHandlingMode, com.exasol.adapter.dialects.SqlDialect.NullSorting, com.exasol.adapter.dialects.SqlDialect.StructureElementSupport
    • Field Summary

      • Fields inherited from class com.exasol.adapter.dialects.AbstractSqlDialect

        connectionFactory, omitParenthesesMap, properties
    • Constructor Summary

      Constructors 
      Constructor Description
      ExasolSqlDialect​(com.exasol.adapter.jdbc.ConnectionFactory connectionFactory, com.exasol.adapter.AdapterProperties properties)
      Create a new instance of the ExasolSqlDialect.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String applyQuote​(java.lang.String identifier)  
      protected com.exasol.adapter.dialects.QueryRewriter createQueryRewriter()
      Create a query rewriter.
      protected com.exasol.adapter.jdbc.RemoteMetadataReader createRemoteMetadataReader()  
      com.exasol.adapter.capabilities.Capabilities getCapabilities()  
      com.exasol.adapter.dialects.SqlDialect.NullSorting getDefaultNullSorting()  
      java.lang.String getName()  
      com.exasol.adapter.sql.SqlNodeVisitor<java.lang.String> getSqlGenerationVisitor​(com.exasol.adapter.dialects.SqlGenerationContext context)  
      boolean requiresCatalogQualifiedTableNames​(com.exasol.adapter.dialects.SqlGenerationContext context)  
      boolean requiresSchemaQualifiedTableNames​(com.exasol.adapter.dialects.SqlGenerationContext context)  
      com.exasol.adapter.dialects.SqlDialect.StructureElementSupport supportsJdbcCatalogs()  
      com.exasol.adapter.dialects.SqlDialect.StructureElementSupport supportsJdbcSchemas()  
      void validateProperties()  
      • Methods inherited from class com.exasol.adapter.dialects.AbstractSqlDialect

        addAdditionalSupportedProperties, checkImportPropertyConsistency, createUnsupportedElementMessage, getAggregateFunctionAliases, getBinaryInfixFunctionAliases, getPrefixFunctionAliases, getScalarFunctionAliases, getStringLiteral, getSupportedProperties, getTableCatalogAndSchemaSeparator, omitParentheses, readSchemaMetadata, readSchemaMetadata, rewriteQuery, validateBooleanProperty, validateCastNumberToDecimalProperty, validateSupportedPropertiesList
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExasolSqlDialect

        public ExasolSqlDialect​(com.exasol.adapter.jdbc.ConnectionFactory connectionFactory,
                                com.exasol.adapter.AdapterProperties properties)
        Create a new instance of the ExasolSqlDialect.
        Parameters:
        connectionFactory - factory for the JDBC connection to the remote data source
        properties - adapter properties
    • Method Detail

      • getName

        public java.lang.String getName()
      • createRemoteMetadataReader

        protected com.exasol.adapter.jdbc.RemoteMetadataReader createRemoteMetadataReader()
        Specified by:
        createRemoteMetadataReader in class com.exasol.adapter.dialects.AbstractSqlDialect
      • createQueryRewriter

        protected com.exasol.adapter.dialects.QueryRewriter createQueryRewriter()
        Create a query rewriter.

        Virtual Schema for Exasol supports the following import variants which are represented by dedicated query re-writers:

        local
        Create a SELECT statement that is directly executed on the local Exasol database.
        IMPORT FROM EXA
        Create dedicated import statement for a remote Exasol database that is more efficient than a regular JDBC import.
        JDBC import
        Create a regular JDBC import
        Specified by:
        createQueryRewriter in class com.exasol.adapter.dialects.AbstractSqlDialect
      • supportsJdbcCatalogs

        public com.exasol.adapter.dialects.SqlDialect.StructureElementSupport supportsJdbcCatalogs()
      • supportsJdbcSchemas

        public com.exasol.adapter.dialects.SqlDialect.StructureElementSupport supportsJdbcSchemas()
      • getCapabilities

        public com.exasol.adapter.capabilities.Capabilities getCapabilities()
      • applyQuote

        public java.lang.String applyQuote​(java.lang.String identifier)
      • requiresCatalogQualifiedTableNames

        public boolean requiresCatalogQualifiedTableNames​(com.exasol.adapter.dialects.SqlGenerationContext context)
      • requiresSchemaQualifiedTableNames

        public boolean requiresSchemaQualifiedTableNames​(com.exasol.adapter.dialects.SqlGenerationContext context)
      • getDefaultNullSorting

        public com.exasol.adapter.dialects.SqlDialect.NullSorting getDefaultNullSorting()
      • validateProperties

        public void validateProperties()
                                throws com.exasol.adapter.dialects.PropertyValidationException
        Specified by:
        validateProperties in interface com.exasol.adapter.dialects.SqlDialect
        Overrides:
        validateProperties in class com.exasol.adapter.dialects.AbstractSqlDialect
        Throws:
        com.exasol.adapter.dialects.PropertyValidationException
      • getSqlGenerationVisitor

        public com.exasol.adapter.sql.SqlNodeVisitor<java.lang.String> getSqlGenerationVisitor​(com.exasol.adapter.dialects.SqlGenerationContext context)
        Specified by:
        getSqlGenerationVisitor in interface com.exasol.adapter.dialects.SqlDialect
        Overrides:
        getSqlGenerationVisitor in class com.exasol.adapter.dialects.AbstractSqlDialect