Module: Upkeep::SQLGlot::Dialect

Defined in:
lib/upkeep/sqlglot.rb

Constant Summary collapse

NAMES =
%w[
  ansi athena bigquery clickhouse databricks doris dremio drill druid
  duckdb exasol fabric hive materialize mysql oracle postgres presto prql
  redshift risingwave singlestore snowflake spark sqlite starrocks tableau
  teradata trino tsql
].freeze
ALIASES =
{
  "mariadb" => "mysql",
  "mssql" => "tsql",
  "postgresql" => "postgres",
  "sqlserver" => "tsql"
}.freeze

Class Method Summary collapse

Class Method Details

.resolve(name) ⇒ Object

Raises:

  • (ArgumentError)


36
37
38
39
40
41
42
43
44
# File 'lib/upkeep/sqlglot.rb', line 36

def resolve(name)
  return nil if name.nil?

  key = name.to_s.downcase.strip
  return key if NAMES.include?(key)
  return ALIASES.fetch(key) if ALIASES.key?(key)

  raise ArgumentError, "Unknown SQL dialect: #{name.inspect}"
end