[ 
https://issues.apache.org/jira/browse/HIVE-27648?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HIVE-27648:
----------------------------------
    Labels: pull-request-available  (was: )

> CREATE TABLE with CHECK constraint fails with SemanticException
> ---------------------------------------------------------------
>
>                 Key: HIVE-27648
>                 URL: https://issues.apache.org/jira/browse/HIVE-27648
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>            Reporter: Soumyakanti Das
>            Assignee: Krisztian Kasa
>            Priority: Major
>              Labels: pull-request-available
>
> When we run:
> {code:java}
> create table test (
>     col1 int,
>     `col 2` int check (`col 2` > 10) enable novalidate rely,
>     constraint check_constraint check (col1 + `col 2` > 15) enable novalidate 
> rely
> );
> {code}
> It fails with:
>  
> {code:java}
>  org.apache.hadoop.hive.ql.parse.SemanticException: Invalid Constraint syntax 
> Invalid CHECK constraint expression: col 2 > 10.
>     at 
> org.apache.hadoop.hive.ql.ddl.table.constraint.ConstraintsUtils.validateCheckConstraint(ConstraintsUtils.java:462)
>     at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeCreateTable(SemanticAnalyzer.java:13839)
>     at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genResolvedParseTree(SemanticAnalyzer.java:12618)
>     at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:12787)
>     at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:467)
>     at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:327)
>     at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224)
>     at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:107)
>     at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:519)
>     at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:471)
>     at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:436)
>     at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:430)
>     at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:121)
>     at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:227)
>     at 
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:257)
>     at org.apache.hadoop.hive.cli.CliDriver.processCmd1(CliDriver.java:201)
>     at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:127)
>     at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:425)
>     at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:356)
>     at 
> org.apache.hadoop.hive.ql.QTestUtil.executeClientInternal(QTestUtil.java:733)
>     at org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:703)
>     at 
> org.apache.hadoop.hive.cli.control.CoreCliDriver.runTest(CoreCliDriver.java:115)
>     at 
> org.apache.hadoop.hive.cli.control.CliAdapter.runTest(CliAdapter.java:157)
>     at 
> org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver.testCliDriver(TestMiniLlapLocalCliDriver.java:62)
>  {code}
>  
> I noticed while debugging that the check constraint expression in 
> [cc.getCheck_expression()|https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/constraint/ConstraintsUtils.java#L446]
>  doesn't include the backticks (`), and this results in wrong token 
> generation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to