support pgsql versions up to 11
[smlar.git] / sql / textg.sql
1 SELECT set_smlar_limit(0.3);
2
3 SET smlar.type = "tfidf";
4 SET smlar.stattable = "text_stat";
5
6 UPDATE test_text SET v = v || '{50,50,50}'::text[] WHERE t >=50 AND t < 60;
7 INSERT INTO test_text VALUES(201, '{50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50}'); 
8
9 CREATE TABLE text_stat (
10     value   text UNIQUE,
11         ndoc    int4 NOT NULL CHECK (ndoc>0)
12 );
13
14 INSERT INTO text_stat (
15     SELECT
16                 q.w,
17                 count(*)
18         FROM
19                 (SELECT array_to_col(v) AS w FROM test_text WHERE v IS NOT NULL)  AS q
20         GROUP BY w
21 );
22
23 INSERT INTO text_stat VALUES (NULL, (SELECT count(*) FROM test_text));
24
25 DROP INDEX idx_test_text;
26
27 SET smlar.tf_method = "n";
28 SET smlar.idf_plus_one = off;
29 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
30 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
31 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
32
33 SET smlar.tf_method = "n";
34 SET smlar.idf_plus_one = on;
35 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
36 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
37 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
38
39 SET smlar.tf_method = "log";
40 SET smlar.idf_plus_one = off;
41 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
42 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
43 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
44
45 SET smlar.tf_method = "log";
46 SET smlar.idf_plus_one = on;
47 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
48 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
49 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
50
51 SET smlar.tf_method = "const";
52 SET smlar.idf_plus_one = off;
53 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
54 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
55 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
56
57 SET smlar.tf_method = "const";
58 SET smlar.idf_plus_one = on;
59 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
60 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
61 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
62
63 CREATE INDEX idx_test_text ON test_text USING gist (v _text_sml_ops);
64 SET enable_seqscan = off;
65
66 SET smlar.tf_method = "n";
67 SET smlar.idf_plus_one = off;
68 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
69 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
70 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
71
72 SET smlar.tf_method = "n";
73 SET smlar.idf_plus_one = on;
74 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
75 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
76 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
77
78 SET smlar.tf_method = "log";
79 SET smlar.idf_plus_one = off;
80 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
81 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
82 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
83
84 SET smlar.tf_method = "log";
85 SET smlar.idf_plus_one = on;
86 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
87 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
88 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
89
90 SET smlar.tf_method = "const";
91 SET smlar.idf_plus_one = off;
92 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
93 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
94 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
95
96 SET smlar.tf_method = "const";
97 SET smlar.idf_plus_one = on;
98 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
99 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
100 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
101
102 DROP INDEX idx_test_text;
103 CREATE INDEX idx_test_text ON test_text USING gin (v _text_sml_ops);
104 SET enable_seqscan = off;
105
106 SET smlar.tf_method = "n";
107 SET smlar.idf_plus_one = off;
108 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
109 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
110 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
111
112 SET smlar.tf_method = "n";
113 SET smlar.idf_plus_one = on;
114 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
115 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
116 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
117
118 SET smlar.tf_method = "log";
119 SET smlar.idf_plus_one = off;
120 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
121 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
122 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
123
124 SET smlar.tf_method = "log";
125 SET smlar.idf_plus_one = on;
126 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
127 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
128 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
129
130 SET smlar.tf_method = "const";
131 SET smlar.idf_plus_one = off;
132 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
133 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
134 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
135
136 SET smlar.tf_method = "const";
137 SET smlar.idf_plus_one = on;
138 SELECT smlar('{199,199,199,199,1}', '{199,1}'::text[]);
139 SELECT  t, smlar(v, '{10,9,8,7,6,5,4,3,2,1}') AS s FROM test_text WHERE v % '{10,9,8,7,6,5,4,3,2,1}' ORDER BY s DESC, t;
140 SELECT  t, smlar(v, '{50,49,8,7,6,5,4,33,2,1}') AS s FROM test_text WHERE v % '{50,49,8,7,6,5,4,33,2,1}' ORDER BY s DESC, t;
141
142 RESET enable_seqscan;