hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Gates (JIRA)" <>
Subject [jira] [Commented] (HIVE-14949) Enforce that target:source is not 1:N
Date Sat, 28 Jan 2017 01:19:25 GMT


Alan Gates commented on HIVE-14949:

A couple of comments: line 705 (in your patch), how do you know that the cardinality
violation clause will be last in the tree?  (We really need PRs here, so I can comment directly
on them)

This looks like it will be quite expensive, since it runs a separate group by query on the
source table.  Shouldn't it be off by default rather than on by default?

> Enforce that target:source is not 1:N
> -------------------------------------
>                 Key: HIVE-14949
>                 URL:
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Transactions
>            Reporter: Eugene Koifman
>            Assignee: Eugene Koifman
>         Attachments: HIVE-14949.01.patch, HIVE-14949.02.patch, HIVE-14949.03.patch, HIVE-14949.03.patch,
HIVE-14949.04.patch, HIVE-14949.05.patch
> If > 1 row on source side matches the same row on target side that means that  we
are forced update (or delete) the same row in target more than once as part of the same SQL
statement.  This should raise an error per SQL Spec
> ISO/IEC 9075-2:2011(E)
> Section 14.2 under "General Rules" Item 6/Subitem a/Subitem 2/Subitem B
> There is no sure way to do this via static analysis of the query.
> Can we add something to ROJ operator to pay attention to ROW__ID of target side row and
compare it with ROW__ID of target side of previous row output?  If they are the same, that
means > 1 source row matched.
> Or perhaps just mark each row in the hash table that it matched.  And if it matches again,
throw an error.

This message was sent by Atlassian JIRA

View raw message