[ 
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)

Reply via email to