summaryrefslogtreecommitdiffstats
path: root/sqlglot/expressions.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/expressions.py')
-rw-r--r--sqlglot/expressions.py58
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}