2
-- first, define the datatype. Turn off echoing so that expected file
3
-- does not depend on contents of pg_tgrm.sql.
5
SET client_min_messages = warning;
7
RESET client_min_messages;
14
select show_trgm('(*&^$@%@');
20
select show_trgm('a b c');
22
---------------------------------------
23
{" a"," b"," c"," a "," b "," c "}
26
select show_trgm(' a b c ');
28
---------------------------------------
29
{" a"," b"," c"," a "," b "," c "}
32
select show_trgm('aA bB cC');
34
---------------------------------------------------------
35
{" a"," b"," c"," aa"," bb"," cc","aa ","bb ","cc "}
38
select show_trgm(' aA bB cC ');
40
---------------------------------------------------------
41
{" a"," b"," c"," aa"," bb"," cc","aa ","bb ","cc "}
44
select show_trgm('a b C0*%^');
46
---------------------------------------------
47
{" a"," b"," c"," a "," b "," c0","c0 "}
50
select similarity('wow','WOWa ');
56
select similarity('wow',' WOW ');
62
CREATE TABLE test_trgm(t text);
63
\copy test_trgm from 'data/trgm.data
64
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
66
-------------+----------
68
qwertyu0980 | 0.714286
69
qwertyu0981 | 0.714286
70
qwertyu0982 | 0.714286
71
qwertyu0983 | 0.714286
72
qwertyu0984 | 0.714286
73
qwertyu0985 | 0.714286
74
qwertyu0986 | 0.714286
75
qwertyu0987 | 0.714286
76
qwertyu0989 | 0.714286
1066
qwertyu1000 | 0.411765
1069
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
1071
-------------+----------
1073
qwertyu0980 | 0.411765
1074
qwertyu0981 | 0.411765
1075
qwertyu0982 | 0.411765
1076
qwertyu0983 | 0.411765
1077
qwertyu0984 | 0.411765
1078
qwertyu0985 | 0.411765
1079
qwertyu0986 | 0.411765
1080
qwertyu0987 | 0.411765
1081
qwertyu0989 | 0.411765
1082
qwertyu0088 | 0.333333
1083
qwertyu0098 | 0.333333
1084
qwertyu0188 | 0.333333
1085
qwertyu0288 | 0.333333
1086
qwertyu0388 | 0.333333
1087
qwertyu0488 | 0.333333
1088
qwertyu0588 | 0.333333
1089
qwertyu0688 | 0.333333
1090
qwertyu0788 | 0.333333
1091
qwertyu0888 | 0.333333
1092
qwertyu0900 | 0.333333
1093
qwertyu0901 | 0.333333
1094
qwertyu0902 | 0.333333
1095
qwertyu0903 | 0.333333
1096
qwertyu0904 | 0.333333
1097
qwertyu0905 | 0.333333
1098
qwertyu0906 | 0.333333
1099
qwertyu0907 | 0.333333
1100
qwertyu0908 | 0.333333
1101
qwertyu0909 | 0.333333
1102
qwertyu0910 | 0.333333
1103
qwertyu0911 | 0.333333
1104
qwertyu0912 | 0.333333
1105
qwertyu0913 | 0.333333
1106
qwertyu0914 | 0.333333
1107
qwertyu0915 | 0.333333
1108
qwertyu0916 | 0.333333
1109
qwertyu0917 | 0.333333
1110
qwertyu0918 | 0.333333
1111
qwertyu0919 | 0.333333
1112
qwertyu0920 | 0.333333
1113
qwertyu0921 | 0.333333
1114
qwertyu0922 | 0.333333
1115
qwertyu0923 | 0.333333
1116
qwertyu0924 | 0.333333
1117
qwertyu0925 | 0.333333
1118
qwertyu0926 | 0.333333
1119
qwertyu0927 | 0.333333
1120
qwertyu0928 | 0.333333
1121
qwertyu0929 | 0.333333
1122
qwertyu0930 | 0.333333
1123
qwertyu0931 | 0.333333
1124
qwertyu0932 | 0.333333
1125
qwertyu0933 | 0.333333
1126
qwertyu0934 | 0.333333
1127
qwertyu0935 | 0.333333
1128
qwertyu0936 | 0.333333
1129
qwertyu0937 | 0.333333
1130
qwertyu0938 | 0.333333
1131
qwertyu0939 | 0.333333
1132
qwertyu0940 | 0.333333
1133
qwertyu0941 | 0.333333
1134
qwertyu0942 | 0.333333
1135
qwertyu0943 | 0.333333
1136
qwertyu0944 | 0.333333
1137
qwertyu0945 | 0.333333
1138
qwertyu0946 | 0.333333
1139
qwertyu0947 | 0.333333
1140
qwertyu0948 | 0.333333
1141
qwertyu0949 | 0.333333
1142
qwertyu0950 | 0.333333
1143
qwertyu0951 | 0.333333
1144
qwertyu0952 | 0.333333
1145
qwertyu0953 | 0.333333
1146
qwertyu0954 | 0.333333
1147
qwertyu0955 | 0.333333
1148
qwertyu0956 | 0.333333
1149
qwertyu0957 | 0.333333
1150
qwertyu0958 | 0.333333
1151
qwertyu0959 | 0.333333
1152
qwertyu0960 | 0.333333
1153
qwertyu0961 | 0.333333
1154
qwertyu0962 | 0.333333
1155
qwertyu0963 | 0.333333
1156
qwertyu0964 | 0.333333
1157
qwertyu0965 | 0.333333
1158
qwertyu0966 | 0.333333
1159
qwertyu0967 | 0.333333
1160
qwertyu0968 | 0.333333
1161
qwertyu0969 | 0.333333
1162
qwertyu0970 | 0.333333
1163
qwertyu0971 | 0.333333
1164
qwertyu0972 | 0.333333
1165
qwertyu0973 | 0.333333
1166
qwertyu0974 | 0.333333
1167
qwertyu0975 | 0.333333
1168
qwertyu0976 | 0.333333
1169
qwertyu0977 | 0.333333
1170
qwertyu0978 | 0.333333
1171
qwertyu0979 | 0.333333
1172
qwertyu0990 | 0.333333
1173
qwertyu0991 | 0.333333
1174
qwertyu0992 | 0.333333
1175
qwertyu0993 | 0.333333
1176
qwertyu0994 | 0.333333
1177
qwertyu0995 | 0.333333
1178
qwertyu0996 | 0.333333
1179
qwertyu0997 | 0.333333
1180
qwertyu0998 | 0.333333
1181
qwertyu0999 | 0.333333
1184
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
1186
-------------+----------
1187
qwertyu0988 | 0.333333
1190
create index trgm_idx on test_trgm using gist (t gist_trgm_ops);
1191
set enable_seqscan=off;
1192
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
1194
-------------+----------
1196
qwertyu0980 | 0.714286
1197
qwertyu0981 | 0.714286
1198
qwertyu0982 | 0.714286
1199
qwertyu0983 | 0.714286
1200
qwertyu0984 | 0.714286
1201
qwertyu0985 | 0.714286
1202
qwertyu0986 | 0.714286
1203
qwertyu0987 | 0.714286
1204
qwertyu0989 | 0.714286
2194
qwertyu1000 | 0.411765
2197
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
2199
-------------+----------
2201
qwertyu0980 | 0.411765
2202
qwertyu0981 | 0.411765
2203
qwertyu0982 | 0.411765
2204
qwertyu0983 | 0.411765
2205
qwertyu0984 | 0.411765
2206
qwertyu0985 | 0.411765
2207
qwertyu0986 | 0.411765
2208
qwertyu0987 | 0.411765
2209
qwertyu0989 | 0.411765
2210
qwertyu0088 | 0.333333
2211
qwertyu0098 | 0.333333
2212
qwertyu0188 | 0.333333
2213
qwertyu0288 | 0.333333
2214
qwertyu0388 | 0.333333
2215
qwertyu0488 | 0.333333
2216
qwertyu0588 | 0.333333
2217
qwertyu0688 | 0.333333
2218
qwertyu0788 | 0.333333
2219
qwertyu0888 | 0.333333
2220
qwertyu0900 | 0.333333
2221
qwertyu0901 | 0.333333
2222
qwertyu0902 | 0.333333
2223
qwertyu0903 | 0.333333
2224
qwertyu0904 | 0.333333
2225
qwertyu0905 | 0.333333
2226
qwertyu0906 | 0.333333
2227
qwertyu0907 | 0.333333
2228
qwertyu0908 | 0.333333
2229
qwertyu0909 | 0.333333
2230
qwertyu0910 | 0.333333
2231
qwertyu0911 | 0.333333
2232
qwertyu0912 | 0.333333
2233
qwertyu0913 | 0.333333
2234
qwertyu0914 | 0.333333
2235
qwertyu0915 | 0.333333
2236
qwertyu0916 | 0.333333
2237
qwertyu0917 | 0.333333
2238
qwertyu0918 | 0.333333
2239
qwertyu0919 | 0.333333
2240
qwertyu0920 | 0.333333
2241
qwertyu0921 | 0.333333
2242
qwertyu0922 | 0.333333
2243
qwertyu0923 | 0.333333
2244
qwertyu0924 | 0.333333
2245
qwertyu0925 | 0.333333
2246
qwertyu0926 | 0.333333
2247
qwertyu0927 | 0.333333
2248
qwertyu0928 | 0.333333
2249
qwertyu0929 | 0.333333
2250
qwertyu0930 | 0.333333
2251
qwertyu0931 | 0.333333
2252
qwertyu0932 | 0.333333
2253
qwertyu0933 | 0.333333
2254
qwertyu0934 | 0.333333
2255
qwertyu0935 | 0.333333
2256
qwertyu0936 | 0.333333
2257
qwertyu0937 | 0.333333
2258
qwertyu0938 | 0.333333
2259
qwertyu0939 | 0.333333
2260
qwertyu0940 | 0.333333
2261
qwertyu0941 | 0.333333
2262
qwertyu0942 | 0.333333
2263
qwertyu0943 | 0.333333
2264
qwertyu0944 | 0.333333
2265
qwertyu0945 | 0.333333
2266
qwertyu0946 | 0.333333
2267
qwertyu0947 | 0.333333
2268
qwertyu0948 | 0.333333
2269
qwertyu0949 | 0.333333
2270
qwertyu0950 | 0.333333
2271
qwertyu0951 | 0.333333
2272
qwertyu0952 | 0.333333
2273
qwertyu0953 | 0.333333
2274
qwertyu0954 | 0.333333
2275
qwertyu0955 | 0.333333
2276
qwertyu0956 | 0.333333
2277
qwertyu0957 | 0.333333
2278
qwertyu0958 | 0.333333
2279
qwertyu0959 | 0.333333
2280
qwertyu0960 | 0.333333
2281
qwertyu0961 | 0.333333
2282
qwertyu0962 | 0.333333
2283
qwertyu0963 | 0.333333
2284
qwertyu0964 | 0.333333
2285
qwertyu0965 | 0.333333
2286
qwertyu0966 | 0.333333
2287
qwertyu0967 | 0.333333
2288
qwertyu0968 | 0.333333
2289
qwertyu0969 | 0.333333
2290
qwertyu0970 | 0.333333
2291
qwertyu0971 | 0.333333
2292
qwertyu0972 | 0.333333
2293
qwertyu0973 | 0.333333
2294
qwertyu0974 | 0.333333
2295
qwertyu0975 | 0.333333
2296
qwertyu0976 | 0.333333
2297
qwertyu0977 | 0.333333
2298
qwertyu0978 | 0.333333
2299
qwertyu0979 | 0.333333
2300
qwertyu0990 | 0.333333
2301
qwertyu0991 | 0.333333
2302
qwertyu0992 | 0.333333
2303
qwertyu0993 | 0.333333
2304
qwertyu0994 | 0.333333
2305
qwertyu0995 | 0.333333
2306
qwertyu0996 | 0.333333
2307
qwertyu0997 | 0.333333
2308
qwertyu0998 | 0.333333
2309
qwertyu0999 | 0.333333
2312
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
2314
-------------+----------
2315
qwertyu0988 | 0.333333
2318
drop index trgm_idx;
2319
create index trgm_idx on test_trgm using gin (t gin_trgm_ops);
2320
set enable_seqscan=off;
2321
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
2323
-------------+----------
2325
qwertyu0980 | 0.714286
2326
qwertyu0981 | 0.714286
2327
qwertyu0982 | 0.714286
2328
qwertyu0983 | 0.714286
2329
qwertyu0984 | 0.714286
2330
qwertyu0985 | 0.714286
2331
qwertyu0986 | 0.714286
2332
qwertyu0987 | 0.714286
2333
qwertyu0989 | 0.714286
3323
qwertyu1000 | 0.411765
3326
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
3328
-------------+----------
3330
qwertyu0980 | 0.411765
3331
qwertyu0981 | 0.411765
3332
qwertyu0982 | 0.411765
3333
qwertyu0983 | 0.411765
3334
qwertyu0984 | 0.411765
3335
qwertyu0985 | 0.411765
3336
qwertyu0986 | 0.411765
3337
qwertyu0987 | 0.411765
3338
qwertyu0989 | 0.411765
3339
qwertyu0088 | 0.333333
3340
qwertyu0098 | 0.333333
3341
qwertyu0188 | 0.333333
3342
qwertyu0288 | 0.333333
3343
qwertyu0388 | 0.333333
3344
qwertyu0488 | 0.333333
3345
qwertyu0588 | 0.333333
3346
qwertyu0688 | 0.333333
3347
qwertyu0788 | 0.333333
3348
qwertyu0888 | 0.333333
3349
qwertyu0900 | 0.333333
3350
qwertyu0901 | 0.333333
3351
qwertyu0902 | 0.333333
3352
qwertyu0903 | 0.333333
3353
qwertyu0904 | 0.333333
3354
qwertyu0905 | 0.333333
3355
qwertyu0906 | 0.333333
3356
qwertyu0907 | 0.333333
3357
qwertyu0908 | 0.333333
3358
qwertyu0909 | 0.333333
3359
qwertyu0910 | 0.333333
3360
qwertyu0911 | 0.333333
3361
qwertyu0912 | 0.333333
3362
qwertyu0913 | 0.333333
3363
qwertyu0914 | 0.333333
3364
qwertyu0915 | 0.333333
3365
qwertyu0916 | 0.333333
3366
qwertyu0917 | 0.333333
3367
qwertyu0918 | 0.333333
3368
qwertyu0919 | 0.333333
3369
qwertyu0920 | 0.333333
3370
qwertyu0921 | 0.333333
3371
qwertyu0922 | 0.333333
3372
qwertyu0923 | 0.333333
3373
qwertyu0924 | 0.333333
3374
qwertyu0925 | 0.333333
3375
qwertyu0926 | 0.333333
3376
qwertyu0927 | 0.333333
3377
qwertyu0928 | 0.333333
3378
qwertyu0929 | 0.333333
3379
qwertyu0930 | 0.333333
3380
qwertyu0931 | 0.333333
3381
qwertyu0932 | 0.333333
3382
qwertyu0933 | 0.333333
3383
qwertyu0934 | 0.333333
3384
qwertyu0935 | 0.333333
3385
qwertyu0936 | 0.333333
3386
qwertyu0937 | 0.333333
3387
qwertyu0938 | 0.333333
3388
qwertyu0939 | 0.333333
3389
qwertyu0940 | 0.333333
3390
qwertyu0941 | 0.333333
3391
qwertyu0942 | 0.333333
3392
qwertyu0943 | 0.333333
3393
qwertyu0944 | 0.333333
3394
qwertyu0945 | 0.333333
3395
qwertyu0946 | 0.333333
3396
qwertyu0947 | 0.333333
3397
qwertyu0948 | 0.333333
3398
qwertyu0949 | 0.333333
3399
qwertyu0950 | 0.333333
3400
qwertyu0951 | 0.333333
3401
qwertyu0952 | 0.333333
3402
qwertyu0953 | 0.333333
3403
qwertyu0954 | 0.333333
3404
qwertyu0955 | 0.333333
3405
qwertyu0956 | 0.333333
3406
qwertyu0957 | 0.333333
3407
qwertyu0958 | 0.333333
3408
qwertyu0959 | 0.333333
3409
qwertyu0960 | 0.333333
3410
qwertyu0961 | 0.333333
3411
qwertyu0962 | 0.333333
3412
qwertyu0963 | 0.333333
3413
qwertyu0964 | 0.333333
3414
qwertyu0965 | 0.333333
3415
qwertyu0966 | 0.333333
3416
qwertyu0967 | 0.333333
3417
qwertyu0968 | 0.333333
3418
qwertyu0969 | 0.333333
3419
qwertyu0970 | 0.333333
3420
qwertyu0971 | 0.333333
3421
qwertyu0972 | 0.333333
3422
qwertyu0973 | 0.333333
3423
qwertyu0974 | 0.333333
3424
qwertyu0975 | 0.333333
3425
qwertyu0976 | 0.333333
3426
qwertyu0977 | 0.333333
3427
qwertyu0978 | 0.333333
3428
qwertyu0979 | 0.333333
3429
qwertyu0990 | 0.333333
3430
qwertyu0991 | 0.333333
3431
qwertyu0992 | 0.333333
3432
qwertyu0993 | 0.333333
3433
qwertyu0994 | 0.333333
3434
qwertyu0995 | 0.333333
3435
qwertyu0996 | 0.333333
3436
qwertyu0997 | 0.333333
3437
qwertyu0998 | 0.333333
3438
qwertyu0999 | 0.333333
3441
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
3443
-------------+----------
3444
qwertyu0988 | 0.333333