This repository has been archived by the owner on May 23, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
simple_test.sql
88 lines (73 loc) · 1.82 KB
/
simple_test.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
-- Set
SET log_min_messages = 'DEBUG1';
SET client_min_messages = 'INFO';
-- Install extension
DROP EXTENSION IF EXISTS "mipt-asj";
CREATE EXTENSION "mipt-asj";
--
--
-- calc_dict
--
-- Data
DROP TABLE IF EXISTS ddata;
CREATE TABLE ddata(f VARCHAR, a VARCHAR);
INSERT INTO ddata(f, a) VALUES
('moscow institute of physics and technology', 'mipt'),
('moscow metro', 'mosmetro'),
('moscow metro', 'mm'),
('moscow institute of physics and technology', 'phystech'),
(NULL, 'mosmet'),
(NULL, 'metro'),
(NULL, 'volosy'),
(NULL, 'mgu'),
(NULL, 'msu'),
('kolobok production', NULL);
DROP TABLE IF EXISTS rules;
CREATE TABLE rules(f VARCHAR, a VARCHAR);
-- Test
INSERT INTO rules(f, a) (
SELECT * FROM mipt_asj.calc_dict(
(SELECT oid FROM pg_catalog.pg_class WHERE relname = 'ddata'), 'f',
(SELECT oid FROM pg_catalog.pg_class WHERE relname = 'ddata'), 'a'
)
);
SELECT * FROM rules;
--
--
-- calc_pairs
--
-- Data
DROP TABLE IF EXISTS pdata;
CREATE TABLE pdata(c1 VARCHAR, c2 VARCHAR);
INSERT INTO pdata(c1, c2) VALUES
('mipt mosmetro', NULL),
('moscow metro hall', NULL),
(NULL, 'moscow institute of physics and technology moscow metro'),
(NULL, 'mm');
SELECT c1 AS words FROM pdata
UNION
SELECT c2 AS words FROM pdata;
DROP TABLE IF EXISTS to_join;
CREATE TABLE to_join(s1 VARCHAR, s2 VARCHAR);
-- Test
INSERT INTO to_join(s1, s2) (
SELECT * FROM mipt_asj.calc_pairs(
(SELECT oid FROM pg_catalog.pg_class WHERE relname = 'pdata'), 'c1',
(SELECT oid FROM pg_catalog.pg_class WHERE relname = 'pdata'), 'c2',
(SELECT oid FROM pg_catalog.pg_class WHERE relname = 'rules'), 'f', 'a',
0.7
)
);
SELECT * FROM to_join;
--
--
-- calc_pairs
--
-- Test
SELECT DISTINCT t1.s1, t1.s2
FROM to_join AS t1 INNER JOIN to_join AS t2 ON mipt_asj.cmp(
t1.s1,
t1.s2,
(SELECT oid FROM pg_catalog.pg_class WHERE relname = 'rules'), 'f', 'a',
0.7
) = TRUE;