diff options
Diffstat (limited to 'sqlglot/expressions.py')
-rw-r--r-- | sqlglot/expressions.py | 58 |
1 files changed, 39 insertions, 19 deletions
diff --git a/sqlglot/expressions.py b/sqlglot/expressions.py index c207751..57b8bfa 100644 --- a/sqlglot/expressions.py +++ b/sqlglot/expressions.py @@ -3309,6 +3309,7 @@ class Pivot(Expression): "using": False, "group": False, "columns": False, + "include_nulls": False, } @@ -3397,23 +3398,16 @@ class DataType(Expression): BOOLEAN = auto() CHAR = auto() DATE = auto() + DATEMULTIRANGE = auto() + DATERANGE = auto() DATETIME = auto() DATETIME64 = auto() - ENUM = auto() - INT4RANGE = auto() - INT4MULTIRANGE = auto() - INT8RANGE = auto() - INT8MULTIRANGE = auto() - NUMRANGE = auto() - NUMMULTIRANGE = auto() - TSRANGE = auto() - TSMULTIRANGE = auto() - TSTZRANGE = auto() - TSTZMULTIRANGE = auto() - DATERANGE = auto() - DATEMULTIRANGE = auto() DECIMAL = auto() DOUBLE = auto() + ENUM = auto() + ENUM8 = auto() + ENUM16 = auto() + FIXEDSTRING = auto() FLOAT = auto() GEOGRAPHY = auto() GEOMETRY = auto() @@ -3421,23 +3415,31 @@ class DataType(Expression): HSTORE = auto() IMAGE = auto() INET = auto() - IPADDRESS = auto() - IPPREFIX = auto() INT = auto() INT128 = auto() INT256 = auto() + INT4MULTIRANGE = auto() + INT4RANGE = auto() + INT8MULTIRANGE = auto() + INT8RANGE = auto() INTERVAL = auto() + IPADDRESS = auto() + IPPREFIX = auto() JSON = auto() JSONB = auto() LONGBLOB = auto() LONGTEXT = auto() + LOWCARDINALITY = auto() MAP = auto() MEDIUMBLOB = auto() MEDIUMTEXT = auto() MONEY = auto() NCHAR = auto() + NESTED = auto() NULL = auto() NULLABLE = auto() + NUMMULTIRANGE = auto() + NUMRANGE = auto() NVARCHAR = auto() OBJECT = auto() ROWVERSION = auto() @@ -3450,19 +3452,24 @@ class DataType(Expression): SUPER = auto() TEXT = auto() TIME = auto() + TIMETZ = auto() TIMESTAMP = auto() - TIMESTAMPTZ = auto() TIMESTAMPLTZ = auto() + TIMESTAMPTZ = auto() TINYINT = auto() + TSMULTIRANGE = auto() + TSRANGE = auto() + TSTZMULTIRANGE = auto() + TSTZRANGE = auto() UBIGINT = auto() UINT = auto() - USMALLINT = auto() - UTINYINT = auto() - UNKNOWN = auto() # Sentinel value, useful for type annotation UINT128 = auto() UINT256 = auto() UNIQUEIDENTIFIER = auto() + UNKNOWN = auto() # Sentinel value, useful for type annotation USERDEFINED = "USER-DEFINED" + USMALLINT = auto() + UTINYINT = auto() UUID = auto() VARBINARY = auto() VARCHAR = auto() @@ -3495,6 +3502,7 @@ class DataType(Expression): TEMPORAL_TYPES = { Type.TIME, + Type.TIMETZ, Type.TIMESTAMP, Type.TIMESTAMPTZ, Type.TIMESTAMPLTZ, @@ -3858,6 +3866,18 @@ class TimeUnit(Expression): super().__init__(**args) +# https://www.oracletutorial.com/oracle-basics/oracle-interval/ +# https://trino.io/docs/current/language/types.html#interval-year-to-month +class IntervalYearToMonthSpan(Expression): + arg_types = {} + + +# https://www.oracletutorial.com/oracle-basics/oracle-interval/ +# https://trino.io/docs/current/language/types.html#interval-day-to-second +class IntervalDayToSecondSpan(Expression): + arg_types = {} + + class Interval(TimeUnit): arg_types = {"this": False, "unit": False} |