1
2/* Tests DTF creation and garbage collection of two tables for the
3 same predicate. */
4
5:- import abolish_table_pred/1, get_residual/2 from tables.
6
7:- table tpred/1.
8
9tpred(X):- p(X).
10
11p(f(1)).
12p(f(2)).
13p(f(3)).
14p(g(1)).
15p(g(2)).
16p(g(3)).
17
18%------------------
19:- dynamic tr/1.
20:- index(tr/1,trie).
21
22test :-
23    abolish_all_tables,
24    gc_tables(N0),
25    test2,
26    gc_tables(N1),
27    N is N1-N0,
28    writeln(remaining(N)).
29
30test2 :-
31    assert(tr(a)),
32    assert(tr(b)),
33    assert(tr(c)),
34    fail.
35test2 :-
36    tpred(_X),fail.
37test2 :-
38    tpred(X),tr(Y),
39    abolish_table_pred(tpred/1),
40    writeln((X,Y)),fail.
41test2 :-
42    tpred(_X),fail.
43test2 :-
44    tpred(_X),tr(_Y),
45    abolish_table_pred(tpred/1),
46    fail.
47test2 :-
48    get_residual(tpred(X),_),
49    writeln(first(X)),
50    fail.
51test2.
52