Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.13.0
    • Fix Version/s: 1.14.0
    • Component/s: core
    • Labels:
      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

              • Assignee:
                maryannxue Maryann Xue
                Reporter:
                maryannxue Maryann Xue
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: