Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-1941

Refine interface Schema#snapshot()

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.13.0
    • 1.14.0
    • core
    • None

    Description

      The current Schema#snapshot(long timestamp) interface is limited, for it assumes that users only use timestamp for schema version control, thus we need something new to replace the "timestamp" parameter.
      So we'll introduce a SchemaVersion interface with a partial ordering contract that is:
      1) Irreflexive: !a.isBefore(a), which means a cannot happen before itself;
      2) Transitive: if a.isBefore(b) and b.isBefore(c) then a.isBefore(c);
      and 3) anti-symmetric: if a.isBefore(b) then !b.isBefore(a);
      User can implement their own SchemaVersion, which, aside from following the partial ordering contract, must also override equals(), hashCode() and toString(), so that user can, through overriding CalciteConnection#createPrepareContext(), create a Schema snapshot of a specific SchemaVersion used by the prepare context.

      Attachments

        Issue Links

          Activity

            People

              maryannxue Wei Xue
              maryannxue Wei Xue
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: