diff --git a/tests/evaluation.at b/tests/evaluation.at index 5d68e5c4e3d..a80c1a400c3 100644 --- a/tests/evaluation.at +++ b/tests/evaluation.at @@ -46,6 +46,7 @@ POSITIVE_TEST([cprog4],[evaluation]) POSITIVE_TEST([cprog5],[evaluation]) POSITIVE_TEST([cproject],[evaluation]) POSITIVE_TEST([empty_relations],[evaluation]) +POSITIVE_TEST([empty_relations2],[evaluation]) POSITIVE_TEST([existential],[evaluation]) POSITIVE_TEST([facts],[evaluation]) POSITIVE_TEST([facts2],[evaluation]) diff --git a/tests/evaluation/empty_relations2/empty.dl b/tests/evaluation/empty_relations2/empty.dl new file mode 100644 index 00000000000..8ba88deb01b --- /dev/null +++ b/tests/evaluation/empty_relations2/empty.dl @@ -0,0 +1,21 @@ +// Souffle - A Datalog Compiler +// Copyright (c) 2020, The Souffle Developers. All rights reserved +// Licensed under the Universal Permissive License v 1.0 as shown at: +// - https://opensource.org/licenses/UPL +// - /licenses/SOUFFLE-UPL.txt + +// Tests redundant relation removal when two clauses end up being internally identical. +// See issue #1745. + +.decl a(x:number) +a(1). +a(2). + +.decl empty(x:number) + +.decl useless(A:number) +useless(W) :- a(W). + +.decl out(A:number) +.output out +out(K) :- a(K), empty(K). diff --git a/tests/evaluation/empty_relations2/empty.err b/tests/evaluation/empty_relations2/empty.err new file mode 100644 index 00000000000..0632740f399 --- /dev/null +++ b/tests/evaluation/empty_relations2/empty.err @@ -0,0 +1,3 @@ +Warning: No rules/facts defined for relation empty in file empty.dl at line 14 +.decl empty(x:number) +------^--------------- diff --git a/tests/evaluation/empty_relations2/empty.out b/tests/evaluation/empty_relations2/empty.out new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/evaluation/empty_relations2/out.csv b/tests/evaluation/empty_relations2/out.csv new file mode 100644 index 00000000000..e69de29bb2d