Class AggregatedDialect

Object
org.apache.spark.sql.jdbc.JdbcDialect
org.apache.spark.sql.jdbc.AggregatedDialect
All Implemented Interfaces:
Serializable, org.apache.spark.internal.Logging, scala.Serializable

public class AggregatedDialect extends JdbcDialect
AggregatedDialect can unify multiple dialects into one virtual Dialect. Dialects are tried in order, and the first dialect that does not return a neutral element will win.

param: dialects List of dialects.

See Also:
  • Constructor Details

    • AggregatedDialect

      public AggregatedDialect(scala.collection.immutable.List<JdbcDialect> dialects)
  • Method Details

    • canHandle

      public boolean canHandle(String url)
      Description copied from class: JdbcDialect
      Check if this dialect instance can handle a certain jdbc url.
      Specified by:
      canHandle in class JdbcDialect
      Parameters:
      url - the jdbc url.
      Returns:
      True if the dialect can be applied on the given jdbc url.
    • getCatalystType

      public scala.Option<DataType> getCatalystType(int sqlType, String typeName, int size, MetadataBuilder md)
      Description copied from class: JdbcDialect
      Get the custom datatype mapping for the given jdbc meta information.
      Overrides:
      getCatalystType in class JdbcDialect
      Parameters:
      sqlType - The sql type (see java.sql.Types)
      typeName - The sql type name (e.g. "BIGINT UNSIGNED")
      size - The size of the type.
      md - Result metadata associated with this type.
      Returns:
      The actual DataType (subclasses of DataType) or null if the default type mapping should be used.
    • getJDBCType

      public scala.Option<JdbcType> getJDBCType(DataType dt)
      Description copied from class: JdbcDialect
      Retrieve the jdbc / sql type for a given datatype.
      Overrides:
      getJDBCType in class JdbcDialect
      Parameters:
      dt - The datatype (e.g. StringType)
      Returns:
      The new JdbcType if there is an override for this DataType
    • getSchemaQuery

      public String getSchemaQuery(String table)
      Description copied from class: JdbcDialect
      The SQL query that should be used to discover the schema of a table. It only needs to ensure that the result set has the same schema as the table, such as by calling "SELECT * ...". Dialects can override this method to return a query that works best in a particular database.
      Overrides:
      getSchemaQuery in class JdbcDialect
      Parameters:
      table - The name of the table.
      Returns:
      The SQL query to use for discovering the schema.
    • getTableExistsQuery

      public String getTableExistsQuery(String table)
      Description copied from class: JdbcDialect
      Get the SQL query that should be used to find if the given table exists. Dialects can override this method to return a query that works best in a particular database.
      Overrides:
      getTableExistsQuery in class JdbcDialect
      Parameters:
      table - The name of the table.
      Returns:
      The SQL query to use for checking the table.
    • getTruncateQuery

      public String getTruncateQuery(String table, scala.Option<Object> cascade)
      The SQL query used to truncate a table.
      Overrides:
      getTruncateQuery in class JdbcDialect
      Parameters:
      table - The table to truncate.
      cascade - Whether or not to cascade the truncation. Default value is the value of isCascadingTruncateTable()
      Returns:
      The SQL query to use for truncating a table
    • isCascadingTruncateTable

      public scala.Option<Object> isCascadingTruncateTable()
      Description copied from class: JdbcDialect
      Return Some[true] iff TRUNCATE TABLE causes cascading default. Some[true] : TRUNCATE TABLE causes cascading. Some[false] : TRUNCATE TABLE does not cause cascading. None: The behavior of TRUNCATE TABLE is unknown (default).
      Overrides:
      isCascadingTruncateTable in class JdbcDialect
      Returns:
      (undocumented)
    • quoteIdentifier

      public String quoteIdentifier(String colName)
      Description copied from class: JdbcDialect
      Quotes the identifier. This is used to put quotes around the identifier in case the column name is a reserved keyword, or in case it contains characters that require quotes (e.g. space).
      Overrides:
      quoteIdentifier in class JdbcDialect
      Parameters:
      colName - (undocumented)
      Returns:
      (undocumented)