from sqlglot import exp from sqlglot.dialects.postgres import Postgres from sqlglot.tokens import TokenType class Redshift(Postgres): time_format = "'YYYY-MM-DD HH:MI:SS'" time_mapping = { **Postgres.time_mapping, "MON": "%b", "HH": "%H", } class Tokenizer(Postgres.Tokenizer): ESCAPE = "\\" KEYWORDS = { **Postgres.Tokenizer.KEYWORDS, "GEOMETRY": TokenType.GEOMETRY, "GEOGRAPHY": TokenType.GEOGRAPHY, "HLLSKETCH": TokenType.HLLSKETCH, "SUPER": TokenType.SUPER, "TIME": TokenType.TIMESTAMP, "TIMETZ": TokenType.TIMESTAMPTZ, "VARBYTE": TokenType.BINARY, "SIMILAR TO": TokenType.SIMILAR_TO, } class Generator(Postgres.Generator): TYPE_MAPPING = { **Postgres.Generator.TYPE_MAPPING, exp.DataType.Type.BINARY: "VARBYTE", exp.DataType.Type.INT: "INTEGER", }