You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by cg...@apache.org on 2023/02/08 12:33:16 UTC
[drill] branch master updated: DRILL-8379: Update Calcite to 1.33.0 (#2749)
This is an automated email from the ASF dual-hosted git repository.
cgivre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git
The following commit(s) were added to refs/heads/master by this push:
new 3bc0c988ef DRILL-8379: Update Calcite to 1.33.0 (#2749)
3bc0c988ef is described below
commit 3bc0c988efe732e0b20f0f589b80406a21630b5d
Author: Volodymyr Vysotskyi <vv...@gmail.com>
AuthorDate: Wed Feb 8 14:33:11 2023 +0200
DRILL-8379: Update Calcite to 1.33.0 (#2749)
---
.../src/main/codegen/data/DateIntervalFunc.tdd | 2 +-
exec/java-exec/src/main/codegen/data/Parser.tdd | 1583 ++++++++++----------
.../TimestampDiffFunction.java | 6 +-
.../drill/exec/planner/logical/DrillOptiq.java | 1 +
.../exec/planner/logical/DrillRelFactories.java | 2 +-
.../drill/exec/planner/physical/PrelFactories.java | 5 +-
.../exec/planner/sql/DrillConvertletTable.java | 5 +-
.../drill/exec/planner/sql/TypeInferenceUtils.java | 2 +-
.../fn/impl/TestTimestampAddDiffFunctions.java | 20 +-
.../org/apache/drill/exec/sql/TestAnalyze.java | 6 +-
exec/jdbc-all/pom.xml | 4 +-
pom.xml | 6 +-
12 files changed, 841 insertions(+), 801 deletions(-)
diff --git a/exec/java-exec/src/main/codegen/data/DateIntervalFunc.tdd b/exec/java-exec/src/main/codegen/data/DateIntervalFunc.tdd
index 190ae1ef9a..12d66b284b 100644
--- a/exec/java-exec/src/main/codegen/data/DateIntervalFunc.tdd
+++ b/exec/java-exec/src/main/codegen/data/DateIntervalFunc.tdd
@@ -21,7 +21,7 @@
{intervals: ["Interval", "IntervalDay", "IntervalYear", "Int", "BigInt"] },
{truncInputTypes: ["Date", "TimeStamp", "Time", "Interval", "IntervalDay", "IntervalYear"] },
{truncUnits : ["Second", "Minute", "Hour", "Day", "Month", "Year", "Week", "Quarter", "Decade", "Century", "Millennium" ] },
- {timestampDiffUnits : ["Nanosecond", "Microsecond", "Second", "Minute", "Hour", "Day", "Month", "Year", "Week", "Quarter"] },
+ {timestampDiffUnits : ["Nanosecond", "Microsecond", "Millisecond", "Second", "Minute", "Hour", "Day", "Month", "Year", "Week", "Quarter"] },
{
varCharToDate: [
diff --git a/exec/java-exec/src/main/codegen/data/Parser.tdd b/exec/java-exec/src/main/codegen/data/Parser.tdd
index 60578b93ac..98107cd44c 100644
--- a/exec/java-exec/src/main/codegen/data/Parser.tdd
+++ b/exec/java-exec/src/main/codegen/data/Parser.tdd
@@ -118,780 +118,824 @@
# List of keywords from "keywords" section that are not reserved.
# Copied from calcite-core config.fmpp
# For details please see comment under CALCITE-2405.
- nonReservedKeywords: [
- "A"
- "ABSENT"
- "ABSOLUTE"
- "ACTION"
- "ADA"
- "ADD"
- "ADMIN"
- "AFTER"
- "ALIAS"
- "ALIASES"
- "ALWAYS"
- "APPLY"
- "ASC"
- "ASSERTION"
- "ASSIGNMENT"
- "ATTRIBUTE"
- "ATTRIBUTES"
- "BEFORE"
- "BERNOULLI"
- "BREADTH"
- "C"
- "CASCADE"
- "CATALOG"
- "CATALOG_NAME"
- "CENTURY"
- "CHAIN"
- "CHARACTER_SET_CATALOG"
- "CHARACTER_SET_NAME"
- "CHARACTER_SET_SCHEMA"
- "CHARACTERISTICS"
- "CHARACTERS"
- "CLASS_ORIGIN"
- "COBOL"
- "COLLATION"
- "COLLATION_CATALOG"
- "COLLATION_NAME"
- "COLLATION_SCHEMA"
- "COLUMN_NAME"
- "COMMAND_FUNCTION"
- "COMMAND_FUNCTION_CODE"
- "COMMITTED"
- "CONDITION_NUMBER"
- "CONNECTION"
- "CONNECTION_NAME"
- "CONSTRAINT_CATALOG"
- "CONSTRAINT_NAME"
- "CONSTRAINT_SCHEMA"
- "CONSTRAINTS"
- "CONSTRUCTOR"
- "CONTINUE"
- "CURSOR_NAME"
- "DATA"
- "DATABASE"
- "DATETIME_INTERVAL_CODE"
- "DATETIME_INTERVAL_PRECISION"
- "DECADE"
- "DEFAULTS"
- "DEFERRABLE"
- "DEFERRED"
- "DEFINED"
- "DEFINER"
- "DEGREE"
- "DEPTH"
- "DERIVED"
- "DESC"
- "DESCRIPTION"
- "DESCRIPTOR"
- "DIAGNOSTICS"
- "DISPATCH"
- "DOMAIN"
- "DOW"
- "DOY"
- "DYNAMIC_FUNCTION"
- "DYNAMIC_FUNCTION_CODE"
- "ENCODING"
- "EPOCH"
- "ERROR"
- "EXCEPTION"
- "EXCLUDE"
- "EXCLUDING"
- "FINAL"
- "FIRST"
- "FOLLOWING"
- "FORMAT"
- "FORTRAN"
- "FOUND"
- "FRAC_SECOND"
- "G"
- "GENERAL"
- "GENERATED"
- "GEOMETRY"
- "GO"
- "GOTO"
- "GRANTED"
- "HIERARCHY"
- "IMMEDIATE"
- "IMMEDIATELY"
- "IMPLEMENTATION"
- "INCLUDING"
- "INCREMENT"
- "INITIALLY"
- "INPUT"
- "INSTANCE"
- "INSTANTIABLE"
- "INVOKER"
- "ISODOW"
- "ISOYEAR"
- "ISOLATION"
- "JAVA"
- "JSON"
- "K"
- "KEY"
- "KEY_MEMBER"
- "KEY_TYPE"
- "LABEL"
- "LAST"
- "LENGTH"
- "LEVEL"
- "LIBRARY"
- "LOCATOR"
- "M"
- "MAP"
- "MATCHED"
- "MAXVALUE"
- "MICROSECOND"
- "MESSAGE_LENGTH"
- "MESSAGE_OCTET_LENGTH"
- "MESSAGE_TEXT"
- "MILLISECOND"
- "MILLENNIUM"
- "MINVALUE"
- "MONTHS"
- "MORE_"
- "MUMPS"
- "NAME"
- "NAMES"
- "NANOSECOND"
- "NESTING"
- "NORMALIZED"
- "NULLABLE"
- "NULLS"
- "NUMBER"
- "OBJECT"
- "OCTETS"
- "OPTION"
- "OPTIONS"
- "ORDERING"
- "ORDINALITY"
- "OTHERS"
- "OUTPUT"
- "OVERRIDING"
- "PAD"
- "PARAMETER_MODE"
- "PARAMETER_NAME"
- "PARAMETER_ORDINAL_POSITION"
- "PARAMETER_SPECIFIC_CATALOG"
- "PARAMETER_SPECIFIC_NAME"
- "PARAMETER_SPECIFIC_SCHEMA"
- "PARTIAL"
- "PASCAL"
- "PASSING"
- "PASSTHROUGH"
- "PAST"
- "PATH"
- "PLACING"
- "PLAN"
- "PLI"
- "PRECEDING"
- "PRESERVE"
- "PRIOR"
- "PRIVILEGES"
- "PUBLIC"
- "QUARTER"
- "READ"
- "RELATIVE"
- "REPEATABLE"
- "REPLACE"
- "RESTART"
- "RESTRICT"
- "RETURNED_CARDINALITY"
- "RETURNED_LENGTH"
- "RETURNED_OCTET_LENGTH"
- "RETURNED_SQLSTATE"
- "ROLE"
- "ROUTINE"
- "ROUTINE_CATALOG"
- "ROUTINE_NAME"
- "ROUTINE_SCHEMA"
- "ROW_COUNT"
- "SCALE"
- "SCHEMA"
- "SCHEMA_NAME"
- "SCOPE_CATALOGS"
- "SCOPE_NAME"
- "SCOPE_SCHEMA"
- "SECTION"
- "SECURITY"
- "SELF"
- "SEQUENCE"
- "SERIALIZABLE"
- "SERVER"
- "SERVER_NAME"
- "SESSION"
- "SETS"
- "SIMPLE"
- "SIZE"
- "SOURCE"
- "SPACE"
- "SPECIFIC_NAME"
- "SQL_BIGINT"
- "SQL_BINARY"
- "SQL_BIT"
- "SQL_BLOB"
- "SQL_BOOLEAN"
- "SQL_CHAR"
- "SQL_CLOB"
- "SQL_DATE"
- "SQL_DECIMAL"
- "SQL_DOUBLE"
- "SQL_FLOAT"
- "SQL_INTEGER"
- "SQL_INTERVAL_DAY"
- "SQL_INTERVAL_DAY_TO_HOUR"
- "SQL_INTERVAL_DAY_TO_MINUTE"
- "SQL_INTERVAL_DAY_TO_SECOND"
- "SQL_INTERVAL_HOUR"
- "SQL_INTERVAL_HOUR_TO_MINUTE"
- "SQL_INTERVAL_HOUR_TO_SECOND"
- "SQL_INTERVAL_MINUTE"
- "SQL_INTERVAL_MINUTE_TO_SECOND"
- "SQL_INTERVAL_MONTH"
- "SQL_INTERVAL_SECOND"
- "SQL_INTERVAL_YEAR"
- "SQL_INTERVAL_YEAR_TO_MONTH"
- "SQL_LONGVARBINARY"
- "SQL_LONGVARNCHAR"
- "SQL_LONGVARCHAR"
- "SQL_NCHAR"
- "SQL_NCLOB"
- "SQL_NUMERIC"
- "SQL_NVARCHAR"
- "SQL_REAL"
- "SQL_SMALLINT"
- "SQL_TIME"
- "SQL_TIMESTAMP"
- "SQL_TINYINT"
- "SQL_TSI_DAY"
- "SQL_TSI_FRAC_SECOND"
- "SQL_TSI_HOUR"
- "SQL_TSI_MICROSECOND"
- "SQL_TSI_MINUTE"
- "SQL_TSI_MONTH"
- "SQL_TSI_QUARTER"
- "SQL_TSI_SECOND"
- "SQL_TSI_WEEK"
- "SQL_TSI_YEAR"
- "SQL_VARBINARY"
- "SQL_VARCHAR"
- "STATE"
- "STATEMENT"
- "STORAGE"
- "STRUCTURE"
- "STYLE"
- "SUBCLASS_ORIGIN"
- "SUBSTITUTE"
- "TABLE_NAME"
- "TEMPORARY"
- "TIES"
- "TIMESTAMPADD"
- "TIMESTAMPDIFF"
- "TOP_LEVEL_COUNT"
- "TRANSACTION"
- "TRANSACTIONS_ACTIVE"
- "TRANSACTIONS_COMMITTED"
- "TRANSACTIONS_ROLLED_BACK"
- "TRANSFORM"
- "TRANSFORMS"
- "TRIGGER_CATALOG"
- "TRIGGER_NAME"
- "TRIGGER_SCHEMA"
- "TYPE"
- "UNBOUNDED"
- "UNCOMMITTED"
- "UNDER"
- "UNNAMED"
- "USAGE"
- "USER_DEFINED_TYPE_CATALOG"
- "USER_DEFINED_TYPE_CODE"
- "USER_DEFINED_TYPE_NAME"
- "USER_DEFINED_TYPE_SCHEMA"
- "VERSION"
- "VIEW"
- "WEEK"
- "WRAPPER"
- "WORK"
- "WRITE"
- "XML"
- "ZONE"
+ nonReservedKeywords: [
+ "A"
+ "ABSENT"
+ "ABSOLUTE"
+ "ACTION"
+ "ADA"
+ "ADD"
+ "ADMIN"
+ "AFTER"
+ "ALWAYS"
+ "APPLY"
+ "ARRAY_AGG"
+ "ARRAY_CONCAT_AGG"
+ "ASC"
+ "ASSERTION"
+ "ASSIGNMENT"
+ "ATTRIBUTE"
+ "ATTRIBUTES"
+ "BEFORE"
+ "BERNOULLI"
+ "BREADTH"
+ "C"
+ "CASCADE"
+ "CATALOG"
+ "CATALOG_NAME"
+ "CENTURY"
+ "CHAIN"
+ "CHARACTERISTICS"
+ "CHARACTERS"
+ "CHARACTER_SET_CATALOG"
+ "CHARACTER_SET_NAME"
+ "CHARACTER_SET_SCHEMA"
+ "CLASS_ORIGIN"
+ "COBOL"
+ "COLLATION"
+ "COLLATION_CATALOG"
+ "COLLATION_NAME"
+ "COLLATION_SCHEMA"
+ "COLUMN_NAME"
+ "COMMAND_FUNCTION"
+ "COMMAND_FUNCTION_CODE"
+ "COMMITTED"
+ "CONDITIONAL"
+ "CONDITION_NUMBER"
+ "CONNECTION"
+ "CONNECTION_NAME"
+ "CONSTRAINT_CATALOG"
+ "CONSTRAINT_NAME"
+ "CONSTRAINTS"
+ "CONSTRAINT_SCHEMA"
+ "CONSTRUCTOR"
+ "CONTINUE"
+ "CURSOR_NAME"
+ "DATA"
+ "DATABASE"
+ "DATE_TRUNC"
+ "DATETIME_INTERVAL_CODE"
+ "DATETIME_INTERVAL_PRECISION"
+ "DAYS"
+ "DECADE"
+ "DEFAULTS"
+ "DEFERRABLE"
+ "DEFERRED"
+ "DEFINED"
+ "DEFINER"
+ "DEGREE"
+ "DEPTH"
+ "DERIVED"
+ "DESC"
+ "DESCRIPTION"
+ "DESCRIPTOR"
+ "DIAGNOSTICS"
+ "DISPATCH"
+ "DOMAIN"
+ "DOW"
+ "DOY"
+ "DOT_FORMAT"
+ "DYNAMIC_FUNCTION"
+ "DYNAMIC_FUNCTION_CODE"
+ "ENCODING"
+ "EPOCH"
+ "ERROR"
+ "EXCEPTION"
+ "EXCLUDE"
+ "EXCLUDING"
+ "FINAL"
+ "FIRST"
+ "FOLLOWING"
+ "FORMAT"
+ "FORTRAN"
+ "FOUND"
+ "FRAC_SECOND"
+ "G"
+ "GENERAL"
+ "GENERATED"
+ "GEOMETRY"
+ "GO"
+ "GOTO"
+ "GRANTED"
+ "GROUP_CONCAT"
+ "HIERARCHY"
+ "HOP"
+ "HOURS"
+ "IGNORE"
+ "ILIKE"
+ "IMMEDIATE"
+ "IMMEDIATELY"
+ "IMPLEMENTATION"
+ "INCLUDE"
+ "INCLUDING"
+ "INCREMENT"
+ "INITIALLY"
+ "INPUT"
+ "INSTANCE"
+ "INSTANTIABLE"
+ "INVOKER"
+ "ISODOW"
+ "ISOLATION"
+ "ISOYEAR"
+ "JAVA"
+ "JSON"
+ "K"
+ "KEY"
+ "KEY_MEMBER"
+ "KEY_TYPE"
+ "LABEL"
+ "LAST"
+ "LENGTH"
+ "LEVEL"
+ "LIBRARY"
+ "LOCATOR"
+ "M"
+ "MAP"
+ "MATCHED"
+ "MAXVALUE"
+ "MESSAGE_LENGTH"
+ "MESSAGE_OCTET_LENGTH"
+ "MESSAGE_TEXT"
+ "MICROSECOND"
+ "MILLENNIUM"
+ "MILLISECOND"
+ "MINUTES"
+ "MINVALUE"
+ "MONTHS"
+ "MORE_"
+ "MUMPS"
+ "NAME"
+ "NAMES"
+ "NANOSECOND"
+ "NESTING"
+ "NORMALIZED"
+ "NULLABLE"
+ "NULLS"
+ "NUMBER"
+ "OBJECT"
+ "OCTETS"
+ "OPTION"
+ "OPTIONS"
+ "ORDERING"
+ "ORDINALITY"
+ "OTHERS"
+ "OUTPUT"
+ "OVERRIDING"
+ "PAD"
+ "PARAMETER_MODE"
+ "PARAMETER_NAME"
+ "PARAMETER_ORDINAL_POSITION"
+ "PARAMETER_SPECIFIC_CATALOG"
+ "PARAMETER_SPECIFIC_NAME"
+ "PARAMETER_SPECIFIC_SCHEMA"
+ "PARTIAL"
+ "PASCAL"
+ "PASSING"
+ "PASSTHROUGH"
+ "PAST"
+ "PATH"
+ "PIVOT"
+ "PLACING"
+ "PLAN"
+ "PLI"
+ "PRECEDING"
+ "PRESERVE"
+ "PRIOR"
+ "PRIVILEGES"
+ "PUBLIC"
+ "QUARTER"
+ "QUARTERS"
+ "READ"
+ "RELATIVE"
+ "REPEATABLE"
+ "REPLACE"
+ "RESPECT"
+ "RESTART"
+ "RESTRICT"
+ "RETURNED_CARDINALITY"
+ "RETURNED_LENGTH"
+ "RETURNED_OCTET_LENGTH"
+ "RETURNED_SQLSTATE"
+ "RETURNING"
+ "RLIKE"
+ "ROLE"
+ "ROUTINE"
+ "ROUTINE_CATALOG"
+ "ROUTINE_NAME"
+ "ROUTINE_SCHEMA"
+ "ROW_COUNT"
+ "SCALAR"
+ "SCALE"
+ "SCHEMA"
+ "SCHEMA_NAME"
+ "SCOPE_CATALOGS"
+ "SCOPE_NAME"
+ "SCOPE_SCHEMA"
+ "SECONDS"
+ "SECTION"
+ "SECURITY"
+ "SELF"
+ "SEPARATOR"
+ "SEQUENCE"
+ "SERIALIZABLE"
+ "SERVER"
+ "SERVER_NAME"
+ "SESSION"
+ "SETS"
+ "SIMPLE"
+ "SIZE"
+ "SOURCE"
+ "SPACE"
+ "SPECIFIC_NAME"
+ "SQL_BIGINT"
+ "SQL_BINARY"
+ "SQL_BIT"
+ "SQL_BLOB"
+ "SQL_BOOLEAN"
+ "SQL_CHAR"
+ "SQL_CLOB"
+ "SQL_DATE"
+ "SQL_DECIMAL"
+ "SQL_DOUBLE"
+ "SQL_FLOAT"
+ "SQL_INTEGER"
+ "SQL_INTERVAL_DAY"
+ "SQL_INTERVAL_DAY_TO_HOUR"
+ "SQL_INTERVAL_DAY_TO_MINUTE"
+ "SQL_INTERVAL_DAY_TO_SECOND"
+ "SQL_INTERVAL_HOUR"
+ "SQL_INTERVAL_HOUR_TO_MINUTE"
+ "SQL_INTERVAL_HOUR_TO_SECOND"
+ "SQL_INTERVAL_MINUTE"
+ "SQL_INTERVAL_MINUTE_TO_SECOND"
+ "SQL_INTERVAL_MONTH"
+ "SQL_INTERVAL_SECOND"
+ "SQL_INTERVAL_YEAR"
+ "SQL_INTERVAL_YEAR_TO_MONTH"
+ "SQL_LONGVARBINARY"
+ "SQL_LONGVARCHAR"
+ "SQL_LONGVARNCHAR"
+ "SQL_NCHAR"
+ "SQL_NCLOB"
+ "SQL_NUMERIC"
+ "SQL_NVARCHAR"
+ "SQL_REAL"
+ "SQL_SMALLINT"
+ "SQL_TIME"
+ "SQL_TIMESTAMP"
+ "SQL_TINYINT"
+ "SQL_TSI_DAY"
+ "SQL_TSI_FRAC_SECOND"
+ "SQL_TSI_HOUR"
+ "SQL_TSI_MICROSECOND"
+ "SQL_TSI_MINUTE"
+ "SQL_TSI_MONTH"
+ "SQL_TSI_QUARTER"
+ "SQL_TSI_SECOND"
+ "SQL_TSI_WEEK"
+ "SQL_TSI_YEAR"
+ "SQL_VARBINARY"
+ "SQL_VARCHAR"
+ "STATE"
+ "STATEMENT"
+ "STRING_AGG"
+ "STRUCTURE"
+ "STYLE"
+ "SUBCLASS_ORIGIN"
+ "SUBSTITUTE"
+ "TABLE_NAME"
+ "TEMPORARY"
+ "TIES"
+ "TIME_DIFF"
+ "TIME_TRUNC"
+ "TIMESTAMPADD"
+ "TIMESTAMPDIFF"
+ "TIMESTAMP_DIFF"
+ "TIMESTAMP_TRUNC"
+ "TOP_LEVEL_COUNT"
+ "TRANSACTION"
+ "TRANSACTIONS_ACTIVE"
+ "TRANSACTIONS_COMMITTED"
+ "TRANSACTIONS_ROLLED_BACK"
+ "TRANSFORM"
+ "TRANSFORMS"
+ "TRIGGER_CATALOG"
+ "TRIGGER_NAME"
+ "TRIGGER_SCHEMA"
+ "TUMBLE"
+ "TYPE"
+ "UNBOUNDED"
+ "UNCOMMITTED"
+ "UNCONDITIONAL"
+ "UNDER"
+ "UNPIVOT"
+ "UNNAMED"
+ "USAGE"
+ "USER_DEFINED_TYPE_CATALOG"
+ "USER_DEFINED_TYPE_CODE"
+ "USER_DEFINED_TYPE_NAME"
+ "USER_DEFINED_TYPE_SCHEMA"
+ "UTF16"
+ "UTF32"
+ "UTF8"
+ "VERSION"
+ "VIEW"
+ "WEEK"
+ "WEEKS"
+ "WORK"
+ "WRAPPER"
+ "WRITE"
+ "XML"
+ "YEARS"
+ "ZONE"
- # The following keywords are reserved in core Calcite,
- # are reserved in some version of SQL,
- # but are not reserved in Babel.
- #
- # Words that are commented out (e.g. "AND") are still reserved.
- # These are the most important reserved words, and SQL cannot be
- # unambiguously parsed if they are not reserved. For example, if
- # "INNER" is not reserved then in the query
- #
- # select * from emp inner join dept using (deptno)"
- #
- # "inner" could be a table alias for "emp".
- #
- "ABS",
- "ABSOLUTE",
- "ACTION",
- "ADD",
- "AFTER",
- "ALL",
- "ALLOCATE",
- "ALLOW",
- "ALTER",
- "AND",
-# "ANY",
- "ARE",
- "ARRAY",
-# # "ARRAY_AGG", # not a keyword in Calcite
- "ARRAY_MAX_CARDINALITY",
- "AS",
- "ASC",
- "ASENSITIVE",
- "ASSERTION",
- "ASYMMETRIC",
- "AT",
- "ATOMIC",
- "AUTHORIZATION",
- "AVG",
- "BEFORE",
- "BEGIN",
- "BEGIN_FRAME",
- "BEGIN_PARTITION",
- "BETWEEN",
- "BIGINT",
- "BINARY",
- "BIT",
-# # "BIT_LENGTH", # not a keyword in Calcite
- "BLOB",
- "BOOLEAN",
- "BOTH",
- "BREADTH",
- "BY",
-# "CALL",
- "CALLED",
- "CARDINALITY",
- "CASCADE",
- "CASCADED",
-# "CASE",
- "CAST",
- "CATALOG",
- "CEIL",
- "CEILING",
- "CHAR",
- "CHARACTER",
- "CHARACTER_LENGTH",
- "CHAR_LENGTH",
- "CHECK",
- "CLASSIFIER",
- "CLOB",
- "CLOSE",
- "COALESCE",
- "COLLATE",
- "COLLATION",
- "COLLECT",
- "COLUMN",
- "COMMIT",
- "CONDITION",
- "CONNECT",
- "CONNECTION",
- "CONSTRAINT",
- "CONSTRAINTS",
- "CONSTRUCTOR",
- "CONTAINS",
- "CONTINUE",
- "CONVERT",
- "CORR",
- "CORRESPONDING",
- "COUNT",
- "COVAR_POP",
- "COVAR_SAMP",
-# "CREATE",
-# "CROSS",
- "CUBE",
- "CUME_DIST",
-# "CURRENT",
- "CURRENT_CATALOG",
- "CURRENT_DATE",
- "CURRENT_DEFAULT_TRANSFORM_GROUP",
- "CURRENT_PATH",
- "CURRENT_ROLE",
- "CURRENT_ROW",
- "CURRENT_SCHEMA",
- "CURRENT_TIME",
- "CURRENT_TIMESTAMP",
- "CURRENT_TRANSFORM_GROUP_FOR_TYPE",
- "CURRENT_USER",
-# "CURSOR",
- "CYCLE",
- "DATA",
-# "DATE",
- "DAY",
-# # "DAYS", # not a keyword in Calcite
- "DEALLOCATE",
- "DEC",
- "DECIMAL",
- "DECLARE",
-# # "DEFAULT",
- "DEFERRABLE",
- "DEFERRED",
-# "DEFINE",
-# "DELETE",
- "DENSE_RANK",
- "DEPTH",
- "DEREF",
- "DESC",
-# "DESCRIBE", # must be reserved
- "DESCRIPTOR",
- "DETERMINISTIC",
- "DIAGNOSTICS",
- "DISALLOW",
- "DISCONNECT",
-# "DISTINCT",
-# # "DO", # not a keyword in Calcite
- "DOMAIN",
- "DOUBLE",
-# "DROP", # probably must be reserved
- "DYNAMIC",
- "EACH",
- "ELEMENT",
- "ELSE",
-# # "ELSEIF", # not a keyword in Calcite
- "EMPTY",
- "END",
-# # "END-EXEC", # not a keyword in Calcite, and contains '-'
- "END_FRAME",
- "END_PARTITION",
- "EQUALS",
- "ESCAPE",
- "EVERY",
-# "EXCEPT", # must be reserved
- "EXCEPTION",
- "EXEC",
- "EXECUTE",
- "EXISTS",
-# # "EXIT", # not a keyword in Calcite
- "EXP",
-# "EXPLAIN", # must be reserved
- "EXTEND",
- "EXTERNAL",
- "EXTRACT",
- "FALSE",
-# "FETCH",
- "FILTER",
- "FIRST",
- "FIRST_VALUE",
- "FLOAT",
- "FLOOR",
- "FOR",
- "FOREIGN",
-# # "FOREVER", # not a keyword in Calcite
- "FOUND",
- "FRAME_ROW",
- "FREE",
-# "FROM", # must be reserved
-# "FULL", # must be reserved
- "FUNCTION",
- "FUSION",
- "GENERAL",
- "GET",
- "GLOBAL",
- "GO",
- "GOTO",
-# "GRANT",
-# "GROUP",
-# "GROUPING",
- "GROUPS",
-# # "HANDLER", # not a keyword in Calcite
-# "HAVING",
- "HOLD",
- "HOUR",
- "HOURS",
- "IDENTITY",
-# # "IF", # not a keyword in Calcite
- "IMMEDIATE",
- "IMMEDIATELY",
- "IMPORT",
-# "IN",
- "INDICATOR",
- "INITIAL",
- "INITIALLY",
-# "INNER",
- "INOUT",
- "INPUT",
- "INSENSITIVE",
-# "INSERT",
- "INT",
- "INTEGER",
-# "INTERSECT",
- "INTERSECTION",
-# "INTERVAL",
-# "INTO",
- "IS",
- "ISOLATION",
-# # "ITERATE", # not a keyword in Calcite
-# "JOIN",
-# # "KEEP", # not a keyword in Calcite
- "KEY",
- "LAG",
- "LANGUAGE",
- "LARGE",
- "LAST",
- "LAST_VALUE",
-# "LATERAL",
- "LEAD",
- "LEADING",
-# # "LEAVE", # not a keyword in Calcite
-# "LEFT",
- "LEVEL",
- "LIKE",
- "LIKE_REGEX",
-# "LIMIT",
- "LN",
- "LOCAL",
- "LOCALTIME",
- "LOCALTIMESTAMP",
- "LOCATOR",
-# # "LOOP", # not a keyword in Calcite
- "LOWER",
- "MAP",
- "MATCH",
- "MATCHES",
- "MATCH_NUMBER",
-# "MATCH_RECOGNIZE",
- "MAX",
-# # "MAX_CARDINALITY", # not a keyword in Calcite
- "MEASURES",
- "MEMBER",
-# "MERGE",
- "METHOD",
- "MIN",
-# "MINUS",
- "MINUTE",
-# # "MINUTES", # not a keyword in Calcite
- "MOD",
- "MODIFIES",
- "MODULE",
- "MONTH",
- "MULTISET",
- "NAMES",
- "NATIONAL",
-# "NATURAL",
- "NCHAR",
- "NCLOB",
-# "NEW",
-# "NEXT",
- "NO",
- "NONE",
- "NORMALIZE",
- "NOT",
- "NTH_VALUE",
- "NTILE",
-# "NULL",
- "NULLIF",
- "NUMERIC",
- "OBJECT",
- "OCCURRENCES_REGEX",
- "OCTET_LENGTH",
- "OF",
-# "OFFSET",
- "OLD",
- "OMIT",
-# "ON",
- "ONE",
- "ONLY",
- "OPEN",
- "OPTION",
- "OR",
-# "ORDER",
- "ORDINALITY",
- "OUT",
-# "OUTER",
- "OUTPUT",
-# "OVER",
- "OVERLAPS",
- "OVERLAY",
- "PAD",
- "PARAMETER",
- "PARTIAL",
-# "PARTITION",
- "PATH",
-# "PATTERN",
- "PER",
- "PERCENT",
- "PERCENTILE_CONT",
- "PERCENTILE_DISC",
- "PERCENT_RANK",
- "PERIOD",
- "PERMUTE",
- "PORTION",
- "POSITION",
- "POSITION_REGEX",
- "POWER",
- "PRECEDES",
- "PRECISION",
- "PREPARE",
- "PRESERVE",
- "PREV",
- "PRIMARY",
- "PRIOR",
- "PRIVILEGES",
- "PROCEDURE",
- "PUBLIC",
-# "RANGE",
- "RANK",
- "READ",
- "READS",
- "REAL",
- "RECURSIVE",
- "REF",
- "REFERENCES",
- "REFERENCING",
- "REGR_AVGX",
- "REGR_AVGY",
- "REGR_COUNT",
- "REGR_INTERCEPT",
- "REGR_R2",
- "REGR_SLOPE",
- "REGR_SXX",
- "REGR_SXY",
- "REGR_SYY",
- "RELATIVE",
- "RELEASE",
-# # "REPEAT", # not a keyword in Calcite
- "RESET",
-# # "RESIGNAL", # not a keyword in Calcite
- "RESTRICT",
- "RESULT",
- "RETURN",
- "RETURNS",
- "REVOKE",
-# "RIGHT",
- "ROLE",
- "ROLLBACK",
-# "ROLLUP",
- "ROUTINE",
-# "ROW",
-# "ROWS",
- "ROW_NUMBER",
- "RUNNING",
- "SAVEPOINT",
- "SCHEMA",
- "SCOPE",
- "SCROLL",
- "SEARCH",
- "SECOND",
-# # "SECONDS", # not a keyword in Calcite
- "SECTION",
- "SEEK",
-# "SELECT",
- "SENSITIVE",
- "SESSION",
- "SESSION_USER",
-# "SET",
-# "SETS",
- "SHOW",
-# # "SIGNAL", # not a keyword in Calcite
- "SIMILAR",
- "SIZE",
-# # "SKIP", # messes with JavaCC's <SKIP> token
- "SMALLINT",
-# "SOME",
- "SPACE",
- "SPECIFIC",
- "SPECIFICTYPE",
- "SQL",
-# # "SQLCODE", # not a keyword in Calcite
-# # "SQLERROR", # not a keyword in Calcite
- "SQLEXCEPTION",
- "SQLSTATE",
- "SQLWARNING",
- "SQRT",
- "START",
- "STATE",
- "STATIC",
- "STDDEV_POP",
- "STDDEV_SAMP",
-# "STREAM",
- "SUBMULTISET",
- "SUBSET",
- "SUBSTRING",
- "SUBSTRING_REGEX",
- "SUCCEEDS",
- "SUM",
- "SYMMETRIC",
- "SYSTEM",
- "SYSTEM_TIME",
- "SYSTEM_USER",
-# "TABLE",
-# "TABLESAMPLE",
- "TEMPORARY",
-# "THEN",
-# "TIME",
-# "TIMESTAMP",
- "TIMEZONE_HOUR",
- "TIMEZONE_MINUTE",
- "TINYINT",
- "TO",
- "TRAILING",
- "TRANSACTION",
- "TRANSLATE",
- "TRANSLATE_REGEX",
- "TRANSLATION",
- "TREAT",
- "TRIGGER",
- "TRIM",
- "TRIM_ARRAY",
- "TRUE",
- "TRUNCATE",
- "UESCAPE",
- "UNDER",
-# # "UNDO", # not a keyword in Calcite
-# "UNION",
- "UNIQUE",
- "UNKNOWN",
-# "UNNEST",
-# # "UNTIL", # not a keyword in Calcite
-# "UPDATE",
- "UPPER",
- "UPSERT",
- "USAGE",
- "USER",
-# "USING",
- "VALUE",
-# "VALUES",
- "VALUE_OF",
- "VARBINARY",
- "VARCHAR",
- "VARYING",
- "VAR_POP",
- "VAR_SAMP",
- "VERSION",
- "VERSIONING",
-# # "VERSIONS", # not a keyword in Calcite
- "VIEW",
-# "WHEN",
- "WHENEVER",
-# "WHERE",
-# # "WHILE", # not a keyword in Calcite
- "WIDTH_BUCKET",
-# "WINDOW",
-# "WITH",
- "WITHIN",
- "WITHOUT",
- "WORK",
- "WRITE",
- "YEAR",
- # "YEARS", # not a keyword in Calcite
- "ZONE",
- "COLUMNS",
- "REMOVE"
- ]
+ # The following keywords are reserved in core Calcite,
+ # are reserved in some version of SQL,
+ # but are not reserved in Babel.
+ #
+ # Words that are commented out (e.g. "AND") are still reserved.
+ # These are the most important reserved words, and SQL cannot be
+ # unambiguously parsed if they are not reserved. For example, if
+ # "INNER" is not reserved then in the query
+ #
+ # select * from emp inner join dept using (deptno)"
+ #
+ # "inner" could be a table alias for "emp".
+ #
+ "ABS"
+ "ABSOLUTE"
+ "ACTION"
+ "ADD"
+ "AFTER"
+ "ALL"
+ "ALLOCATE"
+ "ALLOW"
+ "ALTER"
+ "AND"
+# "ANY"
+ "ARE"
+ "ARRAY"
+# "ARRAY_AGG" # not a keyword in Calcite
+ "ARRAY_MAX_CARDINALITY"
+ "AS"
+ "ASC"
+ "ASENSITIVE"
+ "ASSERTION"
+ "ASYMMETRIC"
+ "AT"
+ "ATOMIC"
+ "AUTHORIZATION"
+ "AVG"
+ "BEFORE"
+ "BEGIN"
+ "BEGIN_FRAME"
+ "BEGIN_PARTITION"
+ "BETWEEN"
+ "BIGINT"
+ "BINARY"
+ "BIT"
+# "BIT_LENGTH" # not a keyword in Calcite
+ "BLOB"
+ "BOOLEAN"
+ "BOTH"
+ "BREADTH"
+ "BY"
+# "CALL"
+ "CALLED"
+ "CARDINALITY"
+ "CASCADE"
+ "CASCADED"
+# "CASE"
+ "CAST"
+ "CATALOG"
+ "CEIL"
+ "CEILING"
+ "CHAR"
+ "CHARACTER"
+ "CHARACTER_LENGTH"
+ "CHAR_LENGTH"
+ "CHECK"
+ "CLASSIFIER"
+ "CLOB"
+ "CLOSE"
+ "COALESCE"
+ "COLLATE"
+ "COLLATION"
+ "COLLECT"
+ "COLUMN"
+ "COMMIT"
+ "CONDITION"
+ "CONNECT"
+ "CONNECTION"
+ "CONSTRAINT"
+ "CONSTRAINTS"
+ "CONSTRUCTOR"
+ "CONTAINS"
+ "CONTINUE"
+ "CONVERT"
+ "CORR"
+ "CORRESPONDING"
+ "COUNT"
+ "COVAR_POP"
+ "COVAR_SAMP"
+# "CREATE"
+# "CROSS"
+ "CUBE"
+ "CUME_DIST"
+# "CURRENT"
+ "CURRENT_CATALOG"
+ "CURRENT_DATE"
+ "CURRENT_DEFAULT_TRANSFORM_GROUP"
+ "CURRENT_PATH"
+ "CURRENT_ROLE"
+ "CURRENT_ROW"
+ "CURRENT_SCHEMA"
+ "CURRENT_TIME"
+ "CURRENT_TIMESTAMP"
+ "CURRENT_TRANSFORM_GROUP_FOR_TYPE"
+ "CURRENT_USER"
+# "CURSOR"
+ "CYCLE"
+ "DATA"
+# "DATE"
+ "DAY"
+ "DEALLOCATE"
+ "DEC"
+ "DECIMAL"
+ "DECLARE"
+# "DEFAULT"
+ "DEFERRABLE"
+ "DEFERRED"
+# "DEFINE"
+# "DELETE"
+ "DENSE_RANK"
+ "DEPTH"
+ "DEREF"
+ "DESC"
+# "DESCRIBE" # must be reserved
+ "DESCRIPTOR"
+ "DETERMINISTIC"
+ "DIAGNOSTICS"
+ "DISALLOW"
+ "DISCONNECT"
+# "DISTINCT"
+# "DO" # not a keyword in Calcite
+ "DOMAIN"
+ "DOUBLE"
+# "DROP" # probably must be reserved
+ "DYNAMIC"
+ "EACH"
+ "ELEMENT"
+ "ELSE"
+# "ELSEIF" # not a keyword in Calcite
+ "EMPTY"
+ "END"
+# "END-EXEC" # not a keyword in Calcite, and contains '-'
+ "END_FRAME"
+ "END_PARTITION"
+ "EQUALS"
+ "ESCAPE"
+ "EVERY"
+# "EXCEPT" # must be reserved
+ "EXCEPTION"
+ "EXEC"
+ "EXECUTE"
+ "EXISTS"
+# "EXIT" # not a keyword in Calcite
+ "EXP"
+# "EXPLAIN" # must be reserved
+ "EXTEND"
+ "EXTERNAL"
+ "EXTRACT"
+ "FALSE"
+# "FETCH"
+ "FILTER"
+ "FIRST"
+ "FIRST_VALUE"
+ "FLOAT"
+ "FLOOR"
+ "FOR"
+ "FOREIGN"
+# "FOREVER" # not a keyword in Calcite
+ "FOUND"
+ "FRAME_ROW"
+ "FREE"
+# "FROM" # must be reserved
+# "FULL" # must be reserved
+ "FUNCTION"
+ "FUSION"
+ "GENERAL"
+ "GET"
+ "GLOBAL"
+ "GO"
+ "GOTO"
+# "GRANT"
+# "GROUP"
+# "GROUPING"
+ "GROUPS"
+# "HANDLER" # not a keyword in Calcite
+# "HAVING"
+ "HOLD"
+ "HOUR"
+ "HOURS",
+ "IDENTITY"
+ "ILIKE"
+ "IMMEDIATE"
+ "IMMEDIATELY"
+ "IMPORT"
+# "IN"
+ "INDICATOR"
+ "INITIAL"
+ "INITIALLY"
+# "INNER"
+ "INOUT"
+ "INPUT"
+ "INSENSITIVE"
+# "INSERT"
+ "INT"
+ "INTEGER"
+# "INTERSECT"
+ "INTERSECTION"
+# "INTERVAL"
+# "INTO"
+ "IS"
+ "ISOLATION"
+# "ITERATE" # not a keyword in Calcite
+# "JOIN"
+ "JSON_ARRAY"
+ "JSON_ARRAYAGG"
+ "JSON_EXISTS"
+ "JSON_OBJECT"
+ "JSON_OBJECTAGG"
+ "JSON_QUERY"
+ "JSON_VALUE"
+# "KEEP" # not a keyword in Calcite
+ "KEY"
+ "LAG"
+ "LANGUAGE"
+ "LARGE"
+ "LAST"
+ "LAST_VALUE"
+# "LATERAL"
+ "LEAD"
+ "LEADING"
+# "LEAVE" # not a keyword in Calcite
+# "LEFT"
+ "LEVEL"
+ "LIKE"
+ "LIKE_REGEX"
+# "LIMIT"
+ "LN"
+ "LOCAL"
+ "LOCALTIME"
+ "LOCALTIMESTAMP"
+ "LOCATOR"
+# "LOOP" # not a keyword in Calcite
+ "LOWER"
+ "MAP"
+ "MATCH"
+ "MATCHES"
+ "MATCH_NUMBER"
+# "MATCH_RECOGNIZE"
+ "MAX"
+# "MAX_CARDINALITY" # not a keyword in Calcite
+ "MEASURES"
+ "MEMBER"
+# "MERGE"
+ "METHOD"
+ "MIN"
+# "MINUS"
+ "MINUTE"
+ "MOD"
+ "MODIFIES"
+ "MODULE"
+ "MONTH"
+ "MULTISET"
+ "NAMES"
+ "NATIONAL"
+# "NATURAL"
+ "NCHAR"
+ "NCLOB"
+# "NEW"
+# "NEXT"
+ "NO"
+ "NONE"
+ "NORMALIZE"
+ "NOT"
+ "NTH_VALUE"
+ "NTILE"
+# "NULL"
+ "NULLIF"
+ "NUMERIC"
+ "OBJECT"
+ "OCCURRENCES_REGEX"
+ "OCTET_LENGTH"
+ "OF"
+# "OFFSET"
+ "OLD"
+ "OMIT"
+# "ON"
+ "ONE"
+ "ONLY"
+ "OPEN"
+ "OPTION"
+ "OR"
+# "ORDER"
+ "ORDINALITY"
+ "OUT"
+# "OUTER"
+ "OUTPUT"
+# "OVER"
+ "OVERLAPS"
+ "OVERLAY"
+ "PAD"
+ "PARAMETER"
+ "PARTIAL"
+# "PARTITION"
+ "PATH"
+# "PATTERN"
+ "PER"
+ "PERCENT"
+ "PERCENTILE_CONT"
+ "PERCENTILE_DISC"
+ "PERCENT_RANK"
+ "PERIOD"
+ "PERMUTE"
+ "PORTION"
+ "POSITION"
+ "POSITION_REGEX"
+ "POWER"
+ "PRECEDES"
+ "PRECISION"
+ "PREPARE"
+ "PRESERVE"
+ "PREV"
+ "PRIMARY"
+ "PRIOR"
+ "PRIVILEGES"
+ "PROCEDURE"
+ "PUBLIC"
+# "RANGE"
+ "RANK"
+ "READ"
+ "READS"
+ "REAL"
+ "RECURSIVE"
+ "REF"
+ "REFERENCES"
+ "REFERENCING"
+ "REGR_AVGX"
+ "REGR_AVGY"
+ "REGR_COUNT"
+ "REGR_INTERCEPT"
+ "REGR_R2"
+ "REGR_SLOPE"
+ "REGR_SXX"
+ "REGR_SXY"
+ "REGR_SYY"
+ "RELATIVE"
+ "RELEASE"
+# "REPEAT" # not a keyword in Calcite
+ "RESET"
+# "RESIGNAL" # not a keyword in Calcite
+ "RESTRICT"
+ "RESULT"
+ "RETURN"
+ "RETURNS"
+ "REVOKE"
+# "RIGHT"
+ "RLIKE"
+ "ROLE"
+ "ROLLBACK"
+# "ROLLUP"
+ "ROUTINE"
+# "ROW"
+# "ROWS"
+ "ROW_NUMBER"
+ "RUNNING"
+ "SAVEPOINT"
+ "SCHEMA"
+ "SCOPE"
+ "SCROLL"
+ "SEARCH"
+ "SECOND"
+ "SECTION"
+ "SEEK"
+# "SELECT"
+ "SENSITIVE"
+ "SESSION"
+ "SESSION_USER"
+# "SET"
+# "SETS"
+ "SHOW"
+# "SIGNAL" # not a keyword in Calcite
+ "SIMILAR"
+ "SIZE"
+# "SKIP" # messes with JavaCC's <SKIP> token
+ "SMALLINT"
+# "SOME"
+ "SPACE"
+ "SPECIFIC"
+ "SPECIFICTYPE"
+ "SQL"
+# "SQLCODE" # not a keyword in Calcite
+# "SQLERROR" # not a keyword in Calcite
+ "SQLEXCEPTION"
+ "SQLSTATE"
+ "SQLWARNING"
+ "SQRT"
+ "START"
+ "STATE"
+ "STATIC"
+ "STDDEV_POP"
+ "STDDEV_SAMP"
+# "STREAM"
+ "SUBMULTISET"
+ "SUBSET"
+ "SUBSTRING"
+ "SUBSTRING_REGEX"
+ "SUCCEEDS"
+ "SUM"
+ "SYMMETRIC"
+ "SYSTEM"
+ "SYSTEM_TIME"
+ "SYSTEM_USER"
+# "TABLE"
+# "TABLESAMPLE"
+ "TEMPORARY"
+# "THEN"
+# "TIME"
+ "TIME_DIFF"
+ "TIME_TRUNC"
+# "TIMESTAMP"
+ "TIMESTAMP_DIFF"
+ "TIMESTAMP_TRUNC"
+ "TIMEZONE_HOUR"
+ "TIMEZONE_MINUTE"
+ "TINYINT"
+ "TO"
+ "TRAILING"
+ "TRANSACTION"
+ "TRANSLATE"
+ "TRANSLATE_REGEX"
+ "TRANSLATION"
+ "TREAT"
+ "TRIGGER"
+ "TRIM"
+ "TRIM_ARRAY"
+ "TRUE"
+ "TRUNCATE"
+ "UESCAPE"
+ "UNDER"
+# "UNDO" # not a keyword in Calcite
+# "UNION"
+ "UNIQUE"
+ "UNKNOWN"
+# "UNNEST"
+# "UNTIL" # not a keyword in Calcite
+# "UPDATE"
+ "UPPER"
+ "UPSERT"
+ "USAGE"
+ "USER"
+# "USING"
+ "VALUE"
+# "VALUES"
+ "VALUE_OF"
+ "VARBINARY"
+ "VARCHAR"
+ "VARYING"
+ "VAR_POP"
+ "VAR_SAMP"
+ "VERSION"
+ "VERSIONING"
+# "VERSIONS" # not a keyword in Calcite
+ "VIEW"
+# "WHEN"
+ "WHENEVER"
+# "WHERE"
+# "WHILE" # not a keyword in Calcite
+ "WIDTH_BUCKET"
+# "WINDOW"
+# "WITH"
+ "WITHIN"
+ "WITHOUT"
+ "WORK"
+ "WRITE"
+ "YEAR"
+ "ZONE"
+ ]
# List of non-reserved keywords to add;
# items in this list become non-reserved
nonReservedKeywordsToAdd: [
+ "ALIAS"
+ "ALIASES"
+ "COLUMNS"
+ "DATETIME"
+ "HOURS"
+ "STORAGE"
+ "REMOVE"
]
# List of non-reserved keywords to remove;
@@ -914,6 +958,7 @@
includeCompoundIdentifier: false,
includeBraces: true,
includeAdditionalDeclarations: false,
+ includeParsingStringLiteralAsArrayLiteral: false,
identifierMaxLength: 1024
diff --git a/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/TimestampDiffFunction.java b/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/TimestampDiffFunction.java
index 3c5e51d3ae..a4012aa4e9 100644
--- a/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/TimestampDiffFunction.java
+++ b/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/TimestampDiffFunction.java
@@ -58,9 +58,11 @@ public class ${className} {
public void eval() {
<#if unit == "Nanosecond">
- out.value = (right.value - left.value) * 1000000;
+ out.value = (right.value - left.value) * 1_000_000;
<#elseif unit == "Microsecond">
- out.value = (right.value - left.value) * 1000;
+ out.value = (right.value - left.value) * 1_000;
+ <#elseif unit == "Millisecond">
+ out.value = right.value - left.value;
<#elseif unit == "Second">
out.value = (right.value - left.value) / org.apache.drill.exec.vector.DateUtilities.secondsToMillis;
<#elseif unit == "Minute">
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
index 5fdb1ffa70..a350ba0488 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
@@ -618,6 +618,7 @@ public class DrillOptiq {
case HOUR:
case MINUTE:
case SECOND:
+ case MILLISECOND:
case QUARTER:
case WEEK:
case MICROSECOND:
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRelFactories.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRelFactories.java
index 574631f5f3..ce3d3d7de1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRelFactories.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRelFactories.java
@@ -97,7 +97,7 @@ public class DrillRelFactories {
@Override
public RelNode createProject(RelNode input, List<RelHint> hints, List<? extends RexNode> childExprs,
- List<? extends String> fieldNames) {
+ List<? extends String> fieldNames, Set<CorrelationId> variablesSet) {
RelOptCluster cluster = input.getCluster();
RelDataType rowType =
RexUtil.createStructType(cluster.getTypeFactory(), childExprs, fieldNames, null);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelFactories.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelFactories.java
index b5658344c3..9080c3c27f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelFactories.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelFactories.java
@@ -18,6 +18,7 @@
package org.apache.drill.exec.planner.physical;
+import org.apache.calcite.rel.core.CorrelationId;
import org.apache.calcite.rel.hint.RelHint;
import org.apache.drill.shaded.guava.com.google.common.collect.Lists;
import org.apache.calcite.plan.RelOptCluster;
@@ -29,6 +30,7 @@ import org.apache.calcite.rex.RexUtil;
import java.util.List;
+import java.util.Set;
public class PrelFactories {
public static final RelFactories.ProjectFactory PROJECT_FACTORY =
@@ -40,7 +42,8 @@ public class PrelFactories {
*/
private static class DrillProjectPrelFactory implements RelFactories.ProjectFactory {
@Override
- public RelNode createProject(RelNode child, List<RelHint> hints, List<? extends RexNode> childExprs, List<? extends String> fieldNames) {
+ public RelNode createProject(RelNode child, List<RelHint> hints, List<? extends RexNode> childExprs,
+ List<? extends String> fieldNames, Set<CorrelationId> variablesSet) {
RelOptCluster cluster = child.getCluster();
RelDataType rowType = RexUtil.createStructType(cluster.getTypeFactory(), childExprs, fieldNames, null);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java
index 16d97c49cb..a802ec8bf1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java
@@ -25,7 +25,6 @@ import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
-import org.apache.calcite.avatica.util.TimeUnit;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.rel.type.RelDataTypeFactory;
import org.apache.calcite.rex.RexNode;
@@ -208,9 +207,9 @@ public class DrillConvertletTable implements SqlRexConvertletTable {
private static SqlRexConvertlet timestampDiffConvertlet() {
return (cx, call) -> {
- SqlLiteral unitLiteral = call.operand(0);
+ SqlIntervalQualifier unitLiteral = call.operand(0);
SqlIntervalQualifier qualifier =
- new SqlIntervalQualifier(unitLiteral.symbolValue(TimeUnit.class), null, SqlParserPos.ZERO);
+ new SqlIntervalQualifier(unitLiteral.getUnit(), null, SqlParserPos.ZERO);
List<RexNode> operands = Arrays.asList(
cx.convertExpression(qualifier),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java
index 5b209db6d9..41a6b3bd8a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java
@@ -614,7 +614,7 @@ public class TypeInferenceUtils {
SqlTypeName inputTypeName = inputType.getSqlTypeName();
- TimeUnit qualifier = ((SqlLiteral) ((SqlCallBinding) opBinding).operand(0)).getValueAs(TimeUnit.class);
+ TimeUnit qualifier = ((SqlIntervalQualifier) ((SqlCallBinding) opBinding).operand(0)).getUnit();
SqlTypeName sqlTypeName;
int precision = 0;
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
index f2d5af6e00..977fd4b5c5 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
@@ -33,27 +33,17 @@ import java.util.Map;
public class TestTimestampAddDiffFunctions extends ClusterTest {
private final List<String> QUALIFIERS = Arrays.asList(
- "FRAC_SECOND",
+ "MILLISECOND",
"MICROSECOND",
"NANOSECOND",
- "SQL_TSI_FRAC_SECOND",
- "SQL_TSI_MICROSECOND",
"SECOND",
- "SQL_TSI_SECOND",
"MINUTE",
- "SQL_TSI_MINUTE",
"HOUR",
- "SQL_TSI_HOUR",
"DAY",
- "SQL_TSI_DAY",
"WEEK",
- "SQL_TSI_WEEK",
"MONTH",
- "SQL_TSI_MONTH",
"QUARTER",
- "SQL_TSI_QUARTER",
- "YEAR",
- "SQL_TSI_YEAR");
+ "YEAR");
@BeforeClass
public static void setup() throws Exception {
@@ -192,11 +182,11 @@ public class TestTimestampAddDiffFunctions extends ClusterTest {
@Test // DRILL-6967
public void testTimestampDiffQuarter() throws Exception {
String query =
- "SELECT TIMESTAMPDIFF(SQL_TSI_QUARTER, date '1996-03-09', date '1998-03-09') AS col1," +
+ "SELECT TIMESTAMPDIFF(QUARTER, date '1996-03-09', date '1998-03-09') AS col1," +
"TIMESTAMPDIFF(QUARTER, date '2019-01-01', date '2019-01-17') AS col2," +
- "TIMESTAMPDIFF(SQL_TSI_QUARTER, date '2019-01-01', date '2019-03-31') AS col3," +
+ "TIMESTAMPDIFF(QUARTER, date '2019-01-01', date '2019-03-31') AS col3," +
"TIMESTAMPDIFF(QUARTER, date '2019-01-01', date '2019-04-01') AS col4," +
- "TIMESTAMPDIFF(SQL_TSI_QUARTER, date '1970-01-01', date '2019-01-11') AS col5";
+ "TIMESTAMPDIFF(QUARTER, date '1970-01-01', date '2019-01-11') AS col5";
testBuilder()
.sqlQuery(query)
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestAnalyze.java b/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestAnalyze.java
index 2eef180c07..58742b2af0 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestAnalyze.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/sql/TestAnalyze.java
@@ -332,7 +332,7 @@ public class TestAnalyze extends ClusterTest {
query = " select emp.employee_id from dfs.tmp.employeeUseStat emp join dfs.tmp.departmentUseStat dept"
+ " on emp.department_id = dept.department_id "
+ " group by emp.employee_id";
- String[] expectedPlan8 = {"HashAgg\\(group=\\[\\{0\\}\\]\\).*rowcount = 730.2832515526484,.*",
+ String[] expectedPlan8 = {"HashAgg\\(group=\\[\\{0\\}\\]\\).*rowcount = 730.2832515526.*",
"HashJoin\\(condition.*\\).*rowcount = 1155.0,.*",
"Scan.*columns=\\[`department_id`, `employee_id`\\].*rowcount = 1155.0.*",
"Scan.*columns=\\[`department_id`\\].*rowcount = 12.0.*"};
@@ -347,7 +347,7 @@ public class TestAnalyze extends ClusterTest {
+ " on emp.department_id = dept.department_id "
+ " group by emp.employee_id, emp.store_id, dept.department_description "
+ " having dept.department_description = 'FINANCE'";
- String[] expectedPlan9 = {"HashAgg\\(group=\\[\\{0, 1, 2\\}\\]\\).*rowcount = 61.0263439444715.*",
+ String[] expectedPlan9 = {"HashAgg\\(group=\\[\\{0, 1, 2\\}\\]\\).*rowcount = 61.02634394447.*",
"HashJoin\\(condition.*\\).*rowcount = 96.25,.*",
"Scan.*columns=\\[`department_id`, `employee_id`, `store_id`\\].*rowcount = 1155.0.*",
"Filter\\(condition=\\[=\\(\\$1, 'FINANCE'\\)\\]\\).*rowcount = 1.0,.*",
@@ -362,7 +362,7 @@ public class TestAnalyze extends ClusterTest {
+ " on emp.department_id = dept.department_id "
+ " group by emp.employee_id, emp.store_id "
+ " having emp.store_id = 7";
- String[] expectedPlan10 = {"HashAgg\\(group=\\[\\{0, 1\\}\\]\\).*rowcount = 29.389586621217404.*",
+ String[] expectedPlan10 = {"HashAgg\\(group=\\[\\{0, 1\\}\\]\\).*rowcount = 29.389586621217.*",
"HashJoin\\(condition.*\\).*rowcount = 46.2,.*",
"Filter\\(condition=\\[=\\(\\$2, 7\\)\\]\\).*rowcount = 46.2,.*",
"Scan.*columns=\\[`department_id`, `employee_id`, `store_id`\\].*rowcount = 1155.0.*",
diff --git a/exec/jdbc-all/pom.xml b/exec/jdbc-all/pom.xml
index d74ac18306..d2f3415033 100644
--- a/exec/jdbc-all/pom.xml
+++ b/exec/jdbc-all/pom.xml
@@ -34,7 +34,7 @@
"package.namespace.prefix" equals to "oadd.". It can be overridden if necessary within any profile -->
<properties>
<package.namespace.prefix>oadd.</package.namespace.prefix>
- <jdbc-all-jar.maxsize>47000000</jdbc-all-jar.maxsize>
+ <jdbc-all-jar.maxsize>48000000</jdbc-all-jar.maxsize>
</properties>
<dependencies>
@@ -1284,7 +1284,7 @@
<profile>
<id>hadoop-2</id>
<properties>
- <jdbc-all-jar.maxsize>50000000</jdbc-all-jar.maxsize>
+ <jdbc-all-jar.maxsize>51000000</jdbc-all-jar.maxsize>
</properties>
</profile>
</profiles>
diff --git a/pom.xml b/pom.xml
index 649977af05..811173c141 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,11 +55,11 @@
<parquet.version>1.12.2</parquet.version>
<parquet.format.version>2.8.0</parquet.format.version>
<calcite.groupId>org.apache.calcite</calcite.groupId>
- <calcite.version>1.32.0</calcite.version>
- <avatica.version>1.22.0</avatica.version>
+ <calcite.version>1.33.0</calcite.version>
+ <avatica.version>1.23.0</avatica.version>
<janino.version>3.1.8</janino.version>
<sqlline.version>1.12.0</sqlline.version>
- <jackson.version>2.13.4.20221013</jackson.version>
+ <jackson.version>2.14.1</jackson.version>
<zookeeper.version>3.5.7</zookeeper.version>
<mapr.release.version>6.1.0-mapr</mapr.release.version>
<ojai.version>3.0-mapr-1808</ojai.version>