Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-3531

Implement deferrable and optionally enforced PK/FK constraints

    XMLWordPrintableJSON

Details

    Description

      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.

      https://docs.oracle.com/database/121/SQLRF/clauses002.htm#sthref2289

      So it would be helpful with join cardinality estimates, and with cases like IMPALA-2929.

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

      • 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...".

      Also it might be helpful when Impala is being integrated with Kudu as the latter have to have a PK.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tagar_impala_e3b3 Ruslan Dautkhanov
              Votes:
              1 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated: