Ruslan Dautkhanov created SPARK-15302:
-----------------------------------------

             Summary: Implement FK/PK "rely novalidate" constraints for better 
CBO
                 Key: SPARK-15302
                 URL: https://issues.apache.org/jira/browse/SPARK-15302
             Project: Spark
          Issue Type: New Feature
          Components: Optimizer, Spark Core
    Affects Versions: 2.0.0
            Reporter: Ruslan Dautkhanov


Oracle has "RELY NOVALIDATE" option for constraints.. Could be easier for Hive 
to start with something like that for PK/FK constraints. So CBO has more 
information for optimizations. It does not have to actually check if that 
constraint is relationship is true; it can just "rely" on that constraint.

RELY clause:
https://docs.oracle.com/database/121/SQLRF/clauses002.htm#SQLRF52223

"Overview of Constraint States":
https://docs.oracle.com/database/121/DWHSG/schemas.htm#DWHSG9053
- Enforcement
- Validation
- Belief

So FK/PK with "rely novalidate" will have Enforcement&Validate disabled but 
Belief = RELY as it is possible to do in Oracle and now in Hive (HIVE-13076).

It opens a lot of ways to do additional ways to optimize execution plans.
As exxplined in Tom Kyte's "Metadata matters"
http://www.peoug.org/wp-content/uploads/2009/12/MetadataMatters_PEOUG_Day2009_TKyte.pdf
pp.30 - "Tell us how the tables relate and we can remove them from the plan...".
pp.35 - "Tell us how the tables relate and we have more access paths 
available...".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to