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

              • Assignee:
                anuragmantri Anurag Mantripragada
                Reporter:
                tagar_impala_e3b3 Ruslan Dautkhanov
              • Votes:
                1 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated: