create version - バージョンクラスを作ります
create version classname1 from classname2 [[abstime]]
現在バージョン管理機能は動作しません。
このコマンドはclassname2を親のクラスとして関連するバージョンクラスclassname1を作ります。まず、classname1はclassname2と同じ内容を持つことになります。しかし、classname1への更新が行われるとclassname1の内容はclassname2とは違うものになります。他方、classname2への更新は、その問われているインスタンスがclassname1へ更新されていない場合に限り、透過的にclassname1へ渡されることになります。
オプションのabstime句が指定されると、そのバージョンはclassname2の指定された時間における スナップショット として作られます。
Postgres はclassname1がclassname2に比べて違ったエンコードであることを確認するために、問い合わせのリライトルールシステムを使います。さらに、classname1は自動的にclassname2と同じインデックスを持つように構築されます。バージョンを恣意的につながったものとすることは正当な方法ですので、バージョンのツリーが結局のところ生じます。バージョンコントロールのアルゴリズムは [ONG90] に説明されています。
--
-- 1990年1月17日時点での barfoo のスナップショットから
-- foobar というバージョンをつくります。
--
create version foobar from barfoo [ Jan 17 1990 ]
スナップショット(すなわち、オプションのabstime句)は Postgres にはインプリメントされていません。