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