diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g index 665c3bb..7ceb005 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g @@ -124,6 +124,7 @@ KW_INT: 'INT'; KW_BIGINT: 'BIGINT'; KW_FLOAT: 'FLOAT'; KW_DOUBLE: 'DOUBLE'; +KW_PRECISION: 'PRECISION'; KW_DATE: 'DATE'; KW_DATETIME: 'DATETIME'; KW_TIMESTAMP: 'TIMESTAMP'; diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g index ecdefa9..df596ff 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g @@ -466,6 +466,7 @@ import org.apache.hadoop.hive.conf.HiveConf; xlateMap.put("KW_BIGINT", "BIGINT"); xlateMap.put("KW_FLOAT", "FLOAT"); xlateMap.put("KW_DOUBLE", "DOUBLE"); + xlateMap.put("KW_PRECISION", "PRECISION"); xlateMap.put("KW_DATE", "DATE"); xlateMap.put("KW_DATETIME", "DATETIME"); xlateMap.put("KW_TIMESTAMP", "TIMESTAMP"); @@ -2232,7 +2233,7 @@ primitiveType | KW_BIGINT -> TOK_BIGINT | KW_BOOLEAN -> TOK_BOOLEAN | KW_FLOAT -> TOK_FLOAT - | KW_DOUBLE -> TOK_DOUBLE + | KW_DOUBLE KW_PRECISION? -> TOK_DOUBLE | KW_DATE -> TOK_DATE | KW_DATETIME -> TOK_DATETIME | KW_TIMESTAMP -> TOK_TIMESTAMP diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g index 0bbc4b6..9ba1865 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g +++ ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g @@ -700,4 +700,5 @@ sql11ReservedKeywordsUsedAsIdentifier | KW_FOREIGN | KW_CONSTRAINT | KW_REFERENCES + | KW_PRECISION ; diff --git ql/src/test/queries/clientpositive/double_precision.q ql/src/test/queries/clientpositive/double_precision.q new file mode 100644 index 0000000..ab7c839 --- /dev/null +++ ql/src/test/queries/clientpositive/double_precision.q @@ -0,0 +1,2 @@ +create table dp (a double precision, b double precision); +describe dp; diff --git ql/src/test/results/clientpositive/double_precision.q.out ql/src/test/results/clientpositive/double_precision.q.out new file mode 100644 index 0000000..1057278 --- /dev/null +++ ql/src/test/results/clientpositive/double_precision.q.out @@ -0,0 +1,16 @@ +PREHOOK: query: create table dp (a double precision, b double precision) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@dp +POSTHOOK: query: create table dp (a double precision, b double precision) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@dp +PREHOOK: query: describe dp +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@dp +POSTHOOK: query: describe dp +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@dp +a double +b double