ziv@2203: table foo01 : {Id : int, Bar : string} PRIMARY KEY Id
ziv@2203: table foo10 : {Id : int, Bar : string} PRIMARY KEY Id
ziv@2203:
ziv@2203: (* val query = (SELECT * FROM foo WHERE foo.Bar = "baz") *)
ziv@2203: (* val insert = (INSERT INTO foo (Id, Bar) VALUES (42, "baz")) *)
ziv@2203:
ziv@2203: fun flush01 () : transaction page=
ziv@2203: dml (INSERT INTO foo01 (Id, Bar) VALUES (42, "baz"));
ziv@2203: return
ziv@2203:
ziv@2203:
ziv@2203: Flushed 1!
ziv@2203:
ziv@2203:
ziv@2203:
ziv@2203: fun flush10 () : transaction page=
ziv@2203: dml (INSERT INTO foo10 (Id, Bar) VALUES (42, "baz"));
ziv@2203: return
ziv@2203:
ziv@2203:
ziv@2203: Flushed 2!
ziv@2203:
ziv@2203:
ziv@2203:
ziv@2203: fun flush11 () : transaction page=
ziv@2203: dml (INSERT INTO foo01 (Id, Bar) VALUES (42, "baz"));
ziv@2203: dml (INSERT INTO foo10 (Id, Bar) VALUES (42, "baz"));
ziv@2203: return
ziv@2203:
ziv@2203:
ziv@2203: Flushed 1 and 2!
ziv@2203:
ziv@2203:
ziv@2203:
ziv@2203: fun cache01 () : transaction page =
ziv@2203: res <- oneOrNoRows (SELECT foo01.Id, foo01.Bar
ziv@2203: FROM foo01
ziv@2203: WHERE foo01.Bar = "baz");
ziv@2203: return
ziv@2203:
ziv@2203:
ziv@2203: Reading 1.
ziv@2203: {case res of
ziv@2203: None =>
ziv@2203: | Some row => {[row.Foo01.Bar]}}
ziv@2203:
ziv@2203:
ziv@2203:
ziv@2203: fun cache10 () : transaction page =
ziv@2203: res <- oneOrNoRows (SELECT foo10.Id, foo10.Bar
ziv@2203: FROM foo10
ziv@2203: WHERE foo10.Bar = "baz");
ziv@2203: return
ziv@2203:
ziv@2203:
ziv@2203: Reading 2.
ziv@2203: {case res of
ziv@2203: None =>
ziv@2203: | Some row => {[row.Foo10.Bar]}}
ziv@2203:
ziv@2203:
ziv@2203:
ziv@2203: fun cache11 () : transaction page =
ziv@2203: res <- oneOrNoRows (SELECT foo01.Id, foo01.Bar
ziv@2203: FROM foo01
ziv@2203: WHERE foo01.Bar = "baz");
ziv@2203: bla <- oneOrNoRows (SELECT foo10.Id, foo10.Bar
ziv@2203: FROM foo10
ziv@2203: WHERE foo10.Bar = "baz");
ziv@2203: return
ziv@2203:
ziv@2203:
ziv@2203: Reading 1 and 2.
ziv@2203: {case res of
ziv@2203: None =>
ziv@2203: | Some row => {[row.Foo01.Bar]}}
ziv@2203: {case bla of
ziv@2203: None =>
ziv@2203: | Some row => {[row.Foo10.Bar]}}
ziv@2203:
ziv@2203: