[ 
https://issues.apache.org/jira/browse/HIVE-22728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033539#comment-17033539
 ] 

Zoltan Haindrich commented on HIVE-22728:
-----------------------------------------

I think we should even consider moving the uniqueness to the table level; 
because as of now the users doesn't gain any advantage of the gloablly unique 
contraint name; because they may only drop a contraint on a specific table:
{code}
ALTER TABLE numericDataType DROP CONSTRAINT check1;
{code}
dropping {{check1}} on a different table results in an error; so I suppose 
constraints do "belong" to tables...

independently from the choosen path there is one more thing which might need to 
be addressed: when a contraint violation occurs; the contraint's name is 
mentioned in the error message - if it is allowed to use the same name in 
different databases; then the error message should make where the constraint 
belongs to....(I don't think this would happen frequently; so if it complicates 
things a lot - it could be left out)


https://github.com/apache/hive/blob/0d9deba3c15038df4c64ea9b8494d554eb8eea2f/ql/src/test/queries/clientpositive/check_constraint.q#L130

> Limit the scope of uniqueness of constraint name to database
> ------------------------------------------------------------
>
>                 Key: HIVE-22728
>                 URL: https://issues.apache.org/jira/browse/HIVE-22728
>             Project: Hive
>          Issue Type: Wish
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Miklos Gergely
>            Priority: Major
>
> Currently, constraint names are globally unique across all databases 
> (assumption is that this may have done by design). Nevertheless, though 
> behavior seems to be implementation specific, it would be interesting to 
> limit the scope to uniqueness per database.
> Currently we do not store database information with the constraints. To 
> change the scope to one db, we would need to store the DB_ID in the 
> KEY_CONSTRAINTS table in metastore when we create a constraint and add the 
> DB_ID to the PRIMARY KEY of that table. Some minor changes to the error 
> messages would be needed too, since otherwise it would be difficult to 
> identify the correct violation in queries that span across multiple 
> databases. Additionally, the SQL scripts will need to be updated to populate 
> the DB_ID when we upgrade to new version.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to