Skip to content

Commit

Permalink
Fixed auto-generated variable names did not follow grammar specificat…
Browse files Browse the repository at this point in the history
…ions.
  • Loading branch information
cedretaber committed Aug 23, 2023
1 parent b238d81 commit 93f3d33
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 59 deletions.
2 changes: 1 addition & 1 deletion src/inlining.ml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ open Utils


(** The prefix used for variables generated during inlining. *)
let generated_variable_prefix = "GenV"
let generated_variable_prefix = "GENV"


type named_var =
Expand Down
6 changes: 3 additions & 3 deletions src/sql2ast.ml
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ let update_to_datalog (update : sql_update) (columns : sql_column_name list) : (
* The variable names are generated by sequential numbering from `V0`.
*)
let column_var_list = columns
|> make_column_var_list (fun idx _ -> Expr.NamedVar (Printf.sprintf "GenV%d" (idx + 1))) in
|> make_column_var_list (fun idx _ -> Expr.NamedVar (Printf.sprintf "GENV%d" (idx + 1))) in
let colvarmap = make_colvarmap column_var_list in

(*
Expand All @@ -195,9 +195,9 @@ let update_to_datalog (update : sql_update) (columns : sql_column_name list) : (
|> make_column_var_list (fun idx column_name ->
let column_name = string_of_sql_column_ignore_instance (None, column_name) in
if ColumnSet.exists (fun c -> c = column_name) in_set then
Expr.NamedVar (Printf.sprintf "GenV%d_2" (idx + 1))
Expr.NamedVar (Printf.sprintf "GENV%d_2" (idx + 1))
else
Expr.NamedVar (Printf.sprintf "GenV%d" (idx + 1))
Expr.NamedVar (Printf.sprintf "GENV%d" (idx + 1))
) in
let colvarmap' = make_colvarmap column_var_list' in

Expand Down
18 changes: 9 additions & 9 deletions test/inlining_test.ml
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ let main () =
bar(A, B) :- qux(A, B, _). *)
expected =
make_lines [
"+foo(X) :- qux(X, GenV1, GenV3).";
"bar(A, B) :- qux(A, B, GenV2).";
"+foo(X) :- qux(X, GENV1, GENV3).";
"bar(A, B) :- qux(A, B, GENV2).";
];
};
{
Expand All @@ -110,8 +110,8 @@ let main () =
bar(A, B) :- qux(A, B, _). *)
expected =
make_lines [
"+foo(X, Y) :- qux(X, GenV1, GenV4) , qux(Y, GenV2, GenV5).";
"bar(A, B) :- qux(A, B, GenV3).";
"+foo(X, Y) :- qux(X, GENV1, GENV4) , qux(Y, GENV2, GENV5).";
"bar(A, B) :- qux(A, B, GENV3).";
];
};
{
Expand All @@ -127,10 +127,10 @@ let main () =
bar(B) :- thud(_, B). *)
expected =
make_lines [
"+foo(X) :- qux(X, GenV3).";
"+foo(X) :- thud(GenV4, X).";
"bar(A) :- qux(A, GenV1).";
"bar(B) :- thud(GenV2, B).";
"+foo(X) :- qux(X, GENV3).";
"+foo(X) :- thud(GENV4, X).";
"bar(A) :- qux(A, GENV1).";
"bar(B) :- thud(GENV2, B).";
];
};
{
Expand All @@ -147,7 +147,7 @@ let main () =
bar(B) :- qux(A, B), A = 42. *)
expected =
make_lines [
"+foo(X) :- qux(GenV1, X) , GenV1 = 42.";
"+foo(X) :- qux(GENV1, X) , GENV1 = 42.";
"bar(B) :- qux(A, B) , A = 42.";
];
};
Expand Down
92 changes: 46 additions & 46 deletions test/sql2ast_test.ml
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ let main () =
* dname = 'Dev'
*
* datalog:
* -ced(GenV1, GenV2) :- ced(GenV1, GenV2), GenV2 = 'Dev', GenV2 <> 'R&D'.
* +ced(GenV1, GenV2) :- GenV2 = 'R&D', -ced(GenV1, GenV2_2)
* -ced(GENV1, GENV2) :- ced(GENV1, GENV2), GENV2 = 'Dev', GENV2 <> 'R&D'.
* +ced(GENV1, GENV2) :- GENV2 = 'R&D', -ced(GENV1, GENV2_2)
*
*)
input = (
Expand All @@ -84,18 +84,18 @@ let main () =
);
expected = [
(
Deltadelete ("ced", [NamedVar "GenV1"; NamedVar "GenV2"]),
Deltadelete ("ced", [NamedVar "GENV1"; NamedVar "GENV2"]),
[
Rel (Pred ("ced", [NamedVar "GenV1"; NamedVar "GenV2"]));
Equat (Equation ("=", (Var (NamedVar "GenV2")), (Var (ConstVar (String "'Dev'")))));
Equat (Equation ("<>", (Var (NamedVar "GenV2")), (Var (ConstVar (String "'R&D'")))))
Rel (Pred ("ced", [NamedVar "GENV1"; NamedVar "GENV2"]));
Equat (Equation ("=", (Var (NamedVar "GENV2")), (Var (ConstVar (String "'Dev'")))));
Equat (Equation ("<>", (Var (NamedVar "GENV2")), (Var (ConstVar (String "'R&D'")))))
]
);
(
Deltainsert ("ced", [NamedVar "GenV1"; NamedVar "GenV2"]),
Deltainsert ("ced", [NamedVar "GENV1"; NamedVar "GENV2"]),
[
Equat (Equation ("=", (Var (NamedVar "GenV2")), (Var (ConstVar (String "'R&D'")))));
Rel (Deltadelete ("ced", [NamedVar "GenV1"; NamedVar "GenV2_2"]));
Equat (Equation ("=", (Var (NamedVar "GENV2")), (Var (ConstVar (String "'R&D'")))));
Rel (Deltadelete ("ced", [NamedVar "GENV1"; NamedVar "GENV2_2"]));
]
)
]
Expand All @@ -115,10 +115,10 @@ let main () =
* AND c3 = 'v100'
*
* datalog:
* -t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6) :- t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6), GenV2 = 'v2', GenV3 = 'v100', GenV1 <> 'v1'.
* -t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6) :- t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6), GenV2 = 'v2', GenV3 = 'v100', GenV3 <> 'v3'.
* -t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6) :- t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6), GenV2 = 'v2', GenV3 = 'v100', GenV5 <> 'v5'.
* +t(GenV1, GenV2, GenV3, GenV4, GenV5, GenV6) :- GenV1 = 'v1', GenV3 = 'v3', GenV5 = 'v5', -t(GenV1_2, GenV2, GenV3_2, GenV4, GenV5_2, GenV6).
* -t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6) :- t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6), GENV2 = 'v2', GENV3 = 'v100', GENV1 <> 'v1'.
* -t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6) :- t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6), GENV2 = 'v2', GENV3 = 'v100', GENV3 <> 'v3'.
* -t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6) :- t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6), GENV2 = 'v2', GENV3 = 'v100', GENV5 <> 'v5'.
* +t(GENV1, GENV2, GENV3, GENV4, GENV5, GENV6) :- GENV1 = 'v1', GENV3 = 'v3', GENV5 = 'v5', -t(GENV1_2, GENV2, GENV3_2, GENV4, GENV5_2, GENV6).
*
*)
input = (
Expand Down Expand Up @@ -146,39 +146,39 @@ let main () =
);
expected = [
(
Deltadelete ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]),
Deltadelete ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]),
[
Rel (Pred ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]));
Equat (Equation ("=", (Var (NamedVar "GenV2")), (Var (ConstVar (String "'v2'")))));
Equat (Equation ("=", (Var (NamedVar "GenV3")), (Var (ConstVar (String "'v100'")))));
Equat (Equation ("<>", (Var (NamedVar "GenV1")), (Var (ConstVar (String "'v1'")))))
Rel (Pred ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]));
Equat (Equation ("=", (Var (NamedVar "GENV2")), (Var (ConstVar (String "'v2'")))));
Equat (Equation ("=", (Var (NamedVar "GENV3")), (Var (ConstVar (String "'v100'")))));
Equat (Equation ("<>", (Var (NamedVar "GENV1")), (Var (ConstVar (String "'v1'")))))
]
);
(
Deltadelete ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]),
Deltadelete ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]),
[
Rel (Pred ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]));
Equat (Equation ("=", (Var (NamedVar "GenV2")), (Var (ConstVar (String "'v2'")))));
Equat (Equation ("=", (Var (NamedVar "GenV3")), (Var (ConstVar (String "'v100'")))));
Equat (Equation ("<>", (Var (NamedVar "GenV3")), (Var (ConstVar (String "'v3'")))))
Rel (Pred ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]));
Equat (Equation ("=", (Var (NamedVar "GENV2")), (Var (ConstVar (String "'v2'")))));
Equat (Equation ("=", (Var (NamedVar "GENV3")), (Var (ConstVar (String "'v100'")))));
Equat (Equation ("<>", (Var (NamedVar "GENV3")), (Var (ConstVar (String "'v3'")))))
]
);
(
Deltadelete ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]),
Deltadelete ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]),
[
Rel (Pred ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]));
Equat (Equation ("=", (Var (NamedVar "GenV2")), (Var (ConstVar (String "'v2'")))));
Equat (Equation ("=", (Var (NamedVar "GenV3")), (Var (ConstVar (String "'v100'")))));
Equat (Equation ("<>", (Var (NamedVar "GenV5")), (Var (ConstVar (String "'v5'")))))
Rel (Pred ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]));
Equat (Equation ("=", (Var (NamedVar "GENV2")), (Var (ConstVar (String "'v2'")))));
Equat (Equation ("=", (Var (NamedVar "GENV3")), (Var (ConstVar (String "'v100'")))));
Equat (Equation ("<>", (Var (NamedVar "GENV5")), (Var (ConstVar (String "'v5'")))))
]
);
(
Deltainsert ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"; NamedVar "GenV5"; NamedVar "GenV6"]),
Deltainsert ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"; NamedVar "GENV5"; NamedVar "GENV6"]),
[
Equat (Equation ("=", (Var (NamedVar "GenV1")), (Var (ConstVar (String "'v1'")))));
Equat (Equation ("=", (Var (NamedVar "GenV3")), (Var (ConstVar (String "'v3'")))));
Equat (Equation ("=", (Var (NamedVar "GenV5")), (Var (ConstVar (String "'v5'")))));
Rel (Deltadelete ("t", [NamedVar "GenV1_2"; NamedVar "GenV2"; NamedVar "GenV3_2"; NamedVar "GenV4"; NamedVar "GenV5_2"; NamedVar "GenV6"]));
Equat (Equation ("=", (Var (NamedVar "GENV1")), (Var (ConstVar (String "'v1'")))));
Equat (Equation ("=", (Var (NamedVar "GENV3")), (Var (ConstVar (String "'v3'")))));
Equat (Equation ("=", (Var (NamedVar "GENV5")), (Var (ConstVar (String "'v5'")))));
Rel (Deltadelete ("t", [NamedVar "GENV1_2"; NamedVar "GENV2"; NamedVar "GENV3_2"; NamedVar "GENV4"; NamedVar "GENV5_2"; NamedVar "GENV6"]));
]
)
]
Expand All @@ -194,9 +194,9 @@ let main () =
* c2 = c3
*
* datalog:
* -t(GenV1, GenV2, GenV3, GenV4) :- t(GenV1, GenV2, GenV3, GenV4), GenV1 <> GenV2.
* -t(GenV1, GenV2, GenV3, GenV4) :- t(GenV1, GenV2, GenV3, GenV4), GenV2 <> GenV3.
* +t(GenV1, GenV2, GenV3, GenV4) :- GenV1 = GenV2_2, GenV2 = GenV3, -t(GenV1_2, GenV2_2, GenV3, GenV4).
* -t(GENV1, GENV2, GENV3, GENV4) :- t(GENV1, GENV2, GENV3, GENV4), GENV1 <> GENV2.
* -t(GENV1, GENV2, GENV3, GENV4) :- t(GENV1, GENV2, GENV3, GENV4), GENV2 <> GENV3.
* +t(GENV1, GENV2, GENV3, GENV4) :- GENV1 = GENV2_2, GENV2 = GENV3, -t(GENV1_2, GENV2_2, GENV3, GENV4).
*
*)
input = (
Expand All @@ -212,25 +212,25 @@ let main () =
);
expected = [
(
Deltadelete ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"]),
Deltadelete ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"]),
[
Rel (Pred ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"]));
Equat (Equation ("<>", (Var (NamedVar "GenV1")), (Var (NamedVar "GenV2"))))
Rel (Pred ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"]));
Equat (Equation ("<>", (Var (NamedVar "GENV1")), (Var (NamedVar "GENV2"))))
]
);
(
Deltadelete ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"]),
Deltadelete ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"]),
[
Rel (Pred ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"]));
Equat (Equation ("<>", (Var (NamedVar "GenV2")), (Var (NamedVar "GenV3"))))
Rel (Pred ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"]));
Equat (Equation ("<>", (Var (NamedVar "GENV2")), (Var (NamedVar "GENV3"))))
]
);
(
Deltainsert ("t", [NamedVar "GenV1"; NamedVar "GenV2"; NamedVar "GenV3"; NamedVar "GenV4"]),
Deltainsert ("t", [NamedVar "GENV1"; NamedVar "GENV2"; NamedVar "GENV3"; NamedVar "GENV4"]),
[
Equat (Equation ("=", (Var (NamedVar "GenV1")), (Var (NamedVar "GenV2_2"))));
Equat (Equation ("=", (Var (NamedVar "GenV2")), (Var (NamedVar "GenV3"))));
Rel (Deltadelete ("t", [NamedVar "GenV1_2"; NamedVar "GenV2_2"; NamedVar "GenV3"; NamedVar "GenV4"]));
Equat (Equation ("=", (Var (NamedVar "GENV1")), (Var (NamedVar "GENV2_2"))));
Equat (Equation ("=", (Var (NamedVar "GENV2")), (Var (NamedVar "GENV3"))));
Rel (Deltadelete ("t", [NamedVar "GENV1_2"; NamedVar "GENV2_2"; NamedVar "GENV3"; NamedVar "GENV4"]));
]
)
]
Expand Down

0 comments on commit 93f3d33

Please sign in to comment.