You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2018/06/04 05:16:46 UTC
hive git commit: HIVE-19644 : change WM syntax to avoid conflicts
with identifiers starting with a number (Sergey Shelukhin via Ashutosh
Chauhan)
Repository: hive
Updated Branches:
refs/heads/master a929d4c40 -> a95ec1e14
HIVE-19644 : change WM syntax to avoid conflicts with identifiers starting with a number (Sergey Shelukhin via Ashutosh Chauhan)
Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a95ec1e1
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a95ec1e1
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a95ec1e1
Branch: refs/heads/master
Commit: a95ec1e143db3ba36127dc9de07b047bf3857a74
Parents: a929d4c
Author: Sergey Shelukhin <se...@apache.org>
Authored: Wed May 23 18:34:00 2018 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Sun Jun 3 22:16:25 2018 -0700
----------------------------------------------------------------------
.../jdbc/TestTriggersMoveWorkloadManager.java | 4 +-
.../hive/ql/parse/DDLSemanticAnalyzer.java | 2 +-
.../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 15 ----
.../hadoop/hive/ql/parse/ResourcePlanParser.g | 4 +-
.../hadoop/hive/ql/wm/ExpressionFactory.java | 4 +-
.../hive/ql/wm/TestExpressionFactory.java | 20 ++---
.../apache/hadoop/hive/ql/wm/TestTrigger.java | 47 ++++++------
.../queries/clientpositive/authorization_wm.q | 16 ++--
.../test/queries/clientpositive/resourceplan.q | 44 ++++++-----
.../clientpositive/authorization_wm.q.out | 24 +++---
.../clientpositive/llap/resourceplan.q.out | 78 ++++++++++++++------
11 files changed, 141 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java
index e403d28..5df5ede 100644
--- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java
+++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java
@@ -86,8 +86,8 @@ public class TestTriggersMoveWorkloadManager extends AbstractJdbcTriggersTest {
@Test(timeout = 60000)
public void testTriggerMoveAndKill() throws Exception {
- Expression moveExpression = ExpressionFactory.fromString("EXECUTION_TIME > 1sec");
- Expression killExpression = ExpressionFactory.fromString("EXECUTION_TIME > 5000ms");
+ Expression moveExpression = ExpressionFactory.fromString("EXECUTION_TIME > '1sec'");
+ Expression killExpression = ExpressionFactory.fromString("EXECUTION_TIME > '5000ms'");
Trigger moveTrigger = new ExecutionTrigger("slow_query_move", moveExpression,
new Action(Action.Type.MOVE_TO_POOL, "ETL"));
Trigger killTrigger = new ExecutionTrigger("slow_query_kill", killExpression,
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
index 37e9845..2dea254 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
@@ -1097,7 +1097,7 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
}
StringBuilder builder = new StringBuilder();
for (int i = 0; i < ast.getChildCount(); ++i) {
- builder.append(ast.getChild(i).getText());
+ builder.append(stripQuotes(ast.getChild(i).getText()));
builder.append(' ');
}
builder.deleteCharAt(builder.length() - 1);
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
index 09a4368..d4b5782 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
@@ -472,21 +472,6 @@ ByteLengthLiteral
(Digit)+ ('b' | 'B' | 'k' | 'K' | 'm' | 'M' | 'g' | 'G')
;
-TimeFullLiteral
- :
- (Digit)+ ('NS' | 'NSEC' | 'NSECS' | 'NANOSECOND' | 'NANOSECONDS' |
- 'US' | 'USEC' | 'USECS' | 'MICROSECOND' | 'MICROSECONDS' |
- 'MS' | 'MSEC' | 'MSECS' | 'MILLISECOND' | 'MILLISECONDS' |
- 'SEC' | 'SECS' | 'SECOND' | 'SECONDS' |
- 'MIN' | 'MINS' | 'MINUTE' | 'MINUTES' |
- 'HOUR' | 'HOURS' | 'DAY' | 'DAYS')
- ;
-
-ByteLengthFullLiteral
- :
- (Digit)+ ('KB' | 'MB' | 'GB' | 'TB' | 'PB')
- ;
-
Number
:
(Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/java/org/apache/hadoop/hive/ql/parse/ResourcePlanParser.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ResourcePlanParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/ResourcePlanParser.g
index 21f2d45..f8c47f9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ResourcePlanParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ResourcePlanParser.g
@@ -179,12 +179,12 @@ triggerAtomExpression
: identifier comparisionOperator triggerLiteral
;
+
triggerLiteral
@init { gParent.pushMsg("triggerLiteral", state); }
@after { gParent.popMsg(state); }
: Number
- | TimeFullLiteral
- | ByteLengthFullLiteral
+ | StringLiteral
;
comparisionOperator
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/java/org/apache/hadoop/hive/ql/wm/ExpressionFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/wm/ExpressionFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/wm/ExpressionFactory.java
index 2299a1b..aca2c04 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/wm/ExpressionFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/wm/ExpressionFactory.java
@@ -23,6 +23,7 @@ import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.HiveParser;
import org.apache.hadoop.hive.ql.parse.ParseDriver;
import org.apache.hadoop.hive.ql.parse.ParseException;
+import org.apache.hadoop.hive.ql.plan.PlanUtils;
/**
* Factory to create expressions
@@ -60,7 +61,8 @@ public class ExpressionFactory {
}
final String counterName = node.getChild(0).getText();
- final String counterValueStr = node.getChild(2).getText().toLowerCase();
+ final String counterValueStr = PlanUtils.stripQuotes(
+ node.getChild(2).getText().toLowerCase());
if (counterName.isEmpty()) {
throw new IllegalArgumentException("Counter name cannot be empty!");
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/test/org/apache/hadoop/hive/ql/wm/TestExpressionFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/wm/TestExpressionFactory.java b/ql/src/test/org/apache/hadoop/hive/ql/wm/TestExpressionFactory.java
index 074794c..71e92c7 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/wm/TestExpressionFactory.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/wm/TestExpressionFactory.java
@@ -35,31 +35,31 @@ public class TestExpressionFactory {
assertEquals("BYTES_READ", expr.getCounterLimit().getName());
assertEquals(5, expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("BYTES_READ > 5kb");
+ expr = ExpressionFactory.fromString("BYTES_READ > '5kb'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("BYTES_READ", expr.getCounterLimit().getName());
assertEquals(5 * (1 << 10), expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("BYTES_READ > 2mb");
+ expr = ExpressionFactory.fromString("BYTES_READ > '2mb'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("BYTES_READ", expr.getCounterLimit().getName());
assertEquals(2 * (1 << 20), expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("BYTES_READ > 3gb");
+ expr = ExpressionFactory.fromString("BYTES_READ > '3gb'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("BYTES_READ", expr.getCounterLimit().getName());
assertEquals(3L * (1 << 30), expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("SHUFFLE_BYTES > 7tb");
+ expr = ExpressionFactory.fromString("SHUFFLE_BYTES > '7tb'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("SHUFFLE_BYTES", expr.getCounterLimit().getName());
assertEquals(7L * (1L << 40), expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("SHUFFLE_BYTES > 6pb");
+ expr = ExpressionFactory.fromString("SHUFFLE_BYTES > '6pb'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("SHUFFLE_BYTES", expr.getCounterLimit().getName());
@@ -82,31 +82,31 @@ public class TestExpressionFactory {
assertEquals("ELAPSED_TIME", expr.getCounterLimit().getName());
assertEquals(1, expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("ELAPSED_TIME > 1ms");
+ expr = ExpressionFactory.fromString("ELAPSED_TIME > '1ms'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("ELAPSED_TIME", expr.getCounterLimit().getName());
assertEquals(1, expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("ELAPSED_TIME > 1sec");
+ expr = ExpressionFactory.fromString("ELAPSED_TIME > '1sec'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("ELAPSED_TIME", expr.getCounterLimit().getName());
assertEquals(1000, expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("ELAPSED_TIME > 1min");
+ expr = ExpressionFactory.fromString("ELAPSED_TIME > '1min'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("ELAPSED_TIME", expr.getCounterLimit().getName());
assertEquals(60 * 1000, expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("ELAPSED_TIME > 1hour");
+ expr = ExpressionFactory.fromString("ELAPSED_TIME > '1hour'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("ELAPSED_TIME", expr.getCounterLimit().getName());
assertEquals(3600 * 1000, expr.getCounterLimit().getLimit());
- expr = ExpressionFactory.fromString("ELAPSED_TIME > 1day");
+ expr = ExpressionFactory.fromString("ELAPSED_TIME > '1day'");
assertNotNull(expr);
assertEquals(Predicate.GREATER_THAN, expr.getPredicate());
assertEquals("ELAPSED_TIME", expr.getCounterLimit().getName());
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/test/org/apache/hadoop/hive/ql/wm/TestTrigger.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/wm/TestTrigger.java b/ql/src/test/org/apache/hadoop/hive/ql/wm/TestTrigger.java
index 3953d4c..b86c58a 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/wm/TestTrigger.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/wm/TestTrigger.java
@@ -193,19 +193,19 @@ public class TestTrigger {
@Test
public void testSizeValidationInTrigger() {
- Expression expression = ExpressionFactory.fromString(" SHUFFLE_BYTES > 100MB");
+ Expression expression = ExpressionFactory.fromString(" SHUFFLE_BYTES > '100MB'");
Expression expected = ExpressionFactory.createExpression(new FileSystemCounterLimit("",
FileSystemCounterLimit.FSCounter.SHUFFLE_BYTES, 100 * 1024 * 1024));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" SHUFFLE_BYTES > 1gB");
+ expression = ExpressionFactory.fromString(" SHUFFLE_BYTES > '1gB'");
expected = ExpressionFactory.createExpression(new FileSystemCounterLimit("",
FileSystemCounterLimit.FSCounter.SHUFFLE_BYTES, 1024 * 1024 * 1024));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" SHUFFLE_BYTES > 1TB");
+ expression = ExpressionFactory.fromString(" SHUFFLE_BYTES > '1TB'");
expected = ExpressionFactory.createExpression(new FileSystemCounterLimit("",
FileSystemCounterLimit.FSCounter.SHUFFLE_BYTES, 1024L * 1024 * 1024 * 1024));
assertEquals(expected, expression);
@@ -227,69 +227,67 @@ public class TestTrigger {
@Test
public void testIllegalSizeCounterValue1() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: SHUFFLE_BYTES > 300GiB");
- ExpressionFactory.fromString(" SHUFFLE_BYTES > 300GiB");
+ ExpressionFactory.fromString(" SHUFFLE_BYTES > '300GiB'");
}
@Test
public void testIllegalSizeCounterValue2() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: SHUFFLE_BYTES > 300 foo");
- ExpressionFactory.fromString(" SHUFFLE_BYTES > 300 foo");
+ ExpressionFactory.fromString(" SHUFFLE_BYTES > '300 foo'");
}
@Test
public void testTimeValidationInTrigger() {
- Expression expression = ExpressionFactory.fromString(" elapsed_TIME > 300sec");
+ Expression expression = ExpressionFactory.fromString(" elapsed_TIME > '300sec'");
Expression expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300seconds");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300seconds'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300sec");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300sec'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300second");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300second'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300seconds");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300seconds'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300sec");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300sec'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300000ms");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300000ms'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 300000000microseconds");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '300000000microseconds'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 300000));
assertEquals(expected, expression);
assertEquals(expected.hashCode(), expression.hashCode());
- expression = ExpressionFactory.fromString(" elapsed_TIME > 1DAY");
+ expression = ExpressionFactory.fromString(" elapsed_TIME > '1DAY'");
expected = ExpressionFactory.createExpression(new TimeCounterLimit(TimeCounterLimit.TimeCounter
.ELAPSED_TIME, 24 * 60 * 60 * 1000));
assertEquals(expected, expression);
@@ -299,15 +297,13 @@ public class TestTrigger {
@Test
public void testIllegalTimeCounterValue1() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: elapsed_TIME > 300lightyears");
- ExpressionFactory.fromString(" elapsed_TIME > 300lightyears");
+ ExpressionFactory.fromString(" elapsed_TIME > '300lightyears'");
}
@Test
public void testIllegalTimeCounterValue2() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: elapsed_TIME > 300secTOR");
- ExpressionFactory.fromString(" elapsed_TIME > 300secTOR");
+ ExpressionFactory.fromString(" elapsed_TIME > '300secTOR'");
}
@Test
@@ -383,23 +379,26 @@ public class TestTrigger {
}
@Test
+ public void testIllegalExpressionsNoQuoutes() {
+ thrown.expect(IllegalArgumentException.class);
+ ExpressionFactory.fromString("BYTES_READ > 1mb");
+ }
+
+ @Test
public void testIllegalExpressionsInvalidLimitPost() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: BYTES_READ > 1024aaaa");
- ExpressionFactory.fromString("BYTES_READ > 1024aaaa");
+ ExpressionFactory.fromString("BYTES_READ > '1024aaaa'");
}
@Test
public void testIllegalExpressionsInvalidLimitPre() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: BYTES_READ > foo1024");
ExpressionFactory.fromString("BYTES_READ > foo1024");
}
@Test
public void testIllegalExpressionsInvalidNegativeLimit() {
thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid expression: BYTES_READ > -1024");
ExpressionFactory.fromString("BYTES_READ > -1024");
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/test/queries/clientpositive/authorization_wm.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_wm.q b/ql/src/test/queries/clientpositive/authorization_wm.q
index 0a2b504..95019f1 100644
--- a/ql/src/test/queries/clientpositive/authorization_wm.q
+++ b/ql/src/test/queries/clientpositive/authorization_wm.q
@@ -20,14 +20,14 @@ explain authorization show resource plan rp;
explain authorization alter resource plan rp set query_parallelism = 5;
explain authorization drop resource plan rp;
explain authorization create pool rp.pool0 WITH ALLOC_FRACTION=1.0, QUERY_PARALLELISM=5, SCHEDULING_POLICY='default';
-explain authorization create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL;
+explain authorization create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL;
explain authorization create user mapping 'joe' IN rp UNMANAGED;
show resource plans;
show resource plan rp;
alter resource plan rp set query_parallelism = 5;
drop resource plan rp;
create pool rp.pool0 WITH ALLOC_FRACTION=1.0, QUERY_PARALLELISM=5, SCHEDULING_POLICY='default';
-create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL;
+create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL;
create user mapping 'joe' IN rp UNMANAGED;
set user.name=hive_admin_user;
@@ -37,7 +37,7 @@ explain authorization show resource plan rp;
explain authorization alter resource plan rp set query_parallelism = 5;
explain authorization drop resource plan rp;
explain authorization create pool rp.pool0 WITH ALLOC_FRACTION=1.0, QUERY_PARALLELISM=5, SCHEDULING_POLICY='default';
-explain authorization create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL;
+explain authorization create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL;
explain authorization create user mapping 'joe' IN rp UNMANAGED;
show resource plans;
show resource plan rp;
@@ -45,18 +45,18 @@ alter resource plan rp set query_parallelism = 5;
drop resource plan rp;
create resource plan rp;
create pool rp.pool0 WITH ALLOC_FRACTION=1.0, QUERY_PARALLELISM=5, SCHEDULING_POLICY='default';
-create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL;
+create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL;
create user mapping 'joe' IN rp UNMANAGED;
set user.name=ruser1;
explain authorization alter pool rp.pool0 SET QUERY_PARALLELISM=4;
-explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL;
+explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL;
explain authorization alter user mapping 'joe' IN rp TO pool0;
explain authorization drop user mapping 'joe' IN rp;
explain authorization drop pool rp.pool0;
explain authorization drop trigger rp.trigger0;
alter pool rp.pool0 SET QUERY_PARALLELISM=4;
-alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL;
+alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL;
alter user mapping 'joe' IN rp TO pool0;
drop user mapping 'joe' IN rp;
drop pool rp.pool0;
@@ -65,13 +65,13 @@ drop trigger rp.trigger0;
set user.name=hive_admin_user;
set role ADMIN;
explain authorization alter pool rp.pool0 SET QUERY_PARALLELISM=4;
-explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL;
+explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL;
explain authorization alter user mapping 'joe' IN rp TO pool0;
explain authorization drop user mapping 'joe' IN rp;
explain authorization drop pool rp.pool0;
explain authorization drop trigger rp.trigger0;
alter pool rp.pool0 SET QUERY_PARALLELISM=4;
-alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL;
+alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL;
alter user mapping 'joe' IN rp TO pool0;
drop user mapping 'joe' IN rp;
drop pool rp.pool0;
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/test/queries/clientpositive/resourceplan.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/resourceplan.q b/ql/src/test/queries/clientpositive/resourceplan.q
index 4cbdede..0c44da3 100644
--- a/ql/src/test/queries/clientpositive/resourceplan.q
+++ b/ql/src/test/queries/clientpositive/resourceplan.q
@@ -148,40 +148,46 @@ SELECT * FROM SYS.WM_RESOURCEPLANS;
-- Create trigger commands.
--
+-- Test that WM literals do not cause conflicts.
+create table wm_test(key string);
+select key as 30min from wm_test;
+select "10kb" as str from wm_test;
+drop table wm_test;
+
CREATE RESOURCE PLAN plan_1;
-CREATE TRIGGER plan_1.trigger_1 WHEN BYTES_READ > 10kb DO KILL;
+CREATE TRIGGER plan_1.trigger_1 WHEN BYTES_READ > '10kb' DO KILL;
SELECT * FROM SYS.WM_TRIGGERS;
-- Duplicate should fail.
CREATE TRIGGER plan_1.trigger_1 WHEN ELAPSED_TIME > 300 DO KILL;
-- Invalid triggers should fail.
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > 30sec AND BYTES_READ > 10 DO MOVE TO slow_pool;
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > 30second OR BYTES_READ > 10 DO MOVE TO slow_pool;
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME >= 30seconds DO MOVE TO slow_pool;
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME < 30hour DO MOVE TO slow_pool;
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME <= 30min DO MOVE TO slow_pool;
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME = 0day DO MOVE TO slow_pool;
-
-CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > 30hour DO MOVE TO slow_pool;
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > '30sec' AND BYTES_READ > 10 DO MOVE TO slow_pool;
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > '30second' OR BYTES_READ > 10 DO MOVE TO slow_pool;
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME >= '30seconds' DO MOVE TO slow_pool;
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME < '30hour' DO MOVE TO slow_pool;
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME <= '30min' DO MOVE TO slow_pool;
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME = '0day' DO MOVE TO slow_pool;
+
+CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > '30hour' DO MOVE TO slow_pool;
SELECT * FROM SYS.WM_TRIGGERS;
-ALTER TRIGGER plan_1.trigger_1 WHEN BYTES_READ > 1min DO KILL;
+ALTER TRIGGER plan_1.trigger_1 WHEN BYTES_READ > '1min' DO KILL;
SELECT * FROM SYS.WM_TRIGGERS;
DROP TRIGGER plan_1.trigger_1;
SELECT * FROM SYS.WM_TRIGGERS;
-- No edit on active resource plan.
-CREATE TRIGGER plan_2.trigger_1 WHEN BYTES_READ > 100mb DO MOVE TO null_pool;
+CREATE TRIGGER plan_2.trigger_1 WHEN BYTES_READ > '100mb' DO MOVE TO null_pool;
-- Add trigger with reserved keywords.
-CREATE TRIGGER `table`.`table` WHEN BYTES_WRITTEN > 100KB DO MOVE TO `table`;
-CREATE TRIGGER `table`.`trigger` WHEN BYTES_WRITTEN > 100MB DO MOVE TO `default`;
-CREATE TRIGGER `table`.`database` WHEN BYTES_WRITTEN > 1GB DO MOVE TO `default`;
+CREATE TRIGGER `table`.`table` WHEN BYTES_WRITTEN > '100KB' DO MOVE TO `table`;
+CREATE TRIGGER `table`.`trigger` WHEN BYTES_WRITTEN > '100MB' DO MOVE TO `default`;
+CREATE TRIGGER `table`.`database` WHEN BYTES_WRITTEN > "1GB" DO MOVE TO `default`;
CREATE TRIGGER `table`.`trigger1` WHEN ELAPSED_TIME > 10 DO KILL;
-CREATE TRIGGER `table`.`trigger2` WHEN ELAPSED_TIME > 1hour DO KILL;
+CREATE TRIGGER `table`.`trigger2` WHEN ELAPSED_TIME > '1hour' DO KILL;
SELECT * FROM SYS.WM_TRIGGERS;
DROP TRIGGER `table`.`database`;
SELECT * FROM SYS.WM_TRIGGERS;
@@ -190,13 +196,13 @@ SELECT * FROM SYS.WM_TRIGGERS;
ALTER RESOURCE PLAN plan_1 ENABLE;
SELECT * FROM SYS.WM_RESOURCEPLANS;
DROP TRIGGER plan_1.trigger_2;
-ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > 1000gb DO KILL;
+ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > "1000gb" DO KILL;
-- Cannot drop/change trigger from active plan.
ALTER RESOURCE PLAN plan_1 ACTIVATE;
SELECT * FROM SYS.WM_RESOURCEPLANS;
DROP TRIGGER plan_1.trigger_2;
-ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > 1000KB DO KILL;
+ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > "1000KB" DO KILL;
-- Once disabled we should be able to change it.
ALTER RESOURCE PLAN plan_2 DISABLE;
@@ -383,8 +389,8 @@ SELECT * FROM SYS.WM_MAPPINGS;
CREATE RESOURCE PLAN plan_4a LIKE plan_4;
CREATE POOL plan_4a.pool1 WITH SCHEDULING_POLICY='fair', QUERY_PARALLELISM=2, ALLOC_FRACTION=0.0;
CREATE USER MAPPING "user1" IN plan_4a TO pool1;
-CREATE TRIGGER plan_4a.trigger_1 WHEN BYTES_READ > 10GB DO KILL;
-CREATE TRIGGER plan_4a.trigger_2 WHEN BYTES_READ > 11GB DO KILL;
+CREATE TRIGGER plan_4a.trigger_1 WHEN BYTES_READ > '10GB' DO KILL;
+CREATE TRIGGER plan_4a.trigger_2 WHEN BYTES_READ > '11GB' DO KILL;
ALTER POOL plan_4a.pool1 ADD TRIGGER trigger_2;
CREATE RESOURCE PLAN plan_4b LIKE plan_4a;
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/test/results/clientpositive/authorization_wm.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/authorization_wm.q.out b/ql/src/test/results/clientpositive/authorization_wm.q.out
index 8a2a6d6..405a4a4 100644
--- a/ql/src/test/results/clientpositive/authorization_wm.q.out
+++ b/ql/src/test/results/clientpositive/authorization_wm.q.out
@@ -97,9 +97,9 @@ OPERATION:
CREATE_POOL
AUTHORIZATION_FAILURES:
Permission denied: Principal [name=ruser1, type=USER] does not have following privileges for operation CREATE_POOL [ADMIN PRIVILEGE on INPUT, ADMIN PRIVILEGE on OUTPUT]
-PREHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL
+PREHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL
PREHOOK: type: CREATE TRIGGER
-POSTHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL
+POSTHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL
POSTHOOK: type: CREATE TRIGGER
INPUTS:
OUTPUTS:
@@ -189,9 +189,9 @@ CURRENT_USER:
hive_admin_user
OPERATION:
CREATE_POOL
-PREHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL
+PREHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL
PREHOOK: type: CREATE TRIGGER
-POSTHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL
+POSTHOOK: query: explain authorization create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL
POSTHOOK: type: CREATE TRIGGER
INPUTS:
OUTPUTS:
@@ -245,10 +245,10 @@ PREHOOK: type: CREATE POOL
PREHOOK: Output: dummyHostnameForTest
POSTHOOK: query: create pool rp.pool0 WITH ALLOC_FRACTION=1.0, QUERY_PARALLELISM=5, SCHEDULING_POLICY='default'
POSTHOOK: type: CREATE POOL
-PREHOOK: query: create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL
+PREHOOK: query: create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: create trigger rp.trigger0 WHEN BYTES_READ > 10GB DO KILL
+POSTHOOK: query: create trigger rp.trigger0 WHEN BYTES_READ > '10GB' DO KILL
POSTHOOK: type: CREATE TRIGGER
PREHOOK: query: create user mapping 'joe' IN rp UNMANAGED
PREHOOK: type: CREATE MAPPING
@@ -268,9 +268,9 @@ OPERATION:
ALTER_POOL
AUTHORIZATION_FAILURES:
Permission denied: Principal [name=ruser1, type=USER] does not have following privileges for operation ALTER_POOL [ADMIN PRIVILEGE on INPUT, ADMIN PRIVILEGE on OUTPUT]
-PREHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL
+PREHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL
PREHOOK: type: ALTER TRIGGER
-POSTHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL
+POSTHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL
POSTHOOK: type: ALTER TRIGGER
INPUTS:
OUTPUTS:
@@ -354,9 +354,9 @@ CURRENT_USER:
hive_admin_user
OPERATION:
ALTER_POOL
-PREHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL
+PREHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL
PREHOOK: type: ALTER TRIGGER
-POSTHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL
+POSTHOOK: query: explain authorization alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL
POSTHOOK: type: ALTER TRIGGER
INPUTS:
OUTPUTS:
@@ -414,10 +414,10 @@ PREHOOK: type: ALTER POOL
PREHOOK: Output: dummyHostnameForTest
POSTHOOK: query: alter pool rp.pool0 SET QUERY_PARALLELISM=4
POSTHOOK: type: ALTER POOL
-PREHOOK: query: alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL
+PREHOOK: query: alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL
PREHOOK: type: ALTER TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: alter trigger rp.trigger0 WHEN BYTES_READ > 15GB DO KILL
+POSTHOOK: query: alter trigger rp.trigger0 WHEN BYTES_READ > '15GB' DO KILL
POSTHOOK: type: ALTER TRIGGER
PREHOOK: query: alter user mapping 'joe' IN rp TO pool0
PREHOOK: type: ALTER MAPPING
http://git-wip-us.apache.org/repos/asf/hive/blob/a95ec1e1/ql/src/test/results/clientpositive/llap/resourceplan.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/resourceplan.q.out b/ql/src/test/results/clientpositive/llap/resourceplan.q.out
index c7e9638..68cbf09 100644
--- a/ql/src/test/results/clientpositive/llap/resourceplan.q.out
+++ b/ql/src/test/results/clientpositive/llap/resourceplan.q.out
@@ -3622,15 +3622,47 @@ POSTHOOK: Input: sys@wm_resourceplans
#### A masked pattern was here ####
plan_2 ACTIVE 10 default
table DISABLED 1 default
+PREHOOK: query: create table wm_test(key string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: INFORMATION_SCHEMA@wm_test
+PREHOOK: Output: database:information_schema
+POSTHOOK: query: create table wm_test(key string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: INFORMATION_SCHEMA@wm_test
+POSTHOOK: Output: database:information_schema
+PREHOOK: query: select key as 30min from wm_test
+PREHOOK: type: QUERY
+PREHOOK: Input: information_schema@wm_test
+#### A masked pattern was here ####
+POSTHOOK: query: select key as 30min from wm_test
+POSTHOOK: type: QUERY
+POSTHOOK: Input: information_schema@wm_test
+#### A masked pattern was here ####
+PREHOOK: query: select "10kb" as str from wm_test
+PREHOOK: type: QUERY
+PREHOOK: Input: information_schema@wm_test
+#### A masked pattern was here ####
+POSTHOOK: query: select "10kb" as str from wm_test
+POSTHOOK: type: QUERY
+POSTHOOK: Input: information_schema@wm_test
+#### A masked pattern was here ####
+PREHOOK: query: drop table wm_test
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: information_schema@wm_test
+PREHOOK: Output: information_schema@wm_test
+POSTHOOK: query: drop table wm_test
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: information_schema@wm_test
+POSTHOOK: Output: information_schema@wm_test
PREHOOK: query: CREATE RESOURCE PLAN plan_1
PREHOOK: type: CREATE RESOURCEPLAN
PREHOOK: Output: dummyHostnameForTest
POSTHOOK: query: CREATE RESOURCE PLAN plan_1
POSTHOOK: type: CREATE RESOURCEPLAN
-PREHOOK: query: CREATE TRIGGER plan_1.trigger_1 WHEN BYTES_READ > 10kb DO KILL
+PREHOOK: query: CREATE TRIGGER plan_1.trigger_1 WHEN BYTES_READ > '10kb' DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER plan_1.trigger_1 WHEN BYTES_READ > 10kb DO KILL
+POSTHOOK: query: CREATE TRIGGER plan_1.trigger_1 WHEN BYTES_READ > '10kb' DO KILL
POSTHOOK: type: CREATE TRIGGER
PREHOOK: query: SELECT * FROM SYS.WM_TRIGGERS
PREHOOK: type: QUERY
@@ -3645,16 +3677,16 @@ PREHOOK: query: CREATE TRIGGER plan_1.trigger_1 WHEN ELAPSED_TIME > 300 DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. AlreadyExistsException(message:Trigger already exists, use alter: )
-FAILED: ParseException line 4:58 mismatched input 'AND' expecting DO near '30sec' in create trigger statement
-FAILED: ParseException line 2:61 mismatched input 'OR' expecting DO near '30second' in create trigger statement
+FAILED: ParseException line 4:60 mismatched input 'AND' expecting DO near ''30sec'' in create trigger statement
+FAILED: ParseException line 2:63 mismatched input 'OR' expecting DO near ''30second'' in create trigger statement
FAILED: ParseException line 2:50 mismatched input '>=' expecting > near 'ELAPSED_TIME' in comparisionOperator
FAILED: ParseException line 2:50 mismatched input '<' expecting > near 'ELAPSED_TIME' in comparisionOperator
FAILED: ParseException line 2:50 mismatched input '<=' expecting > near 'ELAPSED_TIME' in comparisionOperator
FAILED: ParseException line 2:50 mismatched input '=' expecting > near 'ELAPSED_TIME' in comparisionOperator
-PREHOOK: query: CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > 30hour DO MOVE TO slow_pool
+PREHOOK: query: CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > '30hour' DO MOVE TO slow_pool
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > 30hour DO MOVE TO slow_pool
+POSTHOOK: query: CREATE TRIGGER plan_1.trigger_2 WHEN ELAPSED_TIME > '30hour' DO MOVE TO slow_pool
POSTHOOK: type: CREATE TRIGGER
PREHOOK: query: SELECT * FROM SYS.WM_TRIGGERS
PREHOOK: type: QUERY
@@ -3666,10 +3698,10 @@ POSTHOOK: Input: sys@wm_triggers
#### A masked pattern was here ####
plan_1 trigger_1 BYTES_READ > 10kb KILL
plan_1 trigger_2 ELAPSED_TIME > 30hour MOVE TO slow_pool
-PREHOOK: query: ALTER TRIGGER plan_1.trigger_1 WHEN BYTES_READ > 1min DO KILL
+PREHOOK: query: ALTER TRIGGER plan_1.trigger_1 WHEN BYTES_READ > '1min' DO KILL
PREHOOK: type: ALTER TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: ALTER TRIGGER plan_1.trigger_1 WHEN BYTES_READ > 1min DO KILL
+POSTHOOK: query: ALTER TRIGGER plan_1.trigger_1 WHEN BYTES_READ > '1min' DO KILL
POSTHOOK: type: ALTER TRIGGER
PREHOOK: query: SELECT * FROM SYS.WM_TRIGGERS
PREHOOK: type: QUERY
@@ -3695,34 +3727,34 @@ POSTHOOK: type: QUERY
POSTHOOK: Input: sys@wm_triggers
#### A masked pattern was here ####
plan_1 trigger_2 ELAPSED_TIME > 30hour MOVE TO slow_pool
-PREHOOK: query: CREATE TRIGGER plan_2.trigger_1 WHEN BYTES_READ > 100mb DO MOVE TO null_pool
+PREHOOK: query: CREATE TRIGGER plan_2.trigger_1 WHEN BYTES_READ > '100mb' DO MOVE TO null_pool
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Resource plan must be disabled to edit it.)
-PREHOOK: query: CREATE TRIGGER `table`.`table` WHEN BYTES_WRITTEN > 100KB DO MOVE TO `table`
+PREHOOK: query: CREATE TRIGGER `table`.`table` WHEN BYTES_WRITTEN > '100KB' DO MOVE TO `table`
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER `table`.`table` WHEN BYTES_WRITTEN > 100KB DO MOVE TO `table`
+POSTHOOK: query: CREATE TRIGGER `table`.`table` WHEN BYTES_WRITTEN > '100KB' DO MOVE TO `table`
POSTHOOK: type: CREATE TRIGGER
-PREHOOK: query: CREATE TRIGGER `table`.`trigger` WHEN BYTES_WRITTEN > 100MB DO MOVE TO `default`
+PREHOOK: query: CREATE TRIGGER `table`.`trigger` WHEN BYTES_WRITTEN > '100MB' DO MOVE TO `default`
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER `table`.`trigger` WHEN BYTES_WRITTEN > 100MB DO MOVE TO `default`
+POSTHOOK: query: CREATE TRIGGER `table`.`trigger` WHEN BYTES_WRITTEN > '100MB' DO MOVE TO `default`
POSTHOOK: type: CREATE TRIGGER
-PREHOOK: query: CREATE TRIGGER `table`.`database` WHEN BYTES_WRITTEN > 1GB DO MOVE TO `default`
+PREHOOK: query: CREATE TRIGGER `table`.`database` WHEN BYTES_WRITTEN > "1GB" DO MOVE TO `default`
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER `table`.`database` WHEN BYTES_WRITTEN > 1GB DO MOVE TO `default`
+POSTHOOK: query: CREATE TRIGGER `table`.`database` WHEN BYTES_WRITTEN > "1GB" DO MOVE TO `default`
POSTHOOK: type: CREATE TRIGGER
PREHOOK: query: CREATE TRIGGER `table`.`trigger1` WHEN ELAPSED_TIME > 10 DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
POSTHOOK: query: CREATE TRIGGER `table`.`trigger1` WHEN ELAPSED_TIME > 10 DO KILL
POSTHOOK: type: CREATE TRIGGER
-PREHOOK: query: CREATE TRIGGER `table`.`trigger2` WHEN ELAPSED_TIME > 1hour DO KILL
+PREHOOK: query: CREATE TRIGGER `table`.`trigger2` WHEN ELAPSED_TIME > '1hour' DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER `table`.`trigger2` WHEN ELAPSED_TIME > 1hour DO KILL
+POSTHOOK: query: CREATE TRIGGER `table`.`trigger2` WHEN ELAPSED_TIME > '1hour' DO KILL
POSTHOOK: type: CREATE TRIGGER
PREHOOK: query: SELECT * FROM SYS.WM_TRIGGERS
PREHOOK: type: QUERY
@@ -3776,7 +3808,7 @@ PREHOOK: query: DROP TRIGGER plan_1.trigger_2
PREHOOK: type: DROP TRIGGER
PREHOOK: Output: dummyHostnameForTest
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Resource plan must be disabled to edit it.)
-PREHOOK: query: ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > 1000gb DO KILL
+PREHOOK: query: ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > "1000gb" DO KILL
PREHOOK: type: ALTER TRIGGER
PREHOOK: Output: dummyHostnameForTest
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Resource plan must be disabled to edit it.)
@@ -3800,7 +3832,7 @@ PREHOOK: query: DROP TRIGGER plan_1.trigger_2
PREHOOK: type: DROP TRIGGER
PREHOOK: Output: dummyHostnameForTest
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Resource plan must be disabled to edit it.)
-PREHOOK: query: ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > 1000KB DO KILL
+PREHOOK: query: ALTER TRIGGER plan_1.trigger_2 WHEN BYTES_READ > "1000KB" DO KILL
PREHOOK: type: ALTER TRIGGER
PREHOOK: Output: dummyHostnameForTest
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Resource plan must be disabled to edit it.)
@@ -4499,15 +4531,15 @@ PREHOOK: type: CREATE MAPPING
PREHOOK: Output: dummyHostnameForTest
POSTHOOK: query: CREATE USER MAPPING "user1" IN plan_4a TO pool1
POSTHOOK: type: CREATE MAPPING
-PREHOOK: query: CREATE TRIGGER plan_4a.trigger_1 WHEN BYTES_READ > 10GB DO KILL
+PREHOOK: query: CREATE TRIGGER plan_4a.trigger_1 WHEN BYTES_READ > '10GB' DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER plan_4a.trigger_1 WHEN BYTES_READ > 10GB DO KILL
+POSTHOOK: query: CREATE TRIGGER plan_4a.trigger_1 WHEN BYTES_READ > '10GB' DO KILL
POSTHOOK: type: CREATE TRIGGER
-PREHOOK: query: CREATE TRIGGER plan_4a.trigger_2 WHEN BYTES_READ > 11GB DO KILL
+PREHOOK: query: CREATE TRIGGER plan_4a.trigger_2 WHEN BYTES_READ > '11GB' DO KILL
PREHOOK: type: CREATE TRIGGER
PREHOOK: Output: dummyHostnameForTest
-POSTHOOK: query: CREATE TRIGGER plan_4a.trigger_2 WHEN BYTES_READ > 11GB DO KILL
+POSTHOOK: query: CREATE TRIGGER plan_4a.trigger_2 WHEN BYTES_READ > '11GB' DO KILL
POSTHOOK: type: CREATE TRIGGER
PREHOOK: query: ALTER POOL plan_4a.pool1 ADD TRIGGER trigger_2
PREHOOK: type: ALTER POOL