[ https://issues.apache.org/jira/browse/CALCITE-1941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maryann Xue resolved CALCITE-1941. ---------------------------------- Resolution: Fixed Fixed in https://git1-us-west.apache.org/repos/asf?p=calcite.git;a=commit;h=35209136c5b21b83b1d2a3d4180a121f58e3c2f6. > Refine interface Schema#snapshot() > ---------------------------------- > > Key: CALCITE-1941 > URL: https://issues.apache.org/jira/browse/CALCITE-1941 > Project: Calcite > Issue Type: Improvement > Components: core > Affects Versions: 1.13.0 > Reporter: Maryann Xue > Assignee: Maryann Xue > Priority: Minor > Fix For: 1.14.0 > > > 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. -- This message was sent by Atlassian JIRA (v6.4.14#64029)