You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2019/02/20 15:44:45 UTC

[hive] branch branch-3 updated: HIVE-21278: Fix ambiguity in grammar warnings at compilation time (Jesus Camacho Rodriguez, reviewed by Vineet Garg)

This is an automated email from the ASF dual-hosted git repository.

jcamacho pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/branch-3 by this push:
     new 07738b4  HIVE-21278: Fix ambiguity in grammar warnings at compilation time (Jesus Camacho Rodriguez, reviewed by Vineet Garg)
07738b4 is described below

commit 07738b4b89a7aa23a0afee55fc3369d257720d7e
Author: Jesus Camacho Rodriguez <jc...@apache.org>
AuthorDate: Fri Feb 15 15:22:38 2019 -0800

    HIVE-21278: Fix ambiguity in grammar warnings at compilation time (Jesus Camacho Rodriguez, reviewed by Vineet Garg)
---
 .../org/apache/hadoop/hive/ql/parse/HiveParser.g   |  2 +-
 .../hadoop/hive/ql/parse/IdentifiersParser.g       |  1 -
 .../clientnegative/check_constraint_aggregate.q    |  2 +-
 .../clientnegative/check_constraint_max_length.q   |  2 +-
 .../check_constraint_nonboolean_expr.q             |  2 +-
 .../clientnegative/check_constraint_qual_name.q    |  2 +-
 .../clientnegative/check_constraint_subquery.q     |  2 +-
 .../clientnegative/check_constraint_tbl_level.q    |  2 +-
 .../check_constraint_temporary_udf.q               |  2 +-
 .../queries/clientnegative/check_constraint_udtf.q |  2 +-
 .../clientnegative/check_constraint_violation.q    |  2 +-
 .../clientnegative/check_constraint_window_fun.q   |  2 +-
 .../create_external_with_check_constraint.q        |  2 +-
 .../test/queries/clientpositive/check_constraint.q | 38 +++++-----
 .../check_constraint_tbl_level.q.out               |  4 +-
 .../check_constraint_violation.q.out               |  4 +-
 .../clientnegative/subquery_subquery_chain.q.out   |  2 +-
 .../clientpositive/llap/check_constraint.q.out     | 82 +++++++++++-----------
 18 files changed, 77 insertions(+), 78 deletions(-)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
index f71357c..f12991f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
@@ -2279,7 +2279,7 @@ pkUkConstraint
 checkConstraint
 @init { pushMsg("CHECK constraint", state); }
 @after { popMsg(state); }
-    : KW_CHECK expression
+    : KW_CHECK LPAREN expression RPAREN
     -> ^(TOK_CHECK_CONSTRAINT expression)
     ;
 
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
index ebaaf6a..2231786 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
@@ -835,7 +835,6 @@ nonReserved
     | KW_REOPTIMIZATION
     | KW_RESOURCE | KW_PLAN | KW_PLANS | KW_QUERY_PARALLELISM | KW_ACTIVATE | KW_MOVE | KW_DO
     | KW_POOL | KW_ALLOC_FRACTION | KW_SCHEDULING_POLICY | KW_PATH | KW_MAPPING | KW_WORKLOAD | KW_MANAGEMENT | KW_ACTIVE | KW_UNMANAGED
-
 ;
 
 //The following SQL2011 reserved keywords are used as function name only, but not as identifiers.
diff --git a/ql/src/test/queries/clientnegative/check_constraint_aggregate.q b/ql/src/test/queries/clientnegative/check_constraint_aggregate.q
index 937c692..0d4dbe8 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_aggregate.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_aggregate.q
@@ -1,2 +1,2 @@
 -- aggregates are not allowed
-create table tti(i int check sum(i) > 5);
+create table tti(i int check (sum(i) > 5));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_max_length.q b/ql/src/test/queries/clientnegative/check_constraint_max_length.q
index 9af7451..01d7114 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_max_length.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_max_length.q
@@ -1,4 +1,4 @@
 -- max allowed length for check value is 255
 -- create with check expression length 256
 create table t (i int, j string CHECK
-	j > '345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234');
+	(j > '345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234'));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_nonboolean_expr.q b/ql/src/test/queries/clientnegative/check_constraint_nonboolean_expr.q
index 290f97d..32e845a 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_nonboolean_expr.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_nonboolean_expr.q
@@ -1,2 +1,2 @@
 -- invalid expression
-create table tti(i int , j int CHECK i+j);
+create table tti(i int , j int CHECK (i+j));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_qual_name.q b/ql/src/test/queries/clientnegative/check_constraint_qual_name.q
index 8b14961..6a3ec47 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_qual_name.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_qual_name.q
@@ -1,2 +1,2 @@
 -- FULLY Qualified names are not allowed as check expression
-create table tconstr(i int, j int CHECK tconstr.i>j);
+create table tconstr(i int, j int CHECK (tconstr.i>j));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_subquery.q b/ql/src/test/queries/clientnegative/check_constraint_subquery.q
index 136633c..1e3eca5 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_subquery.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_subquery.q
@@ -1,2 +1,2 @@
 -- Subqueries are not allowed as check expression
-create table tconstr(i int check 3=(select count(*) from t));
+create table tconstr(i int check (3=(select count(*) from t)));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_tbl_level.q b/ql/src/test/queries/clientnegative/check_constraint_tbl_level.q
index d7794ca..078b140 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_tbl_level.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_tbl_level.q
@@ -1,3 +1,3 @@
-create table tti(i int , j int, constraint ch1 check i > j);
+create table tti(i int , j int, constraint ch1 check (i > j));
 
 insert into tti values(1,2);
diff --git a/ql/src/test/queries/clientnegative/check_constraint_temporary_udf.q b/ql/src/test/queries/clientnegative/check_constraint_temporary_udf.q
index d883290..cf68cfb 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_temporary_udf.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_temporary_udf.q
@@ -1,3 +1,3 @@
 -- user defined temporary UDFs are not allowed
 CREATE TEMPORARY FUNCTION test_udf2 AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString';
-CREATE TABLE tudf(v string CHECK test_udf2(v) <> 'vin');
+CREATE TABLE tudf(v string CHECK (test_udf2(v) <> 'vin'));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_udtf.q b/ql/src/test/queries/clientnegative/check_constraint_udtf.q
index 0d337ae..eca5891 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_udtf.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_udtf.q
@@ -1,2 +1,2 @@
 -- UDTFs are not allowed as check expression
-create table tconstr(i int check explode(array(2,3)));
+create table tconstr(i int check (explode(array(2,3))));
diff --git a/ql/src/test/queries/clientnegative/check_constraint_violation.q b/ql/src/test/queries/clientnegative/check_constraint_violation.q
index 716b16a..0ce4a6f 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_violation.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_violation.q
@@ -1,2 +1,2 @@
-create table tti(i int check i > 5);
+create table tti(i int check (i > 5));
 insert into tti values(5);
diff --git a/ql/src/test/queries/clientnegative/check_constraint_window_fun.q b/ql/src/test/queries/clientnegative/check_constraint_window_fun.q
index da2f763..3916981 100644
--- a/ql/src/test/queries/clientnegative/check_constraint_window_fun.q
+++ b/ql/src/test/queries/clientnegative/check_constraint_window_fun.q
@@ -1,2 +1,2 @@
 -- Window functions are not allowed as check expression
-create table tconstr(i int check lead(i, 1) > 3);
+create table tconstr(i int check (lead(i, 1) > 3));
diff --git a/ql/src/test/queries/clientnegative/create_external_with_check_constraint.q b/ql/src/test/queries/clientnegative/create_external_with_check_constraint.q
index f52f02b..d4c1514 100644
--- a/ql/src/test/queries/clientnegative/create_external_with_check_constraint.q
+++ b/ql/src/test/queries/clientnegative/create_external_with_check_constraint.q
@@ -1 +1 @@
-CREATE external TABLE table1 (a INT CHECK a > b DISABLE, b STRING);
+CREATE external TABLE table1 (a INT CHECK (a > b) DISABLE, b STRING);
diff --git a/ql/src/test/queries/clientpositive/check_constraint.q b/ql/src/test/queries/clientpositive/check_constraint.q
index 8c3831b..2021102 100644
--- a/ql/src/test/queries/clientpositive/check_constraint.q
+++ b/ql/src/test/queries/clientpositive/check_constraint.q
@@ -2,12 +2,12 @@ set hive.stats.autogather=false;
 set hive.support.concurrency=true;
 set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
 
-CREATE TABLE table1_n0(i int CHECK -i > -10,
-    j int CHECK +j > 10,
-    ij boolean CHECK ij IS NOT NULL,
-    a int CHECK a BETWEEN i AND j,
-    bb float CHECK bb IN (23.4,56,4),
-    d bigint CHECK d > round(567.6) AND d < round(1000.4))
+CREATE TABLE table1_n0(i int CHECK (-i > -10),
+    j int CHECK (+j > 10),
+    ij boolean CHECK (ij IS NOT NULL),
+    a int CHECK (a BETWEEN i AND j),
+    bb float CHECK (bb IN (23.4,56,4)),
+    d bigint CHECK (d > round(567.6) AND d < round(1000.4)))
     clustered by (i) into 2 buckets stored as orc TBLPROPERTIES('transactional'='true');
 DESC FORMATTED table1_n0;
 
@@ -17,7 +17,7 @@ SELECT * from table1_n0;
 DROP TABLE table1_n0;
 
 -- null check constraint
-CREATE TABLE table2_n0(i int CHECK i + NULL > 0);
+CREATE TABLE table2_n0(i int CHECK (i + NULL > 0));
 DESC FORMATTED table2_n0;
 EXPLAIN INSERT INTO table2_n0 values(8);
 INSERT INTO table2_n0 values(8);
@@ -26,12 +26,12 @@ Drop table table2_n0;
 
 -- UDF created by users
 CREATE FUNCTION test_udf2 AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString';
-CREATE TABLE tudf(v string CHECK test_udf2(v) <> 'vin');
+CREATE TABLE tudf(v string CHECK (test_udf2(v) <> 'vin'));
 EXPLAIN INSERT INTO tudf values('function1');
 Drop table tudf;
 
 -- multiple constraints
-create table tmulti(url string NOT NULL ENABLE, userName string, numClicks int CHECK numClicks > 0, d date);
+create table tmulti(url string NOT NULL ENABLE, userName string, numClicks int CHECK (numClicks > 0), d date);
 alter table tmulti add constraint un1 UNIQUE (userName, numClicks) DISABLE;
 DESC formatted tmulti;
 EXPLAIN INSERT INTO tmulti values('hive.apache.com', 'user1', 48, '12-01-2018');
@@ -49,7 +49,7 @@ Select * from tmulti;
 Drop table tmulti;
 
 -- case insentivity
-create table tcase(url string NOT NULL ENABLE, userName string, d date, numClicks int CHECK numclicks > 0);
+create table tcase(url string NOT NULL ENABLE, userName string, d date, numClicks int CHECK (numclicks > 0));
 DESC formatted tcase;
 EXPLAIN INSERT INTO tcase values('hive.apache.com', 'user1', '12-01-2018', 48);
 INSERT INTO tcase values('hive.apache.com', 'user1', '12-01-2018', 48);
@@ -58,7 +58,7 @@ Drop table tcase;
 
 -- cast
 create table tcast(url string NOT NULL ENABLE, numClicks int,
-    price FLOAT CHECK cast(numClicks as FLOAT)*price > 10.00);
+    price FLOAT CHECK (cast(numClicks as FLOAT)*price > 10.00));
 DESC FORMATTED tcast;
 EXPLAIN INSERT INTO tcast values('www.google.com', 100, cast(0.5 as float));
 INSERT INTO tcast values('www.google.com', 100, cast(0.5 as float));
@@ -71,7 +71,7 @@ DROP TABLE tcast;
 
 -- complex expression
 create table texpr(i int DEFAULT 89, f float NOT NULL ENABLE, d decimal(4,1),
-    b boolean CHECK ((cast(d as float) + f) < cast(i as float) + (i*i)));
+    b boolean CHECK (((cast(d as float) + f) < cast(i as float) + (i*i))));
 DESC FORMATTED texpr;
 explain insert into texpr values(3,3.4,5.6,true);
 insert into texpr values(3,3.4,5.6,true);
@@ -81,7 +81,7 @@ DROP TABLE texpr;
 -- UPDATE
 create table acid_uami_n0(i int,
                  de decimal(5,2) constraint nn1 not null enforced,
-                 vc varchar(128) constraint ch2 CHECK de >= cast(i as decimal(5,2)) enforced)
+                 vc varchar(128) constraint ch2 CHECK (de >= cast(i as decimal(5,2))) enforced)
                  clustered by (i) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true');
 DESC FORMATTED acid_uami_n0;
 
@@ -132,7 +132,7 @@ select * from acid_uami_n0 order by vc limit 15;
 DROP TABLE acid_uami_n0;
 
 -- MERGE
-create table tmerge(key int CHECK key > 0 AND (key < 100 OR key = 5) enable, a1 string NOT NULL, value string)
+create table tmerge(key int CHECK (key > 0 AND (key < 100 OR key = 5)) enable, a1 string NOT NULL, value string)
 clustered by (value) into 2 buckets stored as orc
 tblproperties ("transactional"="true");
 DESC FORMATTED tmerge;
@@ -162,7 +162,7 @@ DROP TABLE nonacid;
 
 -- drop constraint
 CREATE TABLE numericDataType(a TINYINT CONSTRAINT tinyint_constraint DEFAULT 127Y ENABLE,
-    b bigint CONSTRAINT check1 CHECK b in(4,5) ENABLE)
+    b bigint CONSTRAINT check1 CHECK (b in(4,5)) ENABLE)
     clustered by (b) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true');
 DESC FORMATTED numericDataType;
 ALTER TABLE numericDataType DROP CONSTRAINT check1;
@@ -175,7 +175,7 @@ DROP TABLE numericDataType;
 
 -- column reference missing for column having check constraint
 -- NULL for column with check shouldn't be possible
-CREATE TABLE tcheck(a TINYINT, b bigint CONSTRAINT check1 CHECK b in(4,5) ENABLE)
+CREATE TABLE tcheck(a TINYINT, b bigint CONSTRAINT check1 CHECK (b in(4,5)) ENABLE)
     clustered by (b) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true');
 DESC FORMATTED tcheck;
 EXPLAIN INSERT INTO tcheck(a) values(1);
@@ -187,7 +187,7 @@ DROP TABLE tcheck;
 -- micro-managed table
 set hive.create.as.insert.only=true;
 set hive.exec.dynamic.partition.mode=nonstrict;
-create table part_mm(key int check key > 0 and key < 5000 enforced) partitioned by (key_mm int)
+create table part_mm(key int check (key > 0 and key < 5000) enforced) partitioned by (key_mm int)
     stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only");
 explain insert into table part_mm partition(key_mm=455) select key from src order by value limit 3;
 insert into table part_mm partition(key_mm=455) select key from src order by value desc limit 3;
@@ -197,12 +197,12 @@ drop table part_mm;
 
 -- rely, novalidate
 create table trely(i int);
-ALTER TABLE trely CHANGE i i int CHECK i>0 ENABLE NOVALIDATE RELY;
+ALTER TABLE trely CHANGE i i int CHECK (i>0) ENABLE NOVALIDATE RELY;
 DESC FORMATTED trely;
 DROP TABLE trely;
 
 -- table level constraint
-create table tbl1_n1(a string, b int, CONSTRAINT check1 CHECK a != '' AND b > 4);
+create table tbl1_n1(a string, b int, CONSTRAINT check1 CHECK (a != '' AND b > 4));
 desc formatted tbl1_n1;
 explain insert into tbl1_n1 values('a', 69);
 insert into tbl1_n1 values('a', 69);
diff --git a/ql/src/test/results/clientnegative/check_constraint_tbl_level.q.out b/ql/src/test/results/clientnegative/check_constraint_tbl_level.q.out
index 3ed9c25..6ab1f51 100644
--- a/ql/src/test/results/clientnegative/check_constraint_tbl_level.q.out
+++ b/ql/src/test/results/clientnegative/check_constraint_tbl_level.q.out
@@ -1,8 +1,8 @@
-PREHOOK: query: create table tti(i int , j int, constraint ch1 check i > j)
+PREHOOK: query: create table tti(i int , j int, constraint ch1 check (i > j))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tti
-POSTHOOK: query: create table tti(i int , j int, constraint ch1 check i > j)
+POSTHOOK: query: create table tti(i int , j int, constraint ch1 check (i > j))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tti
diff --git a/ql/src/test/results/clientnegative/check_constraint_violation.q.out b/ql/src/test/results/clientnegative/check_constraint_violation.q.out
index 82f367c..9c86ad9 100644
--- a/ql/src/test/results/clientnegative/check_constraint_violation.q.out
+++ b/ql/src/test/results/clientnegative/check_constraint_violation.q.out
@@ -1,8 +1,8 @@
-PREHOOK: query: create table tti(i int check i > 5)
+PREHOOK: query: create table tti(i int check (i > 5))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tti
-POSTHOOK: query: create table tti(i int check i > 5)
+POSTHOOK: query: create table tti(i int check (i > 5))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tti
diff --git a/ql/src/test/results/clientnegative/subquery_subquery_chain.q.out b/ql/src/test/results/clientnegative/subquery_subquery_chain.q.out
index ca9d03a..4542508 100644
--- a/ql/src/test/results/clientnegative/subquery_subquery_chain.q.out
+++ b/ql/src/test/results/clientnegative/subquery_subquery_chain.q.out
@@ -1 +1 @@
-FAILED: ParseException line 5:39 cannot recognize input near 'in' '(' 'select' in expression specification
+FAILED: ParseException line 6:39 missing EOF at 'in' near ')'
diff --git a/ql/src/test/results/clientpositive/llap/check_constraint.q.out b/ql/src/test/results/clientpositive/llap/check_constraint.q.out
index dcf4edc..2ba9bed 100644
--- a/ql/src/test/results/clientpositive/llap/check_constraint.q.out
+++ b/ql/src/test/results/clientpositive/llap/check_constraint.q.out
@@ -1,19 +1,19 @@
-PREHOOK: query: CREATE TABLE table1_n0(i int CHECK -i > -10,
-    j int CHECK +j > 10,
-    ij boolean CHECK ij IS NOT NULL,
-    a int CHECK a BETWEEN i AND j,
-    bb float CHECK bb IN (23.4,56,4),
-    d bigint CHECK d > round(567.6) AND d < round(1000.4))
+PREHOOK: query: CREATE TABLE table1_n0(i int CHECK (-i > -10),
+    j int CHECK (+j > 10),
+    ij boolean CHECK (ij IS NOT NULL),
+    a int CHECK (a BETWEEN i AND j),
+    bb float CHECK (bb IN (23.4,56,4)),
+    d bigint CHECK (d > round(567.6) AND d < round(1000.4)))
     clustered by (i) into 2 buckets stored as orc TBLPROPERTIES('transactional'='true')
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@table1_n0
-POSTHOOK: query: CREATE TABLE table1_n0(i int CHECK -i > -10,
-    j int CHECK +j > 10,
-    ij boolean CHECK ij IS NOT NULL,
-    a int CHECK a BETWEEN i AND j,
-    bb float CHECK bb IN (23.4,56,4),
-    d bigint CHECK d > round(567.6) AND d < round(1000.4))
+POSTHOOK: query: CREATE TABLE table1_n0(i int CHECK (-i > -10),
+    j int CHECK (+j > 10),
+    ij boolean CHECK (ij IS NOT NULL),
+    a int CHECK (a BETWEEN i AND j),
+    bb float CHECK (bb IN (23.4,56,4)),
+    d bigint CHECK (d > round(567.6) AND d < round(1000.4)))
     clustered by (i) into 2 buckets stored as orc TBLPROPERTIES('transactional'='true')
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
@@ -187,11 +187,11 @@ POSTHOOK: query: DROP TABLE table1_n0
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@table1_n0
 POSTHOOK: Output: default@table1_n0
-PREHOOK: query: CREATE TABLE table2_n0(i int CHECK i + NULL > 0)
+PREHOOK: query: CREATE TABLE table2_n0(i int CHECK (i + NULL > 0))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@table2_n0
-POSTHOOK: query: CREATE TABLE table2_n0(i int CHECK i + NULL > 0)
+POSTHOOK: query: CREATE TABLE table2_n0(i int CHECK (i + NULL > 0))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@table2_n0
@@ -328,11 +328,11 @@ POSTHOOK: query: CREATE FUNCTION test_udf2 AS 'org.apache.hadoop.hive.ql.udf.gen
 POSTHOOK: type: CREATEFUNCTION
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default.test_udf2
-PREHOOK: query: CREATE TABLE tudf(v string CHECK test_udf2(v) <> 'vin')
+PREHOOK: query: CREATE TABLE tudf(v string CHECK (test_udf2(v) <> 'vin'))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tudf
-POSTHOOK: query: CREATE TABLE tudf(v string CHECK test_udf2(v) <> 'vin')
+POSTHOOK: query: CREATE TABLE tudf(v string CHECK (test_udf2(v) <> 'vin'))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tudf
@@ -406,11 +406,11 @@ POSTHOOK: query: Drop table tudf
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tudf
 POSTHOOK: Output: default@tudf
-PREHOOK: query: create table tmulti(url string NOT NULL ENABLE, userName string, numClicks int CHECK numClicks > 0, d date)
+PREHOOK: query: create table tmulti(url string NOT NULL ENABLE, userName string, numClicks int CHECK (numClicks > 0), d date)
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tmulti
-POSTHOOK: query: create table tmulti(url string NOT NULL ENABLE, userName string, numClicks int CHECK numClicks > 0, d date)
+POSTHOOK: query: create table tmulti(url string NOT NULL ENABLE, userName string, numClicks int CHECK (numClicks > 0), d date)
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tmulti
@@ -626,10 +626,10 @@ Column Name:        	url
 # Check Constraints	 	 
 Table:              	default.tmulti      	 
 Constraint Name:    	chk1                	 
-Column Name:null    	Check Value:(userName != NULL)	 
+Column Name:null    	Check Value:userName != NULL	 
 	 	 
 Constraint Name:    	chk2                	 
-Column Name:null    	Check Value:(numClicks <= 10000 AND userName != '')	 
+Column Name:null    	Check Value:numClicks <= 10000 AND userName != ''	 
 	 	 
 Constraint Name:    	#### A masked pattern was here ####	 
 Column Name:numclicks	Check Value:numClicks > 0	 
@@ -729,11 +729,11 @@ POSTHOOK: query: Drop table tmulti
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tmulti
 POSTHOOK: Output: default@tmulti
-PREHOOK: query: create table tcase(url string NOT NULL ENABLE, userName string, d date, numClicks int CHECK numclicks > 0)
+PREHOOK: query: create table tcase(url string NOT NULL ENABLE, userName string, d date, numClicks int CHECK (numclicks > 0))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tcase
-POSTHOOK: query: create table tcase(url string NOT NULL ENABLE, userName string, d date, numClicks int CHECK numclicks > 0)
+POSTHOOK: query: create table tcase(url string NOT NULL ENABLE, userName string, d date, numClicks int CHECK (numclicks > 0))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tcase
@@ -879,12 +879,12 @@ POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tcase
 POSTHOOK: Output: default@tcase
 PREHOOK: query: create table tcast(url string NOT NULL ENABLE, numClicks int,
-    price FLOAT CHECK cast(numClicks as FLOAT)*price > 10.00)
+    price FLOAT CHECK (cast(numClicks as FLOAT)*price > 10.00))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tcast
 POSTHOOK: query: create table tcast(url string NOT NULL ENABLE, numClicks int,
-    price FLOAT CHECK cast(numClicks as FLOAT)*price > 10.00)
+    price FLOAT CHECK (cast(numClicks as FLOAT)*price > 10.00))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tcast
@@ -1111,12 +1111,12 @@ POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tcast
 POSTHOOK: Output: default@tcast
 PREHOOK: query: create table texpr(i int DEFAULT 89, f float NOT NULL ENABLE, d decimal(4,1),
-    b boolean CHECK ((cast(d as float) + f) < cast(i as float) + (i*i)))
+    b boolean CHECK (((cast(d as float) + f) < cast(i as float) + (i*i))))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@texpr
 POSTHOOK: query: create table texpr(i int DEFAULT 89, f float NOT NULL ENABLE, d decimal(4,1),
-    b boolean CHECK ((cast(d as float) + f) < cast(i as float) + (i*i)))
+    b boolean CHECK (((cast(d as float) + f) < cast(i as float) + (i*i))))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@texpr
@@ -1269,14 +1269,14 @@ POSTHOOK: Input: default@texpr
 POSTHOOK: Output: default@texpr
 PREHOOK: query: create table acid_uami_n0(i int,
                  de decimal(5,2) constraint nn1 not null enforced,
-                 vc varchar(128) constraint ch2 CHECK de >= cast(i as decimal(5,2)) enforced)
+                 vc varchar(128) constraint ch2 CHECK (de >= cast(i as decimal(5,2))) enforced)
                  clustered by (i) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@acid_uami_n0
 POSTHOOK: query: create table acid_uami_n0(i int,
                  de decimal(5,2) constraint nn1 not null enforced,
-                 vc varchar(128) constraint ch2 CHECK de >= cast(i as decimal(5,2)) enforced)
+                 vc varchar(128) constraint ch2 CHECK (de >= cast(i as decimal(5,2))) enforced)
                  clustered by (i) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
@@ -2158,13 +2158,13 @@ POSTHOOK: query: DROP TABLE acid_uami_n0
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@acid_uami_n0
 POSTHOOK: Output: default@acid_uami_n0
-PREHOOK: query: create table tmerge(key int CHECK key > 0 AND (key < 100 OR key = 5) enable, a1 string NOT NULL, value string)
+PREHOOK: query: create table tmerge(key int CHECK (key > 0 AND (key < 100 OR key = 5)) enable, a1 string NOT NULL, value string)
 clustered by (value) into 2 buckets stored as orc
 tblproperties ("transactional"="true")
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tmerge
-POSTHOOK: query: create table tmerge(key int CHECK key > 0 AND (key < 100 OR key = 5) enable, a1 string NOT NULL, value string)
+POSTHOOK: query: create table tmerge(key int CHECK (key > 0 AND (key < 100 OR key = 5)) enable, a1 string NOT NULL, value string)
 clustered by (value) into 2 buckets stored as orc
 tblproperties ("transactional"="true")
 POSTHOOK: type: CREATETABLE
@@ -2901,13 +2901,13 @@ POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@nonacid
 POSTHOOK: Output: default@nonacid
 PREHOOK: query: CREATE TABLE numericDataType(a TINYINT CONSTRAINT tinyint_constraint DEFAULT 127Y ENABLE,
-    b bigint CONSTRAINT check1 CHECK b in(4,5) ENABLE)
+    b bigint CONSTRAINT check1 CHECK (b in(4,5)) ENABLE)
     clustered by (b) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@numericDataType
 POSTHOOK: query: CREATE TABLE numericDataType(a TINYINT CONSTRAINT tinyint_constraint DEFAULT 127Y ENABLE,
-    b bigint CONSTRAINT check1 CHECK b in(4,5) ENABLE)
+    b bigint CONSTRAINT check1 CHECK (b in(4,5)) ENABLE)
     clustered by (b) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
@@ -3105,12 +3105,12 @@ POSTHOOK: query: DROP TABLE numericDataType
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@numericdatatype
 POSTHOOK: Output: default@numericdatatype
-PREHOOK: query: CREATE TABLE tcheck(a TINYINT, b bigint CONSTRAINT check1 CHECK b in(4,5) ENABLE)
+PREHOOK: query: CREATE TABLE tcheck(a TINYINT, b bigint CONSTRAINT check1 CHECK (b in(4,5)) ENABLE)
     clustered by (b) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tcheck
-POSTHOOK: query: CREATE TABLE tcheck(a TINYINT, b bigint CONSTRAINT check1 CHECK b in(4,5) ENABLE)
+POSTHOOK: query: CREATE TABLE tcheck(a TINYINT, b bigint CONSTRAINT check1 CHECK (b in(4,5)) ENABLE)
     clustered by (b) into 2 buckets stored as orc TBLPROPERTIES ('transactional'='true')
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
@@ -3340,12 +3340,12 @@ POSTHOOK: query: DROP TABLE tcheck
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@tcheck
 POSTHOOK: Output: default@tcheck
-PREHOOK: query: create table part_mm(key int check key > 0 and key < 5000 enforced) partitioned by (key_mm int)
+PREHOOK: query: create table part_mm(key int check (key > 0 and key < 5000) enforced) partitioned by (key_mm int)
     stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only")
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@part_mm
-POSTHOOK: query: create table part_mm(key int check key > 0 and key < 5000 enforced) partitioned by (key_mm int)
+POSTHOOK: query: create table part_mm(key int check (key > 0 and key < 5000) enforced) partitioned by (key_mm int)
     stored as orc tblproperties ("transactional"="true", "transactional_properties"="insert_only")
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
@@ -3480,11 +3480,11 @@ POSTHOOK: query: create table trely(i int)
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@trely
-PREHOOK: query: ALTER TABLE trely CHANGE i i int CHECK i>0 ENABLE NOVALIDATE RELY
+PREHOOK: query: ALTER TABLE trely CHANGE i i int CHECK (i>0) ENABLE NOVALIDATE RELY
 PREHOOK: type: ALTERTABLE_RENAMECOL
 PREHOOK: Input: default@trely
 PREHOOK: Output: default@trely
-POSTHOOK: query: ALTER TABLE trely CHANGE i i int CHECK i>0 ENABLE NOVALIDATE RELY
+POSTHOOK: query: ALTER TABLE trely CHANGE i i int CHECK (i>0) ENABLE NOVALIDATE RELY
 POSTHOOK: type: ALTERTABLE_RENAMECOL
 POSTHOOK: Input: default@trely
 POSTHOOK: Output: default@trely
@@ -3536,11 +3536,11 @@ POSTHOOK: query: DROP TABLE trely
 POSTHOOK: type: DROPTABLE
 POSTHOOK: Input: default@trely
 POSTHOOK: Output: default@trely
-PREHOOK: query: create table tbl1_n1(a string, b int, CONSTRAINT check1 CHECK a != '' AND b > 4)
+PREHOOK: query: create table tbl1_n1(a string, b int, CONSTRAINT check1 CHECK (a != '' AND b > 4))
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@tbl1_n1
-POSTHOOK: query: create table tbl1_n1(a string, b int, CONSTRAINT check1 CHECK a != '' AND b > 4)
+POSTHOOK: query: create table tbl1_n1(a string, b int, CONSTRAINT check1 CHECK (a != '' AND b > 4))
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tbl1_n1
@@ -3714,7 +3714,7 @@ Constraint Name:    	check1
 Column Name:null    	Check Value:a != '' AND b > 4	 
 	 	 
 Constraint Name:    	chk2                	 
-Column Name:null    	Check Value:(b < 100)	 
+Column Name:null    	Check Value:b < 100 	 
 	 	 
 PREHOOK: query: explain insert into tbl1_n1 values('a', 69)
 PREHOOK: type: QUERY