postgresql/contrib/pg_trgm/expected/pg_trgm.out

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

5405 lines
125 KiB
Plaintext
Raw Normal View History

CREATE EXTENSION pg_trgm;
-- Check whether any of our opclasses fail amvalidate
SELECT amname, opcname
FROM pg_opclass opc LEFT JOIN pg_am am ON am.oid = opcmethod
WHERE opc.oid >= 16384 AND NOT amvalidate(opc.oid);
amname | opcname
--------+---------
(0 rows)
--backslash is used in tests below, installcheck will fail if
--standard_conforming_string is off
set standard_conforming_strings=on;
Change floating-point output format for improved performance. Previously, floating-point output was done by rounding to a specific decimal precision; by default, to 6 or 15 decimal digits (losing information) or as requested using extra_float_digits. Drivers that wanted exact float values, and applications like pg_dump that must preserve values exactly, set extra_float_digits=3 (or sometimes 2 for historical reasons, though this isn't enough for float4). Unfortunately, decimal rounded output is slow enough to become a noticable bottleneck when dealing with large result sets or COPY of large tables when many floating-point values are involved. Floating-point output can be done much faster when the output is not rounded to a specific decimal length, but rather is chosen as the shortest decimal representation that is closer to the original float value than to any other value representable in the same precision. The recently published Ryu algorithm by Ulf Adams is both relatively simple and remarkably fast. Accordingly, change float4out/float8out to output shortest decimal representations if extra_float_digits is greater than 0, and make that the new default. Applications that need rounded output can set extra_float_digits back to 0 or below, and take the resulting performance hit. We make one concession to portability for systems with buggy floating-point input: we do not output decimal values that fall exactly halfway between adjacent representable binary values (which would rely on the reader doing round-to-nearest-even correctly). This is known to be a problem at least for VS2013 on Windows. Our version of the Ryu code originates from https://github.com/ulfjack/ryu/ at commit c9c3fb1979, but with the following (significant) modifications: - Output format is changed to use fixed-point notation for small exponents, as printf would, and also to use lowercase 'e', a minimum of 2 exponent digits, and a mandatory sign on the exponent, to keep the formatting as close as possible to previous output. - The output of exact midpoint values is disabled as noted above. - The integer fast-path code is changed somewhat (since we have fixed-point output and the upstream did not). - Our project style has been largely applied to the code with the exception of C99 declaration-after-statement, which has been retained as an exception to our present policy. - Most of upstream's debugging and conditionals are removed, and we use our own configure tests to determine things like uint128 availability. Changing the float output format obviously affects a number of regression tests. This patch uses an explicit setting of extra_float_digits=0 for test output that is not expected to be exactly reproducible (e.g. due to numerical instability or differing algorithms for transcendental functions). Conversions from floats to numeric are unchanged by this patch. These may appear in index expressions and it is not yet clear whether any change should be made, so that can be left for another day. This patch assumes that the only supported floating point format is now IEEE format, and the documentation is updated to reflect that. Code by me, adapting the work of Ulf Adams and other contributors. References: https://dl.acm.org/citation.cfm?id=3192369 Reviewed-by: Tom Lane, Andres Freund, Donald Dong Discussion: https://postgr.es/m/87r2el1bx6.fsf@news-spur.riddles.org.uk
2019-02-13 16:20:33 +01:00
-- reduce noise
set extra_float_digits = 0;
select show_trgm('');
show_trgm
-----------
{}
(1 row)
select show_trgm('(*&^$@%@');
show_trgm
-----------
{}
(1 row)
select show_trgm('a b c');
show_trgm
---------------------------------------
{" a"," b"," c"," a "," b "," c "}
(1 row)
select show_trgm(' a b c ');
show_trgm
---------------------------------------
{" a"," b"," c"," a "," b "," c "}
(1 row)
select show_trgm('aA bB cC');
show_trgm
---------------------------------------------------------
{" a"," b"," c"," aa"," bb"," cc","aa ","bb ","cc "}
(1 row)
select show_trgm(' aA bB cC ');
show_trgm
---------------------------------------------------------
{" a"," b"," c"," aa"," bb"," cc","aa ","bb ","cc "}
(1 row)
select show_trgm('a b C0*%^');
show_trgm
---------------------------------------------
{" a"," b"," c"," a "," b "," c0","c0 "}
(1 row)
select similarity('wow','WOWa ');
similarity
------------
0.5
(1 row)
select similarity('wow',' WOW ');
similarity
------------
1
(1 row)
select similarity('---', '####---');
similarity
------------
0
(1 row)
CREATE TABLE test_trgm(t text COLLATE "C");
\copy test_trgm from 'data/trgm.data'
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 1
qwertyu0980 | 0.714286
qwertyu0981 | 0.714286
qwertyu0982 | 0.714286
qwertyu0983 | 0.714286
qwertyu0984 | 0.714286
qwertyu0985 | 0.714286
qwertyu0986 | 0.714286
qwertyu0987 | 0.714286
qwertyu0989 | 0.714286
qwertyu0088 | 0.6
qwertyu0098 | 0.6
qwertyu0188 | 0.6
qwertyu0288 | 0.6
qwertyu0388 | 0.6
qwertyu0488 | 0.6
qwertyu0588 | 0.6
qwertyu0688 | 0.6
qwertyu0788 | 0.6
qwertyu0888 | 0.6
qwertyu0900 | 0.6
qwertyu0901 | 0.6
qwertyu0902 | 0.6
qwertyu0903 | 0.6
qwertyu0904 | 0.6
qwertyu0905 | 0.6
qwertyu0906 | 0.6
qwertyu0907 | 0.6
qwertyu0908 | 0.6
qwertyu0909 | 0.6
qwertyu0910 | 0.6
qwertyu0911 | 0.6
qwertyu0912 | 0.6
qwertyu0913 | 0.6
qwertyu0914 | 0.6
qwertyu0915 | 0.6
qwertyu0916 | 0.6
qwertyu0917 | 0.6
qwertyu0918 | 0.6
qwertyu0919 | 0.6
qwertyu0920 | 0.6
qwertyu0921 | 0.6
qwertyu0922 | 0.6
qwertyu0923 | 0.6
qwertyu0924 | 0.6
qwertyu0925 | 0.6
qwertyu0926 | 0.6
qwertyu0927 | 0.6
qwertyu0928 | 0.6
qwertyu0929 | 0.6
qwertyu0930 | 0.6
qwertyu0931 | 0.6
qwertyu0932 | 0.6
qwertyu0933 | 0.6
qwertyu0934 | 0.6
qwertyu0935 | 0.6
qwertyu0936 | 0.6
qwertyu0937 | 0.6
qwertyu0938 | 0.6
qwertyu0939 | 0.6
qwertyu0940 | 0.6
qwertyu0941 | 0.6
qwertyu0942 | 0.6
qwertyu0943 | 0.6
qwertyu0944 | 0.6
qwertyu0945 | 0.6
qwertyu0946 | 0.6
qwertyu0947 | 0.6
qwertyu0948 | 0.6
qwertyu0949 | 0.6
qwertyu0950 | 0.6
qwertyu0951 | 0.6
qwertyu0952 | 0.6
qwertyu0953 | 0.6
qwertyu0954 | 0.6
qwertyu0955 | 0.6
qwertyu0956 | 0.6
qwertyu0957 | 0.6
qwertyu0958 | 0.6
qwertyu0959 | 0.6
qwertyu0960 | 0.6
qwertyu0961 | 0.6
qwertyu0962 | 0.6
qwertyu0963 | 0.6
qwertyu0964 | 0.6
qwertyu0965 | 0.6
qwertyu0966 | 0.6
qwertyu0967 | 0.6
qwertyu0968 | 0.6
qwertyu0969 | 0.6
qwertyu0970 | 0.6
qwertyu0971 | 0.6
qwertyu0972 | 0.6
qwertyu0973 | 0.6
qwertyu0974 | 0.6
qwertyu0975 | 0.6
qwertyu0976 | 0.6
qwertyu0977 | 0.6
qwertyu0978 | 0.6
qwertyu0979 | 0.6
qwertyu0990 | 0.6
qwertyu0991 | 0.6
qwertyu0992 | 0.6
qwertyu0993 | 0.6
qwertyu0994 | 0.6
qwertyu0995 | 0.6
qwertyu0996 | 0.6
qwertyu0997 | 0.6
qwertyu0998 | 0.6
qwertyu0999 | 0.6
qwertyu0001 | 0.5
qwertyu0002 | 0.5
qwertyu0003 | 0.5
qwertyu0004 | 0.5
qwertyu0005 | 0.5
qwertyu0006 | 0.5
qwertyu0007 | 0.5
qwertyu0008 | 0.5
qwertyu0009 | 0.5
qwertyu0010 | 0.5
qwertyu0011 | 0.5
qwertyu0012 | 0.5
qwertyu0013 | 0.5
qwertyu0014 | 0.5
qwertyu0015 | 0.5
qwertyu0016 | 0.5
qwertyu0017 | 0.5
qwertyu0018 | 0.5
qwertyu0019 | 0.5
qwertyu0020 | 0.5
qwertyu0021 | 0.5
qwertyu0022 | 0.5
qwertyu0023 | 0.5
qwertyu0024 | 0.5
qwertyu0025 | 0.5
qwertyu0026 | 0.5
qwertyu0027 | 0.5
qwertyu0028 | 0.5
qwertyu0029 | 0.5
qwertyu0030 | 0.5
qwertyu0031 | 0.5
qwertyu0032 | 0.5
qwertyu0033 | 0.5
qwertyu0034 | 0.5
qwertyu0035 | 0.5
qwertyu0036 | 0.5
qwertyu0037 | 0.5
qwertyu0038 | 0.5
qwertyu0039 | 0.5
qwertyu0040 | 0.5
qwertyu0041 | 0.5
qwertyu0042 | 0.5
qwertyu0043 | 0.5
qwertyu0044 | 0.5
qwertyu0045 | 0.5
qwertyu0046 | 0.5
qwertyu0047 | 0.5
qwertyu0048 | 0.5
qwertyu0049 | 0.5
qwertyu0050 | 0.5
qwertyu0051 | 0.5
qwertyu0052 | 0.5
qwertyu0053 | 0.5
qwertyu0054 | 0.5
qwertyu0055 | 0.5
qwertyu0056 | 0.5
qwertyu0057 | 0.5
qwertyu0058 | 0.5
qwertyu0059 | 0.5
qwertyu0060 | 0.5
qwertyu0061 | 0.5
qwertyu0062 | 0.5
qwertyu0063 | 0.5
qwertyu0064 | 0.5
qwertyu0065 | 0.5
qwertyu0066 | 0.5
qwertyu0067 | 0.5
qwertyu0068 | 0.5
qwertyu0069 | 0.5
qwertyu0070 | 0.5
qwertyu0071 | 0.5
qwertyu0072 | 0.5
qwertyu0073 | 0.5
qwertyu0074 | 0.5
qwertyu0075 | 0.5
qwertyu0076 | 0.5
qwertyu0077 | 0.5
qwertyu0078 | 0.5
qwertyu0079 | 0.5
qwertyu0080 | 0.5
qwertyu0081 | 0.5
qwertyu0082 | 0.5
qwertyu0083 | 0.5
qwertyu0084 | 0.5
qwertyu0085 | 0.5
qwertyu0086 | 0.5
qwertyu0087 | 0.5
qwertyu0089 | 0.5
qwertyu0090 | 0.5
qwertyu0091 | 0.5
qwertyu0092 | 0.5
qwertyu0093 | 0.5
qwertyu0094 | 0.5
qwertyu0095 | 0.5
qwertyu0096 | 0.5
qwertyu0097 | 0.5
qwertyu0099 | 0.5
qwertyu0100 | 0.5
qwertyu0101 | 0.5
qwertyu0102 | 0.5
qwertyu0103 | 0.5
qwertyu0104 | 0.5
qwertyu0105 | 0.5
qwertyu0106 | 0.5
qwertyu0107 | 0.5
qwertyu0108 | 0.5
qwertyu0109 | 0.5
qwertyu0110 | 0.5
qwertyu0111 | 0.5
qwertyu0112 | 0.5
qwertyu0113 | 0.5
qwertyu0114 | 0.5
qwertyu0115 | 0.5
qwertyu0116 | 0.5
qwertyu0117 | 0.5
qwertyu0118 | 0.5
qwertyu0119 | 0.5
qwertyu0120 | 0.5
qwertyu0121 | 0.5
qwertyu0122 | 0.5
qwertyu0123 | 0.5
qwertyu0124 | 0.5
qwertyu0125 | 0.5
qwertyu0126 | 0.5
qwertyu0127 | 0.5
qwertyu0128 | 0.5
qwertyu0129 | 0.5
qwertyu0130 | 0.5
qwertyu0131 | 0.5
qwertyu0132 | 0.5
qwertyu0133 | 0.5
qwertyu0134 | 0.5
qwertyu0135 | 0.5
qwertyu0136 | 0.5
qwertyu0137 | 0.5
qwertyu0138 | 0.5
qwertyu0139 | 0.5
qwertyu0140 | 0.5
qwertyu0141 | 0.5
qwertyu0142 | 0.5
qwertyu0143 | 0.5
qwertyu0144 | 0.5
qwertyu0145 | 0.5
qwertyu0146 | 0.5
qwertyu0147 | 0.5
qwertyu0148 | 0.5
qwertyu0149 | 0.5
qwertyu0150 | 0.5
qwertyu0151 | 0.5
qwertyu0152 | 0.5
qwertyu0153 | 0.5
qwertyu0154 | 0.5
qwertyu0155 | 0.5
qwertyu0156 | 0.5
qwertyu0157 | 0.5
qwertyu0158 | 0.5
qwertyu0159 | 0.5
qwertyu0160 | 0.5
qwertyu0161 | 0.5
qwertyu0162 | 0.5
qwertyu0163 | 0.5
qwertyu0164 | 0.5
qwertyu0165 | 0.5
qwertyu0166 | 0.5
qwertyu0167 | 0.5
qwertyu0168 | 0.5
qwertyu0169 | 0.5
qwertyu0170 | 0.5
qwertyu0171 | 0.5
qwertyu0172 | 0.5
qwertyu0173 | 0.5
qwertyu0174 | 0.5
qwertyu0175 | 0.5
qwertyu0176 | 0.5
qwertyu0177 | 0.5
qwertyu0178 | 0.5
qwertyu0179 | 0.5
qwertyu0180 | 0.5
qwertyu0181 | 0.5
qwertyu0182 | 0.5
qwertyu0183 | 0.5
qwertyu0184 | 0.5
qwertyu0185 | 0.5
qwertyu0186 | 0.5
qwertyu0187 | 0.5
qwertyu0189 | 0.5
qwertyu0190 | 0.5
qwertyu0191 | 0.5
qwertyu0192 | 0.5
qwertyu0193 | 0.5
qwertyu0194 | 0.5
qwertyu0195 | 0.5
qwertyu0196 | 0.5
qwertyu0197 | 0.5
qwertyu0198 | 0.5
qwertyu0199 | 0.5
qwertyu0200 | 0.5
qwertyu0201 | 0.5
qwertyu0202 | 0.5
qwertyu0203 | 0.5
qwertyu0204 | 0.5
qwertyu0205 | 0.5
qwertyu0206 | 0.5
qwertyu0207 | 0.5
qwertyu0208 | 0.5
qwertyu0209 | 0.5
qwertyu0210 | 0.5
qwertyu0211 | 0.5
qwertyu0212 | 0.5
qwertyu0213 | 0.5
qwertyu0214 | 0.5
qwertyu0215 | 0.5
qwertyu0216 | 0.5
qwertyu0217 | 0.5
qwertyu0218 | 0.5
qwertyu0219 | 0.5
qwertyu0220 | 0.5
qwertyu0221 | 0.5
qwertyu0222 | 0.5
qwertyu0223 | 0.5
qwertyu0224 | 0.5
qwertyu0225 | 0.5
qwertyu0226 | 0.5
qwertyu0227 | 0.5
qwertyu0228 | 0.5
qwertyu0229 | 0.5
qwertyu0230 | 0.5
qwertyu0231 | 0.5
qwertyu0232 | 0.5
qwertyu0233 | 0.5
qwertyu0234 | 0.5
qwertyu0235 | 0.5
qwertyu0236 | 0.5
qwertyu0237 | 0.5
qwertyu0238 | 0.5
qwertyu0239 | 0.5
qwertyu0240 | 0.5
qwertyu0241 | 0.5
qwertyu0242 | 0.5
qwertyu0243 | 0.5
qwertyu0244 | 0.5
qwertyu0245 | 0.5
qwertyu0246 | 0.5
qwertyu0247 | 0.5
qwertyu0248 | 0.5
qwertyu0249 | 0.5
qwertyu0250 | 0.5
qwertyu0251 | 0.5
qwertyu0252 | 0.5
qwertyu0253 | 0.5
qwertyu0254 | 0.5
qwertyu0255 | 0.5
qwertyu0256 | 0.5
qwertyu0257 | 0.5
qwertyu0258 | 0.5
qwertyu0259 | 0.5
qwertyu0260 | 0.5
qwertyu0261 | 0.5
qwertyu0262 | 0.5
qwertyu0263 | 0.5
qwertyu0264 | 0.5
qwertyu0265 | 0.5
qwertyu0266 | 0.5
qwertyu0267 | 0.5
qwertyu0268 | 0.5
qwertyu0269 | 0.5
qwertyu0270 | 0.5
qwertyu0271 | 0.5
qwertyu0272 | 0.5
qwertyu0273 | 0.5
qwertyu0274 | 0.5
qwertyu0275 | 0.5
qwertyu0276 | 0.5
qwertyu0277 | 0.5
qwertyu0278 | 0.5
qwertyu0279 | 0.5
qwertyu0280 | 0.5
qwertyu0281 | 0.5
qwertyu0282 | 0.5
qwertyu0283 | 0.5
qwertyu0284 | 0.5
qwertyu0285 | 0.5
qwertyu0286 | 0.5
qwertyu0287 | 0.5
qwertyu0289 | 0.5
qwertyu0290 | 0.5
qwertyu0291 | 0.5
qwertyu0292 | 0.5
qwertyu0293 | 0.5
qwertyu0294 | 0.5
qwertyu0295 | 0.5
qwertyu0296 | 0.5
qwertyu0297 | 0.5
qwertyu0298 | 0.5
qwertyu0299 | 0.5
qwertyu0300 | 0.5
qwertyu0301 | 0.5
qwertyu0302 | 0.5
qwertyu0303 | 0.5
qwertyu0304 | 0.5
qwertyu0305 | 0.5
qwertyu0306 | 0.5
qwertyu0307 | 0.5
qwertyu0308 | 0.5
qwertyu0309 | 0.5
qwertyu0310 | 0.5
qwertyu0311 | 0.5
qwertyu0312 | 0.5
qwertyu0313 | 0.5
qwertyu0314 | 0.5
qwertyu0315 | 0.5
qwertyu0316 | 0.5
qwertyu0317 | 0.5
qwertyu0318 | 0.5
qwertyu0319 | 0.5
qwertyu0320 | 0.5
qwertyu0321 | 0.5
qwertyu0322 | 0.5
qwertyu0323 | 0.5
qwertyu0324 | 0.5
qwertyu0325 | 0.5
qwertyu0326 | 0.5
qwertyu0327 | 0.5
qwertyu0328 | 0.5
qwertyu0329 | 0.5
qwertyu0330 | 0.5
qwertyu0331 | 0.5
qwertyu0332 | 0.5
qwertyu0333 | 0.5
qwertyu0334 | 0.5
qwertyu0335 | 0.5
qwertyu0336 | 0.5
qwertyu0337 | 0.5
qwertyu0338 | 0.5
qwertyu0339 | 0.5
qwertyu0340 | 0.5
qwertyu0341 | 0.5
qwertyu0342 | 0.5
qwertyu0343 | 0.5
qwertyu0344 | 0.5
qwertyu0345 | 0.5
qwertyu0346 | 0.5
qwertyu0347 | 0.5
qwertyu0348 | 0.5
qwertyu0349 | 0.5
qwertyu0350 | 0.5
qwertyu0351 | 0.5
qwertyu0352 | 0.5
qwertyu0353 | 0.5
qwertyu0354 | 0.5
qwertyu0355 | 0.5
qwertyu0356 | 0.5
qwertyu0357 | 0.5
qwertyu0358 | 0.5
qwertyu0359 | 0.5
qwertyu0360 | 0.5
qwertyu0361 | 0.5
qwertyu0362 | 0.5
qwertyu0363 | 0.5
qwertyu0364 | 0.5
qwertyu0365 | 0.5
qwertyu0366 | 0.5
qwertyu0367 | 0.5
qwertyu0368 | 0.5
qwertyu0369 | 0.5
qwertyu0370 | 0.5
qwertyu0371 | 0.5
qwertyu0372 | 0.5
qwertyu0373 | 0.5
qwertyu0374 | 0.5
qwertyu0375 | 0.5
qwertyu0376 | 0.5
qwertyu0377 | 0.5
qwertyu0378 | 0.5
qwertyu0379 | 0.5
qwertyu0380 | 0.5
qwertyu0381 | 0.5
qwertyu0382 | 0.5
qwertyu0383 | 0.5
qwertyu0384 | 0.5
qwertyu0385 | 0.5
qwertyu0386 | 0.5
qwertyu0387 | 0.5
qwertyu0389 | 0.5
qwertyu0390 | 0.5
qwertyu0391 | 0.5
qwertyu0392 | 0.5
qwertyu0393 | 0.5
qwertyu0394 | 0.5
qwertyu0395 | 0.5
qwertyu0396 | 0.5
qwertyu0397 | 0.5
qwertyu0398 | 0.5
qwertyu0399 | 0.5
qwertyu0400 | 0.5
qwertyu0401 | 0.5
qwertyu0402 | 0.5
qwertyu0403 | 0.5
qwertyu0404 | 0.5
qwertyu0405 | 0.5
qwertyu0406 | 0.5
qwertyu0407 | 0.5
qwertyu0408 | 0.5
qwertyu0409 | 0.5
qwertyu0410 | 0.5
qwertyu0411 | 0.5
qwertyu0412 | 0.5
qwertyu0413 | 0.5
qwertyu0414 | 0.5
qwertyu0415 | 0.5
qwertyu0416 | 0.5
qwertyu0417 | 0.5
qwertyu0418 | 0.5
qwertyu0419 | 0.5
qwertyu0420 | 0.5
qwertyu0421 | 0.5
qwertyu0422 | 0.5
qwertyu0423 | 0.5
qwertyu0424 | 0.5
qwertyu0425 | 0.5
qwertyu0426 | 0.5
qwertyu0427 | 0.5
qwertyu0428 | 0.5
qwertyu0429 | 0.5
qwertyu0430 | 0.5
qwertyu0431 | 0.5
qwertyu0432 | 0.5
qwertyu0433 | 0.5
qwertyu0434 | 0.5
qwertyu0435 | 0.5
qwertyu0436 | 0.5
qwertyu0437 | 0.5
qwertyu0438 | 0.5
qwertyu0439 | 0.5
qwertyu0440 | 0.5
qwertyu0441 | 0.5
qwertyu0442 | 0.5
qwertyu0443 | 0.5
qwertyu0444 | 0.5
qwertyu0445 | 0.5
qwertyu0446 | 0.5
qwertyu0447 | 0.5
qwertyu0448 | 0.5
qwertyu0449 | 0.5
qwertyu0450 | 0.5
qwertyu0451 | 0.5
qwertyu0452 | 0.5
qwertyu0453 | 0.5
qwertyu0454 | 0.5
qwertyu0455 | 0.5
qwertyu0456 | 0.5
qwertyu0457 | 0.5
qwertyu0458 | 0.5
qwertyu0459 | 0.5
qwertyu0460 | 0.5
qwertyu0461 | 0.5
qwertyu0462 | 0.5
qwertyu0463 | 0.5
qwertyu0464 | 0.5
qwertyu0465 | 0.5
qwertyu0466 | 0.5
qwertyu0467 | 0.5
qwertyu0468 | 0.5
qwertyu0469 | 0.5
qwertyu0470 | 0.5
qwertyu0471 | 0.5
qwertyu0472 | 0.5
qwertyu0473 | 0.5
qwertyu0474 | 0.5
qwertyu0475 | 0.5
qwertyu0476 | 0.5
qwertyu0477 | 0.5
qwertyu0478 | 0.5
qwertyu0479 | 0.5
qwertyu0480 | 0.5
qwertyu0481 | 0.5
qwertyu0482 | 0.5
qwertyu0483 | 0.5
qwertyu0484 | 0.5
qwertyu0485 | 0.5
qwertyu0486 | 0.5
qwertyu0487 | 0.5
qwertyu0489 | 0.5
qwertyu0490 | 0.5
qwertyu0491 | 0.5
qwertyu0492 | 0.5
qwertyu0493 | 0.5
qwertyu0494 | 0.5
qwertyu0495 | 0.5
qwertyu0496 | 0.5
qwertyu0497 | 0.5
qwertyu0498 | 0.5
qwertyu0499 | 0.5
qwertyu0500 | 0.5
qwertyu0501 | 0.5
qwertyu0502 | 0.5
qwertyu0503 | 0.5
qwertyu0504 | 0.5
qwertyu0505 | 0.5
qwertyu0506 | 0.5
qwertyu0507 | 0.5
qwertyu0508 | 0.5
qwertyu0509 | 0.5
qwertyu0510 | 0.5
qwertyu0511 | 0.5
qwertyu0512 | 0.5
qwertyu0513 | 0.5
qwertyu0514 | 0.5
qwertyu0515 | 0.5
qwertyu0516 | 0.5
qwertyu0517 | 0.5
qwertyu0518 | 0.5
qwertyu0519 | 0.5
qwertyu0520 | 0.5
qwertyu0521 | 0.5
qwertyu0522 | 0.5
qwertyu0523 | 0.5
qwertyu0524 | 0.5
qwertyu0525 | 0.5
qwertyu0526 | 0.5
qwertyu0527 | 0.5
qwertyu0528 | 0.5
qwertyu0529 | 0.5
qwertyu0530 | 0.5
qwertyu0531 | 0.5
qwertyu0532 | 0.5
qwertyu0533 | 0.5
qwertyu0534 | 0.5
qwertyu0535 | 0.5
qwertyu0536 | 0.5
qwertyu0537 | 0.5
qwertyu0538 | 0.5
qwertyu0539 | 0.5
qwertyu0540 | 0.5
qwertyu0541 | 0.5
qwertyu0542 | 0.5
qwertyu0543 | 0.5
qwertyu0544 | 0.5
qwertyu0545 | 0.5
qwertyu0546 | 0.5
qwertyu0547 | 0.5
qwertyu0548 | 0.5
qwertyu0549 | 0.5
qwertyu0550 | 0.5
qwertyu0551 | 0.5
qwertyu0552 | 0.5
qwertyu0553 | 0.5
qwertyu0554 | 0.5
qwertyu0555 | 0.5
qwertyu0556 | 0.5
qwertyu0557 | 0.5
qwertyu0558 | 0.5
qwertyu0559 | 0.5
qwertyu0560 | 0.5
qwertyu0561 | 0.5
qwertyu0562 | 0.5
qwertyu0563 | 0.5
qwertyu0564 | 0.5
qwertyu0565 | 0.5
qwertyu0566 | 0.5
qwertyu0567 | 0.5
qwertyu0568 | 0.5
qwertyu0569 | 0.5
qwertyu0570 | 0.5
qwertyu0571 | 0.5
qwertyu0572 | 0.5
qwertyu0573 | 0.5
qwertyu0574 | 0.5
qwertyu0575 | 0.5
qwertyu0576 | 0.5
qwertyu0577 | 0.5
qwertyu0578 | 0.5
qwertyu0579 | 0.5
qwertyu0580 | 0.5
qwertyu0581 | 0.5
qwertyu0582 | 0.5
qwertyu0583 | 0.5
qwertyu0584 | 0.5
qwertyu0585 | 0.5
qwertyu0586 | 0.5
qwertyu0587 | 0.5
qwertyu0589 | 0.5
qwertyu0590 | 0.5
qwertyu0591 | 0.5
qwertyu0592 | 0.5
qwertyu0593 | 0.5
qwertyu0594 | 0.5
qwertyu0595 | 0.5
qwertyu0596 | 0.5
qwertyu0597 | 0.5
qwertyu0598 | 0.5
qwertyu0599 | 0.5
qwertyu0600 | 0.5
qwertyu0601 | 0.5
qwertyu0602 | 0.5
qwertyu0603 | 0.5
qwertyu0604 | 0.5
qwertyu0605 | 0.5
qwertyu0606 | 0.5
qwertyu0607 | 0.5
qwertyu0608 | 0.5
qwertyu0609 | 0.5
qwertyu0610 | 0.5
qwertyu0611 | 0.5
qwertyu0612 | 0.5
qwertyu0613 | 0.5
qwertyu0614 | 0.5
qwertyu0615 | 0.5
qwertyu0616 | 0.5
qwertyu0617 | 0.5
qwertyu0618 | 0.5
qwertyu0619 | 0.5
qwertyu0620 | 0.5
qwertyu0621 | 0.5
qwertyu0622 | 0.5
qwertyu0623 | 0.5
qwertyu0624 | 0.5
qwertyu0625 | 0.5
qwertyu0626 | 0.5
qwertyu0627 | 0.5
qwertyu0628 | 0.5
qwertyu0629 | 0.5
qwertyu0630 | 0.5
qwertyu0631 | 0.5
qwertyu0632 | 0.5
qwertyu0633 | 0.5
qwertyu0634 | 0.5
qwertyu0635 | 0.5
qwertyu0636 | 0.5
qwertyu0637 | 0.5
qwertyu0638 | 0.5
qwertyu0639 | 0.5
qwertyu0640 | 0.5
qwertyu0641 | 0.5
qwertyu0642 | 0.5
qwertyu0643 | 0.5
qwertyu0644 | 0.5
qwertyu0645 | 0.5
qwertyu0646 | 0.5
qwertyu0647 | 0.5
qwertyu0648 | 0.5
qwertyu0649 | 0.5
qwertyu0650 | 0.5
qwertyu0651 | 0.5
qwertyu0652 | 0.5
qwertyu0653 | 0.5
qwertyu0654 | 0.5
qwertyu0655 | 0.5
qwertyu0656 | 0.5
qwertyu0657 | 0.5
qwertyu0658 | 0.5
qwertyu0659 | 0.5
qwertyu0660 | 0.5
qwertyu0661 | 0.5
qwertyu0662 | 0.5
qwertyu0663 | 0.5
qwertyu0664 | 0.5
qwertyu0665 | 0.5
qwertyu0666 | 0.5
qwertyu0667 | 0.5
qwertyu0668 | 0.5
qwertyu0669 | 0.5
qwertyu0670 | 0.5
qwertyu0671 | 0.5
qwertyu0672 | 0.5
qwertyu0673 | 0.5
qwertyu0674 | 0.5
qwertyu0675 | 0.5
qwertyu0676 | 0.5
qwertyu0677 | 0.5
qwertyu0678 | 0.5
qwertyu0679 | 0.5
qwertyu0680 | 0.5
qwertyu0681 | 0.5
qwertyu0682 | 0.5
qwertyu0683 | 0.5
qwertyu0684 | 0.5
qwertyu0685 | 0.5
qwertyu0686 | 0.5
qwertyu0687 | 0.5
qwertyu0689 | 0.5
qwertyu0690 | 0.5
qwertyu0691 | 0.5
qwertyu0692 | 0.5
qwertyu0693 | 0.5
qwertyu0694 | 0.5
qwertyu0695 | 0.5
qwertyu0696 | 0.5
qwertyu0697 | 0.5
qwertyu0698 | 0.5
qwertyu0699 | 0.5
qwertyu0700 | 0.5
qwertyu0701 | 0.5
qwertyu0702 | 0.5
qwertyu0703 | 0.5
qwertyu0704 | 0.5
qwertyu0705 | 0.5
qwertyu0706 | 0.5
qwertyu0707 | 0.5
qwertyu0708 | 0.5
qwertyu0709 | 0.5
qwertyu0710 | 0.5
qwertyu0711 | 0.5
qwertyu0712 | 0.5
qwertyu0713 | 0.5
qwertyu0714 | 0.5
qwertyu0715 | 0.5
qwertyu0716 | 0.5
qwertyu0717 | 0.5
qwertyu0718 | 0.5
qwertyu0719 | 0.5
qwertyu0720 | 0.5
qwertyu0721 | 0.5
qwertyu0722 | 0.5
qwertyu0723 | 0.5
qwertyu0724 | 0.5
qwertyu0725 | 0.5
qwertyu0726 | 0.5
qwertyu0727 | 0.5
qwertyu0728 | 0.5
qwertyu0729 | 0.5
qwertyu0730 | 0.5
qwertyu0731 | 0.5
qwertyu0732 | 0.5
qwertyu0733 | 0.5
qwertyu0734 | 0.5
qwertyu0735 | 0.5
qwertyu0736 | 0.5
qwertyu0737 | 0.5
qwertyu0738 | 0.5
qwertyu0739 | 0.5
qwertyu0740 | 0.5
qwertyu0741 | 0.5
qwertyu0742 | 0.5
qwertyu0743 | 0.5
qwertyu0744 | 0.5
qwertyu0745 | 0.5
qwertyu0746 | 0.5
qwertyu0747 | 0.5
qwertyu0748 | 0.5
qwertyu0749 | 0.5
qwertyu0750 | 0.5
qwertyu0751 | 0.5
qwertyu0752 | 0.5
qwertyu0753 | 0.5
qwertyu0754 | 0.5
qwertyu0755 | 0.5
qwertyu0756 | 0.5
qwertyu0757 | 0.5
qwertyu0758 | 0.5
qwertyu0759 | 0.5
qwertyu0760 | 0.5
qwertyu0761 | 0.5
qwertyu0762 | 0.5
qwertyu0763 | 0.5
qwertyu0764 | 0.5
qwertyu0765 | 0.5
qwertyu0766 | 0.5
qwertyu0767 | 0.5
qwertyu0768 | 0.5
qwertyu0769 | 0.5
qwertyu0770 | 0.5
qwertyu0771 | 0.5
qwertyu0772 | 0.5
qwertyu0773 | 0.5
qwertyu0774 | 0.5
qwertyu0775 | 0.5
qwertyu0776 | 0.5
qwertyu0777 | 0.5
qwertyu0778 | 0.5
qwertyu0779 | 0.5
qwertyu0780 | 0.5
qwertyu0781 | 0.5
qwertyu0782 | 0.5
qwertyu0783 | 0.5
qwertyu0784 | 0.5
qwertyu0785 | 0.5
qwertyu0786 | 0.5
qwertyu0787 | 0.5
qwertyu0789 | 0.5
qwertyu0790 | 0.5
qwertyu0791 | 0.5
qwertyu0792 | 0.5
qwertyu0793 | 0.5
qwertyu0794 | 0.5
qwertyu0795 | 0.5
qwertyu0796 | 0.5
qwertyu0797 | 0.5
qwertyu0798 | 0.5
qwertyu0799 | 0.5
qwertyu0800 | 0.5
qwertyu0801 | 0.5
qwertyu0802 | 0.5
qwertyu0803 | 0.5
qwertyu0804 | 0.5
qwertyu0805 | 0.5
qwertyu0806 | 0.5
qwertyu0807 | 0.5
qwertyu0808 | 0.5
qwertyu0809 | 0.5
qwertyu0810 | 0.5
qwertyu0811 | 0.5
qwertyu0812 | 0.5
qwertyu0813 | 0.5
qwertyu0814 | 0.5
qwertyu0815 | 0.5
qwertyu0816 | 0.5
qwertyu0817 | 0.5
qwertyu0818 | 0.5
qwertyu0819 | 0.5
qwertyu0820 | 0.5
qwertyu0821 | 0.5
qwertyu0822 | 0.5
qwertyu0823 | 0.5
qwertyu0824 | 0.5
qwertyu0825 | 0.5
qwertyu0826 | 0.5
qwertyu0827 | 0.5
qwertyu0828 | 0.5
qwertyu0829 | 0.5
qwertyu0830 | 0.5
qwertyu0831 | 0.5
qwertyu0832 | 0.5
qwertyu0833 | 0.5
qwertyu0834 | 0.5
qwertyu0835 | 0.5
qwertyu0836 | 0.5
qwertyu0837 | 0.5
qwertyu0838 | 0.5
qwertyu0839 | 0.5
qwertyu0840 | 0.5
qwertyu0841 | 0.5
qwertyu0842 | 0.5
qwertyu0843 | 0.5
qwertyu0844 | 0.5
qwertyu0845 | 0.5
qwertyu0846 | 0.5
qwertyu0847 | 0.5
qwertyu0848 | 0.5
qwertyu0849 | 0.5
qwertyu0850 | 0.5
qwertyu0851 | 0.5
qwertyu0852 | 0.5
qwertyu0853 | 0.5
qwertyu0854 | 0.5
qwertyu0855 | 0.5
qwertyu0856 | 0.5
qwertyu0857 | 0.5
qwertyu0858 | 0.5
qwertyu0859 | 0.5
qwertyu0860 | 0.5
qwertyu0861 | 0.5
qwertyu0862 | 0.5
qwertyu0863 | 0.5
qwertyu0864 | 0.5
qwertyu0865 | 0.5
qwertyu0866 | 0.5
qwertyu0867 | 0.5
qwertyu0868 | 0.5
qwertyu0869 | 0.5
qwertyu0870 | 0.5
qwertyu0871 | 0.5
qwertyu0872 | 0.5
qwertyu0873 | 0.5
qwertyu0874 | 0.5
qwertyu0875 | 0.5
qwertyu0876 | 0.5
qwertyu0877 | 0.5
qwertyu0878 | 0.5
qwertyu0879 | 0.5
qwertyu0880 | 0.5
qwertyu0881 | 0.5
qwertyu0882 | 0.5
qwertyu0883 | 0.5
qwertyu0884 | 0.5
qwertyu0885 | 0.5
qwertyu0886 | 0.5
qwertyu0887 | 0.5
qwertyu0889 | 0.5
qwertyu0890 | 0.5
qwertyu0891 | 0.5
qwertyu0892 | 0.5
qwertyu0893 | 0.5
qwertyu0894 | 0.5
qwertyu0895 | 0.5
qwertyu0896 | 0.5
qwertyu0897 | 0.5
qwertyu0898 | 0.5
qwertyu0899 | 0.5
qwertyu1000 | 0.411765
(1000 rows)
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.6
qwertyu0980 | 0.411765
qwertyu0981 | 0.411765
qwertyu0982 | 0.411765
qwertyu0983 | 0.411765
qwertyu0984 | 0.411765
qwertyu0985 | 0.411765
qwertyu0986 | 0.411765
qwertyu0987 | 0.411765
qwertyu0989 | 0.411765
qwertyu0088 | 0.333333
qwertyu0098 | 0.333333
qwertyu0188 | 0.333333
qwertyu0288 | 0.333333
qwertyu0388 | 0.333333
qwertyu0488 | 0.333333
qwertyu0588 | 0.333333
qwertyu0688 | 0.333333
qwertyu0788 | 0.333333
qwertyu0888 | 0.333333
qwertyu0900 | 0.333333
qwertyu0901 | 0.333333
qwertyu0902 | 0.333333
qwertyu0903 | 0.333333
qwertyu0904 | 0.333333
qwertyu0905 | 0.333333
qwertyu0906 | 0.333333
qwertyu0907 | 0.333333
qwertyu0908 | 0.333333
qwertyu0909 | 0.333333
qwertyu0910 | 0.333333
qwertyu0911 | 0.333333
qwertyu0912 | 0.333333
qwertyu0913 | 0.333333
qwertyu0914 | 0.333333
qwertyu0915 | 0.333333
qwertyu0916 | 0.333333
qwertyu0917 | 0.333333
qwertyu0918 | 0.333333
qwertyu0919 | 0.333333
qwertyu0920 | 0.333333
qwertyu0921 | 0.333333
qwertyu0922 | 0.333333
qwertyu0923 | 0.333333
qwertyu0924 | 0.333333
qwertyu0925 | 0.333333
qwertyu0926 | 0.333333
qwertyu0927 | 0.333333
qwertyu0928 | 0.333333
qwertyu0929 | 0.333333
qwertyu0930 | 0.333333
qwertyu0931 | 0.333333
qwertyu0932 | 0.333333
qwertyu0933 | 0.333333
qwertyu0934 | 0.333333
qwertyu0935 | 0.333333
qwertyu0936 | 0.333333
qwertyu0937 | 0.333333
qwertyu0938 | 0.333333
qwertyu0939 | 0.333333
qwertyu0940 | 0.333333
qwertyu0941 | 0.333333
qwertyu0942 | 0.333333
qwertyu0943 | 0.333333
qwertyu0944 | 0.333333
qwertyu0945 | 0.333333
qwertyu0946 | 0.333333
qwertyu0947 | 0.333333
qwertyu0948 | 0.333333
qwertyu0949 | 0.333333
qwertyu0950 | 0.333333
qwertyu0951 | 0.333333
qwertyu0952 | 0.333333
qwertyu0953 | 0.333333
qwertyu0954 | 0.333333
qwertyu0955 | 0.333333
qwertyu0956 | 0.333333
qwertyu0957 | 0.333333
qwertyu0958 | 0.333333
qwertyu0959 | 0.333333
qwertyu0960 | 0.333333
qwertyu0961 | 0.333333
qwertyu0962 | 0.333333
qwertyu0963 | 0.333333
qwertyu0964 | 0.333333
qwertyu0965 | 0.333333
qwertyu0966 | 0.333333
qwertyu0967 | 0.333333
qwertyu0968 | 0.333333
qwertyu0969 | 0.333333
qwertyu0970 | 0.333333
qwertyu0971 | 0.333333
qwertyu0972 | 0.333333
qwertyu0973 | 0.333333
qwertyu0974 | 0.333333
qwertyu0975 | 0.333333
qwertyu0976 | 0.333333
qwertyu0977 | 0.333333
qwertyu0978 | 0.333333
qwertyu0979 | 0.333333
qwertyu0990 | 0.333333
qwertyu0991 | 0.333333
qwertyu0992 | 0.333333
qwertyu0993 | 0.333333
qwertyu0994 | 0.333333
qwertyu0995 | 0.333333
qwertyu0996 | 0.333333
qwertyu0997 | 0.333333
qwertyu0998 | 0.333333
qwertyu0999 | 0.333333
(110 rows)
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.333333
(1 row)
select t <-> 'q0987wertyu0988', t from test_trgm order by t <-> 'q0987wertyu0988' limit 2;
?column? | t
----------+-------------
0.411765 | qwertyu0988
0.5 | qwertyu0987
(2 rows)
select count(*) from test_trgm where t ~ '[qwerty]{2}-?[qwerty]{2}';
count
-------
1000
(1 row)
create index trgm_idx on test_trgm using gist (t gist_trgm_ops);
set enable_seqscan=off;
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 1
qwertyu0980 | 0.714286
qwertyu0981 | 0.714286
qwertyu0982 | 0.714286
qwertyu0983 | 0.714286
qwertyu0984 | 0.714286
qwertyu0985 | 0.714286
qwertyu0986 | 0.714286
Implement operator class parameters PostgreSQL provides set of template index access methods, where opclasses have much freedom in the semantics of indexing. These index AMs are GiST, GIN, SP-GiST and BRIN. There opclasses define representation of keys, operations on them and supported search strategies. So, it's natural that opclasses may be faced some tradeoffs, which require user-side decision. This commit implements opclass parameters allowing users to set some values, which tell opclass how to index the particular dataset. This commit doesn't introduce new storage in system catalog. Instead it uses pg_attribute.attoptions, which is used for table column storage options but unused for index attributes. In order to evade changing signature of each opclass support function, we implement unified way to pass options to opclass support functions. Options are set to fn_expr as the constant bytea expression. It's possible due to the fact that opclass support functions are executed outside of expressions, so fn_expr is unused for them. This commit comes with some examples of opclass options usage. We parametrize signature length in GiST. That applies to multiple opclasses: tsvector_ops, gist__intbig_ops, gist_ltree_ops, gist__ltree_ops, gist_trgm_ops and gist_hstore_ops. Also we parametrize maximum number of integer ranges for gist__int_ops. However, the main future usage of this feature is expected to be json, where users would be able to specify which way to index particular json parts. Catversion is bumped. Discussion: https://postgr.es/m/d22c3a18-31c7-1879-fc11-4c1ce2f5e5af%40postgrespro.ru Author: Nikita Glukhov, revised by me Reviwed-by: Nikolay Shaplov, Robert Haas, Tom Lane, Tomas Vondra, Alvaro Herrera
2020-03-30 18:17:11 +02:00
qwertyu0987 | 0.714286
qwertyu0989 | 0.714286
qwertyu0088 | 0.6
qwertyu0098 | 0.6
qwertyu0188 | 0.6
qwertyu0288 | 0.6
qwertyu0388 | 0.6
qwertyu0488 | 0.6
qwertyu0588 | 0.6
qwertyu0688 | 0.6
qwertyu0788 | 0.6
qwertyu0888 | 0.6
qwertyu0900 | 0.6
qwertyu0901 | 0.6
qwertyu0902 | 0.6
qwertyu0903 | 0.6
qwertyu0904 | 0.6
qwertyu0905 | 0.6
qwertyu0906 | 0.6
qwertyu0907 | 0.6
qwertyu0908 | 0.6
qwertyu0909 | 0.6
qwertyu0910 | 0.6
qwertyu0911 | 0.6
qwertyu0912 | 0.6
qwertyu0913 | 0.6
qwertyu0914 | 0.6
qwertyu0915 | 0.6
qwertyu0916 | 0.6
qwertyu0917 | 0.6
qwertyu0918 | 0.6
qwertyu0919 | 0.6
qwertyu0920 | 0.6
qwertyu0921 | 0.6
qwertyu0922 | 0.6
qwertyu0923 | 0.6
qwertyu0924 | 0.6
qwertyu0925 | 0.6
qwertyu0926 | 0.6
qwertyu0927 | 0.6
qwertyu0928 | 0.6
qwertyu0929 | 0.6
qwertyu0930 | 0.6
qwertyu0931 | 0.6
qwertyu0932 | 0.6
qwertyu0933 | 0.6
qwertyu0934 | 0.6
qwertyu0935 | 0.6
qwertyu0936 | 0.6
qwertyu0937 | 0.6
qwertyu0938 | 0.6
qwertyu0939 | 0.6
qwertyu0940 | 0.6
qwertyu0941 | 0.6
qwertyu0942 | 0.6
qwertyu0943 | 0.6
qwertyu0944 | 0.6
qwertyu0945 | 0.6
qwertyu0946 | 0.6
qwertyu0947 | 0.6
qwertyu0948 | 0.6
qwertyu0949 | 0.6
qwertyu0950 | 0.6
qwertyu0951 | 0.6
qwertyu0952 | 0.6
qwertyu0953 | 0.6
qwertyu0954 | 0.6
qwertyu0955 | 0.6
qwertyu0956 | 0.6
qwertyu0957 | 0.6
qwertyu0958 | 0.6
qwertyu0959 | 0.6
qwertyu0960 | 0.6
qwertyu0961 | 0.6
qwertyu0962 | 0.6
qwertyu0963 | 0.6
qwertyu0964 | 0.6
qwertyu0965 | 0.6
qwertyu0966 | 0.6
qwertyu0967 | 0.6
qwertyu0968 | 0.6
qwertyu0969 | 0.6
qwertyu0970 | 0.6
qwertyu0971 | 0.6
qwertyu0972 | 0.6
qwertyu0973 | 0.6
qwertyu0974 | 0.6
qwertyu0975 | 0.6
qwertyu0976 | 0.6
qwertyu0977 | 0.6
qwertyu0978 | 0.6
qwertyu0979 | 0.6
qwertyu0990 | 0.6
qwertyu0991 | 0.6
qwertyu0992 | 0.6
qwertyu0993 | 0.6
qwertyu0994 | 0.6
qwertyu0995 | 0.6
qwertyu0996 | 0.6
qwertyu0997 | 0.6
qwertyu0998 | 0.6
qwertyu0999 | 0.6
qwertyu0001 | 0.5
qwertyu0002 | 0.5
qwertyu0003 | 0.5
qwertyu0004 | 0.5
qwertyu0005 | 0.5
qwertyu0006 | 0.5
qwertyu0007 | 0.5
qwertyu0008 | 0.5
qwertyu0009 | 0.5
qwertyu0010 | 0.5
qwertyu0011 | 0.5
qwertyu0012 | 0.5
qwertyu0013 | 0.5
qwertyu0014 | 0.5
qwertyu0015 | 0.5
qwertyu0016 | 0.5
qwertyu0017 | 0.5
qwertyu0018 | 0.5
qwertyu0019 | 0.5
qwertyu0020 | 0.5
qwertyu0021 | 0.5
qwertyu0022 | 0.5
qwertyu0023 | 0.5
qwertyu0024 | 0.5
qwertyu0025 | 0.5
qwertyu0026 | 0.5
qwertyu0027 | 0.5
qwertyu0028 | 0.5
qwertyu0029 | 0.5
qwertyu0030 | 0.5
qwertyu0031 | 0.5
qwertyu0032 | 0.5
qwertyu0033 | 0.5
qwertyu0034 | 0.5
qwertyu0035 | 0.5
qwertyu0036 | 0.5
qwertyu0037 | 0.5
qwertyu0038 | 0.5
qwertyu0039 | 0.5
qwertyu0040 | 0.5
qwertyu0041 | 0.5
qwertyu0042 | 0.5
qwertyu0043 | 0.5
qwertyu0044 | 0.5
qwertyu0045 | 0.5
qwertyu0046 | 0.5
qwertyu0047 | 0.5
qwertyu0048 | 0.5
qwertyu0049 | 0.5
qwertyu0050 | 0.5
qwertyu0051 | 0.5
qwertyu0052 | 0.5
qwertyu0053 | 0.5
qwertyu0054 | 0.5
qwertyu0055 | 0.5
qwertyu0056 | 0.5
qwertyu0057 | 0.5
qwertyu0058 | 0.5
qwertyu0059 | 0.5
qwertyu0060 | 0.5
qwertyu0061 | 0.5
qwertyu0062 | 0.5
qwertyu0063 | 0.5
qwertyu0064 | 0.5
qwertyu0065 | 0.5
qwertyu0066 | 0.5
qwertyu0067 | 0.5
qwertyu0068 | 0.5
qwertyu0069 | 0.5
qwertyu0070 | 0.5
qwertyu0071 | 0.5
qwertyu0072 | 0.5
qwertyu0073 | 0.5
qwertyu0074 | 0.5
qwertyu0075 | 0.5
qwertyu0076 | 0.5
qwertyu0077 | 0.5
qwertyu0078 | 0.5
qwertyu0079 | 0.5
qwertyu0080 | 0.5
qwertyu0081 | 0.5
qwertyu0082 | 0.5
qwertyu0083 | 0.5
qwertyu0084 | 0.5
qwertyu0085 | 0.5
qwertyu0086 | 0.5
qwertyu0087 | 0.5
qwertyu0089 | 0.5
qwertyu0090 | 0.5
qwertyu0091 | 0.5
qwertyu0092 | 0.5
qwertyu0093 | 0.5
qwertyu0094 | 0.5
qwertyu0095 | 0.5
qwertyu0096 | 0.5
qwertyu0097 | 0.5
qwertyu0099 | 0.5
qwertyu0100 | 0.5
qwertyu0101 | 0.5
qwertyu0102 | 0.5
qwertyu0103 | 0.5
qwertyu0104 | 0.5
qwertyu0105 | 0.5
qwertyu0106 | 0.5
qwertyu0107 | 0.5
qwertyu0108 | 0.5
qwertyu0109 | 0.5
qwertyu0110 | 0.5
qwertyu0111 | 0.5
qwertyu0112 | 0.5
qwertyu0113 | 0.5
qwertyu0114 | 0.5
qwertyu0115 | 0.5
qwertyu0116 | 0.5
qwertyu0117 | 0.5
qwertyu0118 | 0.5
qwertyu0119 | 0.5
qwertyu0120 | 0.5
qwertyu0121 | 0.5
qwertyu0122 | 0.5
qwertyu0123 | 0.5
qwertyu0124 | 0.5
qwertyu0125 | 0.5
qwertyu0126 | 0.5
qwertyu0127 | 0.5
qwertyu0128 | 0.5
qwertyu0129 | 0.5
qwertyu0130 | 0.5
qwertyu0131 | 0.5
qwertyu0132 | 0.5
qwertyu0133 | 0.5
qwertyu0134 | 0.5
qwertyu0135 | 0.5
qwertyu0136 | 0.5
qwertyu0137 | 0.5
qwertyu0138 | 0.5
qwertyu0139 | 0.5
qwertyu0140 | 0.5
qwertyu0141 | 0.5
qwertyu0142 | 0.5
qwertyu0143 | 0.5
qwertyu0144 | 0.5
qwertyu0145 | 0.5
qwertyu0146 | 0.5
qwertyu0147 | 0.5
qwertyu0148 | 0.5
qwertyu0149 | 0.5
qwertyu0150 | 0.5
qwertyu0151 | 0.5
qwertyu0152 | 0.5
qwertyu0153 | 0.5
qwertyu0154 | 0.5
qwertyu0155 | 0.5
qwertyu0156 | 0.5
qwertyu0157 | 0.5
qwertyu0158 | 0.5
qwertyu0159 | 0.5
qwertyu0160 | 0.5
qwertyu0161 | 0.5
qwertyu0162 | 0.5
qwertyu0163 | 0.5
qwertyu0164 | 0.5
qwertyu0165 | 0.5
qwertyu0166 | 0.5
qwertyu0167 | 0.5
qwertyu0168 | 0.5
qwertyu0169 | 0.5
qwertyu0170 | 0.5
qwertyu0171 | 0.5
qwertyu0172 | 0.5
qwertyu0173 | 0.5
qwertyu0174 | 0.5
qwertyu0175 | 0.5
qwertyu0176 | 0.5
qwertyu0177 | 0.5
qwertyu0178 | 0.5
qwertyu0179 | 0.5
qwertyu0180 | 0.5
qwertyu0181 | 0.5
qwertyu0182 | 0.5
qwertyu0183 | 0.5
qwertyu0184 | 0.5
qwertyu0185 | 0.5
qwertyu0186 | 0.5
qwertyu0187 | 0.5
qwertyu0189 | 0.5
qwertyu0190 | 0.5
qwertyu0191 | 0.5
qwertyu0192 | 0.5
qwertyu0193 | 0.5
qwertyu0194 | 0.5
qwertyu0195 | 0.5
qwertyu0196 | 0.5
qwertyu0197 | 0.5
qwertyu0198 | 0.5
qwertyu0199 | 0.5
qwertyu0200 | 0.5
qwertyu0201 | 0.5
qwertyu0202 | 0.5
qwertyu0203 | 0.5
qwertyu0204 | 0.5
qwertyu0205 | 0.5
qwertyu0206 | 0.5
qwertyu0207 | 0.5
qwertyu0208 | 0.5
qwertyu0209 | 0.5
qwertyu0210 | 0.5
qwertyu0211 | 0.5
qwertyu0212 | 0.5
qwertyu0213 | 0.5
qwertyu0214 | 0.5
qwertyu0215 | 0.5
qwertyu0216 | 0.5
qwertyu0217 | 0.5
qwertyu0218 | 0.5
qwertyu0219 | 0.5
qwertyu0220 | 0.5
qwertyu0221 | 0.5
qwertyu0222 | 0.5
qwertyu0223 | 0.5
qwertyu0224 | 0.5
qwertyu0225 | 0.5
qwertyu0226 | 0.5
qwertyu0227 | 0.5
qwertyu0228 | 0.5
qwertyu0229 | 0.5
qwertyu0230 | 0.5
qwertyu0231 | 0.5
qwertyu0232 | 0.5
qwertyu0233 | 0.5
qwertyu0234 | 0.5
qwertyu0235 | 0.5
qwertyu0236 | 0.5
qwertyu0237 | 0.5
qwertyu0238 | 0.5
qwertyu0239 | 0.5
qwertyu0240 | 0.5
qwertyu0241 | 0.5
qwertyu0242 | 0.5
qwertyu0243 | 0.5
qwertyu0244 | 0.5
qwertyu0245 | 0.5
qwertyu0246 | 0.5
qwertyu0247 | 0.5
qwertyu0248 | 0.5
qwertyu0249 | 0.5
qwertyu0250 | 0.5
qwertyu0251 | 0.5
qwertyu0252 | 0.5
qwertyu0253 | 0.5
qwertyu0254 | 0.5
qwertyu0255 | 0.5
qwertyu0256 | 0.5
qwertyu0257 | 0.5
qwertyu0258 | 0.5
qwertyu0259 | 0.5
qwertyu0260 | 0.5
qwertyu0261 | 0.5
qwertyu0262 | 0.5
qwertyu0263 | 0.5
qwertyu0264 | 0.5
qwertyu0265 | 0.5
qwertyu0266 | 0.5
qwertyu0267 | 0.5
qwertyu0268 | 0.5
qwertyu0269 | 0.5
qwertyu0270 | 0.5
qwertyu0271 | 0.5
qwertyu0272 | 0.5
qwertyu0273 | 0.5
qwertyu0274 | 0.5
qwertyu0275 | 0.5
qwertyu0276 | 0.5
qwertyu0277 | 0.5
qwertyu0278 | 0.5
qwertyu0279 | 0.5
qwertyu0280 | 0.5
qwertyu0281 | 0.5
qwertyu0282 | 0.5
qwertyu0283 | 0.5
qwertyu0284 | 0.5
qwertyu0285 | 0.5
qwertyu0286 | 0.5
qwertyu0287 | 0.5
qwertyu0289 | 0.5
qwertyu0290 | 0.5
qwertyu0291 | 0.5
qwertyu0292 | 0.5
qwertyu0293 | 0.5
qwertyu0294 | 0.5
qwertyu0295 | 0.5
qwertyu0296 | 0.5
qwertyu0297 | 0.5
qwertyu0298 | 0.5
qwertyu0299 | 0.5
qwertyu0300 | 0.5
qwertyu0301 | 0.5
qwertyu0302 | 0.5
qwertyu0303 | 0.5
qwertyu0304 | 0.5
qwertyu0305 | 0.5
qwertyu0306 | 0.5
qwertyu0307 | 0.5
qwertyu0308 | 0.5
qwertyu0309 | 0.5
qwertyu0310 | 0.5
qwertyu0311 | 0.5
qwertyu0312 | 0.5
qwertyu0313 | 0.5
qwertyu0314 | 0.5
qwertyu0315 | 0.5
qwertyu0316 | 0.5
qwertyu0317 | 0.5
qwertyu0318 | 0.5
qwertyu0319 | 0.5
qwertyu0320 | 0.5
qwertyu0321 | 0.5
qwertyu0322 | 0.5
qwertyu0323 | 0.5
qwertyu0324 | 0.5
qwertyu0325 | 0.5
qwertyu0326 | 0.5
qwertyu0327 | 0.5
qwertyu0328 | 0.5
qwertyu0329 | 0.5
qwertyu0330 | 0.5
qwertyu0331 | 0.5
qwertyu0332 | 0.5
qwertyu0333 | 0.5
qwertyu0334 | 0.5
qwertyu0335 | 0.5
qwertyu0336 | 0.5
qwertyu0337 | 0.5
qwertyu0338 | 0.5
qwertyu0339 | 0.5
qwertyu0340 | 0.5
qwertyu0341 | 0.5
qwertyu0342 | 0.5
qwertyu0343 | 0.5
qwertyu0344 | 0.5
qwertyu0345 | 0.5
qwertyu0346 | 0.5
qwertyu0347 | 0.5
qwertyu0348 | 0.5
qwertyu0349 | 0.5
qwertyu0350 | 0.5
qwertyu0351 | 0.5
qwertyu0352 | 0.5
qwertyu0353 | 0.5
qwertyu0354 | 0.5
qwertyu0355 | 0.5
qwertyu0356 | 0.5
qwertyu0357 | 0.5
qwertyu0358 | 0.5
qwertyu0359 | 0.5
qwertyu0360 | 0.5
qwertyu0361 | 0.5
qwertyu0362 | 0.5
qwertyu0363 | 0.5
qwertyu0364 | 0.5
qwertyu0365 | 0.5
qwertyu0366 | 0.5
qwertyu0367 | 0.5
qwertyu0368 | 0.5
qwertyu0369 | 0.5
qwertyu0370 | 0.5
qwertyu0371 | 0.5
qwertyu0372 | 0.5
qwertyu0373 | 0.5
qwertyu0374 | 0.5
qwertyu0375 | 0.5
qwertyu0376 | 0.5
qwertyu0377 | 0.5
qwertyu0378 | 0.5
qwertyu0379 | 0.5
qwertyu0380 | 0.5
qwertyu0381 | 0.5
qwertyu0382 | 0.5
qwertyu0383 | 0.5
qwertyu0384 | 0.5
qwertyu0385 | 0.5
qwertyu0386 | 0.5
qwertyu0387 | 0.5
qwertyu0389 | 0.5
qwertyu0390 | 0.5
qwertyu0391 | 0.5
qwertyu0392 | 0.5
qwertyu0393 | 0.5
qwertyu0394 | 0.5
qwertyu0395 | 0.5
qwertyu0396 | 0.5
qwertyu0397 | 0.5
qwertyu0398 | 0.5
qwertyu0399 | 0.5
qwertyu0400 | 0.5
qwertyu0401 | 0.5
qwertyu0402 | 0.5
qwertyu0403 | 0.5
qwertyu0404 | 0.5
qwertyu0405 | 0.5
qwertyu0406 | 0.5
qwertyu0407 | 0.5
qwertyu0408 | 0.5
qwertyu0409 | 0.5
qwertyu0410 | 0.5
qwertyu0411 | 0.5
qwertyu0412 | 0.5
qwertyu0413 | 0.5
qwertyu0414 | 0.5
qwertyu0415 | 0.5
qwertyu0416 | 0.5
qwertyu0417 | 0.5
qwertyu0418 | 0.5
qwertyu0419 | 0.5
qwertyu0420 | 0.5
qwertyu0421 | 0.5
qwertyu0422 | 0.5
qwertyu0423 | 0.5
qwertyu0424 | 0.5
qwertyu0425 | 0.5
qwertyu0426 | 0.5
qwertyu0427 | 0.5
qwertyu0428 | 0.5
qwertyu0429 | 0.5
qwertyu0430 | 0.5
qwertyu0431 | 0.5
qwertyu0432 | 0.5
qwertyu0433 | 0.5
qwertyu0434 | 0.5
qwertyu0435 | 0.5
qwertyu0436 | 0.5
qwertyu0437 | 0.5
qwertyu0438 | 0.5
qwertyu0439 | 0.5
qwertyu0440 | 0.5
qwertyu0441 | 0.5
qwertyu0442 | 0.5
qwertyu0443 | 0.5
qwertyu0444 | 0.5
qwertyu0445 | 0.5
qwertyu0446 | 0.5
qwertyu0447 | 0.5
qwertyu0448 | 0.5
qwertyu0449 | 0.5
qwertyu0450 | 0.5
qwertyu0451 | 0.5
qwertyu0452 | 0.5
qwertyu0453 | 0.5
qwertyu0454 | 0.5
qwertyu0455 | 0.5
qwertyu0456 | 0.5
qwertyu0457 | 0.5
qwertyu0458 | 0.5
qwertyu0459 | 0.5
qwertyu0460 | 0.5
qwertyu0461 | 0.5
qwertyu0462 | 0.5
qwertyu0463 | 0.5
qwertyu0464 | 0.5
qwertyu0465 | 0.5
qwertyu0466 | 0.5
qwertyu0467 | 0.5
qwertyu0468 | 0.5
qwertyu0469 | 0.5
qwertyu0470 | 0.5
qwertyu0471 | 0.5
qwertyu0472 | 0.5
qwertyu0473 | 0.5
qwertyu0474 | 0.5
qwertyu0475 | 0.5
qwertyu0476 | 0.5
qwertyu0477 | 0.5
qwertyu0478 | 0.5
qwertyu0479 | 0.5
qwertyu0480 | 0.5
qwertyu0481 | 0.5
qwertyu0482 | 0.5
qwertyu0483 | 0.5
qwertyu0484 | 0.5
qwertyu0485 | 0.5
qwertyu0486 | 0.5
qwertyu0487 | 0.5
qwertyu0489 | 0.5
qwertyu0490 | 0.5
qwertyu0491 | 0.5
qwertyu0492 | 0.5
qwertyu0493 | 0.5
qwertyu0494 | 0.5
qwertyu0495 | 0.5
qwertyu0496 | 0.5
qwertyu0497 | 0.5
qwertyu0498 | 0.5
qwertyu0499 | 0.5
qwertyu0500 | 0.5
qwertyu0501 | 0.5
qwertyu0502 | 0.5
qwertyu0503 | 0.5
qwertyu0504 | 0.5
qwertyu0505 | 0.5
qwertyu0506 | 0.5
qwertyu0507 | 0.5
qwertyu0508 | 0.5
qwertyu0509 | 0.5
qwertyu0510 | 0.5
qwertyu0511 | 0.5
qwertyu0512 | 0.5
qwertyu0513 | 0.5
qwertyu0514 | 0.5
qwertyu0515 | 0.5
qwertyu0516 | 0.5
qwertyu0517 | 0.5
qwertyu0518 | 0.5
qwertyu0519 | 0.5
qwertyu0520 | 0.5
qwertyu0521 | 0.5
qwertyu0522 | 0.5
qwertyu0523 | 0.5
qwertyu0524 | 0.5
qwertyu0525 | 0.5
qwertyu0526 | 0.5
qwertyu0527 | 0.5
qwertyu0528 | 0.5
qwertyu0529 | 0.5
qwertyu0530 | 0.5
qwertyu0531 | 0.5
qwertyu0532 | 0.5
qwertyu0533 | 0.5
qwertyu0534 | 0.5
qwertyu0535 | 0.5
qwertyu0536 | 0.5
qwertyu0537 | 0.5
qwertyu0538 | 0.5
qwertyu0539 | 0.5
qwertyu0540 | 0.5
qwertyu0541 | 0.5
qwertyu0542 | 0.5
qwertyu0543 | 0.5
qwertyu0544 | 0.5
qwertyu0545 | 0.5
qwertyu0546 | 0.5
qwertyu0547 | 0.5
qwertyu0548 | 0.5
qwertyu0549 | 0.5
qwertyu0550 | 0.5
qwertyu0551 | 0.5
qwertyu0552 | 0.5
qwertyu0553 | 0.5
qwertyu0554 | 0.5
qwertyu0555 | 0.5
qwertyu0556 | 0.5
qwertyu0557 | 0.5
qwertyu0558 | 0.5
qwertyu0559 | 0.5
qwertyu0560 | 0.5
qwertyu0561 | 0.5
qwertyu0562 | 0.5
qwertyu0563 | 0.5
qwertyu0564 | 0.5
qwertyu0565 | 0.5
qwertyu0566 | 0.5
qwertyu0567 | 0.5
qwertyu0568 | 0.5
qwertyu0569 | 0.5
qwertyu0570 | 0.5
qwertyu0571 | 0.5
qwertyu0572 | 0.5
qwertyu0573 | 0.5
qwertyu0574 | 0.5
qwertyu0575 | 0.5
qwertyu0576 | 0.5
qwertyu0577 | 0.5
qwertyu0578 | 0.5
qwertyu0579 | 0.5
qwertyu0580 | 0.5
qwertyu0581 | 0.5
qwertyu0582 | 0.5
qwertyu0583 | 0.5
qwertyu0584 | 0.5
qwertyu0585 | 0.5
qwertyu0586 | 0.5
qwertyu0587 | 0.5
qwertyu0589 | 0.5
qwertyu0590 | 0.5
qwertyu0591 | 0.5
qwertyu0592 | 0.5
qwertyu0593 | 0.5
qwertyu0594 | 0.5
qwertyu0595 | 0.5
qwertyu0596 | 0.5
qwertyu0597 | 0.5
qwertyu0598 | 0.5
qwertyu0599 | 0.5
qwertyu0600 | 0.5
qwertyu0601 | 0.5
qwertyu0602 | 0.5
qwertyu0603 | 0.5
qwertyu0604 | 0.5
qwertyu0605 | 0.5
qwertyu0606 | 0.5
qwertyu0607 | 0.5
qwertyu0608 | 0.5
qwertyu0609 | 0.5
qwertyu0610 | 0.5
qwertyu0611 | 0.5
qwertyu0612 | 0.5
qwertyu0613 | 0.5
qwertyu0614 | 0.5
qwertyu0615 | 0.5
qwertyu0616 | 0.5
qwertyu0617 | 0.5
qwertyu0618 | 0.5
qwertyu0619 | 0.5
qwertyu0620 | 0.5
qwertyu0621 | 0.5
qwertyu0622 | 0.5
qwertyu0623 | 0.5
qwertyu0624 | 0.5
qwertyu0625 | 0.5
qwertyu0626 | 0.5
qwertyu0627 | 0.5
qwertyu0628 | 0.5
qwertyu0629 | 0.5
qwertyu0630 | 0.5
qwertyu0631 | 0.5
qwertyu0632 | 0.5
qwertyu0633 | 0.5
qwertyu0634 | 0.5
qwertyu0635 | 0.5
qwertyu0636 | 0.5
qwertyu0637 | 0.5
qwertyu0638 | 0.5
qwertyu0639 | 0.5
qwertyu0640 | 0.5
qwertyu0641 | 0.5
qwertyu0642 | 0.5
qwertyu0643 | 0.5
qwertyu0644 | 0.5
qwertyu0645 | 0.5
qwertyu0646 | 0.5
qwertyu0647 | 0.5
qwertyu0648 | 0.5
qwertyu0649 | 0.5
qwertyu0650 | 0.5
qwertyu0651 | 0.5
qwertyu0652 | 0.5
qwertyu0653 | 0.5
qwertyu0654 | 0.5
qwertyu0655 | 0.5
qwertyu0656 | 0.5
qwertyu0657 | 0.5
qwertyu0658 | 0.5
qwertyu0659 | 0.5
qwertyu0660 | 0.5
qwertyu0661 | 0.5
qwertyu0662 | 0.5
qwertyu0663 | 0.5
qwertyu0664 | 0.5
qwertyu0665 | 0.5
qwertyu0666 | 0.5
qwertyu0667 | 0.5
qwertyu0668 | 0.5
qwertyu0669 | 0.5
qwertyu0670 | 0.5
qwertyu0671 | 0.5
qwertyu0672 | 0.5
qwertyu0673 | 0.5
qwertyu0674 | 0.5
qwertyu0675 | 0.5
qwertyu0676 | 0.5
qwertyu0677 | 0.5
qwertyu0678 | 0.5
qwertyu0679 | 0.5
qwertyu0680 | 0.5
qwertyu0681 | 0.5
qwertyu0682 | 0.5
qwertyu0683 | 0.5
qwertyu0684 | 0.5
qwertyu0685 | 0.5
qwertyu0686 | 0.5
qwertyu0687 | 0.5
qwertyu0689 | 0.5
qwertyu0690 | 0.5
qwertyu0691 | 0.5
qwertyu0692 | 0.5
qwertyu0693 | 0.5
qwertyu0694 | 0.5
qwertyu0695 | 0.5
qwertyu0696 | 0.5
qwertyu0697 | 0.5
qwertyu0698 | 0.5
qwertyu0699 | 0.5
qwertyu0700 | 0.5
qwertyu0701 | 0.5
qwertyu0702 | 0.5
qwertyu0703 | 0.5
qwertyu0704 | 0.5
qwertyu0705 | 0.5
qwertyu0706 | 0.5
qwertyu0707 | 0.5
qwertyu0708 | 0.5
qwertyu0709 | 0.5
qwertyu0710 | 0.5
qwertyu0711 | 0.5
qwertyu0712 | 0.5
qwertyu0713 | 0.5
qwertyu0714 | 0.5
qwertyu0715 | 0.5
qwertyu0716 | 0.5
qwertyu0717 | 0.5
qwertyu0718 | 0.5
qwertyu0719 | 0.5
qwertyu0720 | 0.5
qwertyu0721 | 0.5
qwertyu0722 | 0.5
qwertyu0723 | 0.5
qwertyu0724 | 0.5
qwertyu0725 | 0.5
qwertyu0726 | 0.5
qwertyu0727 | 0.5
qwertyu0728 | 0.5
qwertyu0729 | 0.5
qwertyu0730 | 0.5
qwertyu0731 | 0.5
qwertyu0732 | 0.5
qwertyu0733 | 0.5
qwertyu0734 | 0.5
qwertyu0735 | 0.5
qwertyu0736 | 0.5
qwertyu0737 | 0.5
qwertyu0738 | 0.5
qwertyu0739 | 0.5
qwertyu0740 | 0.5
qwertyu0741 | 0.5
qwertyu0742 | 0.5
qwertyu0743 | 0.5
qwertyu0744 | 0.5
qwertyu0745 | 0.5
qwertyu0746 | 0.5
qwertyu0747 | 0.5
qwertyu0748 | 0.5
qwertyu0749 | 0.5
qwertyu0750 | 0.5
qwertyu0751 | 0.5
qwertyu0752 | 0.5
qwertyu0753 | 0.5
qwertyu0754 | 0.5
qwertyu0755 | 0.5
qwertyu0756 | 0.5
qwertyu0757 | 0.5
qwertyu0758 | 0.5
qwertyu0759 | 0.5
qwertyu0760 | 0.5
qwertyu0761 | 0.5
qwertyu0762 | 0.5
qwertyu0763 | 0.5
qwertyu0764 | 0.5
qwertyu0765 | 0.5
qwertyu0766 | 0.5
qwertyu0767 | 0.5
qwertyu0768 | 0.5
qwertyu0769 | 0.5
qwertyu0770 | 0.5
qwertyu0771 | 0.5
qwertyu0772 | 0.5
qwertyu0773 | 0.5
qwertyu0774 | 0.5
qwertyu0775 | 0.5
qwertyu0776 | 0.5
qwertyu0777 | 0.5
qwertyu0778 | 0.5
qwertyu0779 | 0.5
qwertyu0780 | 0.5
qwertyu0781 | 0.5
qwertyu0782 | 0.5
qwertyu0783 | 0.5
qwertyu0784 | 0.5
qwertyu0785 | 0.5
qwertyu0786 | 0.5
qwertyu0787 | 0.5
qwertyu0789 | 0.5
qwertyu0790 | 0.5
qwertyu0791 | 0.5
qwertyu0792 | 0.5
qwertyu0793 | 0.5
qwertyu0794 | 0.5
qwertyu0795 | 0.5
qwertyu0796 | 0.5
qwertyu0797 | 0.5
qwertyu0798 | 0.5
qwertyu0799 | 0.5
qwertyu0800 | 0.5
qwertyu0801 | 0.5
qwertyu0802 | 0.5
qwertyu0803 | 0.5
qwertyu0804 | 0.5
qwertyu0805 | 0.5
qwertyu0806 | 0.5
qwertyu0807 | 0.5
qwertyu0808 | 0.5
qwertyu0809 | 0.5
qwertyu0810 | 0.5
qwertyu0811 | 0.5
qwertyu0812 | 0.5
qwertyu0813 | 0.5
qwertyu0814 | 0.5
qwertyu0815 | 0.5
qwertyu0816 | 0.5
qwertyu0817 | 0.5
qwertyu0818 | 0.5
qwertyu0819 | 0.5
qwertyu0820 | 0.5
qwertyu0821 | 0.5
qwertyu0822 | 0.5
qwertyu0823 | 0.5
qwertyu0824 | 0.5
qwertyu0825 | 0.5
qwertyu0826 | 0.5
qwertyu0827 | 0.5
qwertyu0828 | 0.5
qwertyu0829 | 0.5
qwertyu0830 | 0.5
qwertyu0831 | 0.5
qwertyu0832 | 0.5
qwertyu0833 | 0.5
qwertyu0834 | 0.5
qwertyu0835 | 0.5
qwertyu0836 | 0.5
qwertyu0837 | 0.5
qwertyu0838 | 0.5
qwertyu0839 | 0.5
qwertyu0840 | 0.5
qwertyu0841 | 0.5
qwertyu0842 | 0.5
qwertyu0843 | 0.5
qwertyu0844 | 0.5
qwertyu0845 | 0.5
qwertyu0846 | 0.5
qwertyu0847 | 0.5
qwertyu0848 | 0.5
qwertyu0849 | 0.5
qwertyu0850 | 0.5
qwertyu0851 | 0.5
qwertyu0852 | 0.5
qwertyu0853 | 0.5
qwertyu0854 | 0.5
qwertyu0855 | 0.5
qwertyu0856 | 0.5
qwertyu0857 | 0.5
qwertyu0858 | 0.5
qwertyu0859 | 0.5
qwertyu0860 | 0.5
qwertyu0861 | 0.5
qwertyu0862 | 0.5
qwertyu0863 | 0.5
qwertyu0864 | 0.5
qwertyu0865 | 0.5
qwertyu0866 | 0.5
qwertyu0867 | 0.5
qwertyu0868 | 0.5
qwertyu0869 | 0.5
qwertyu0870 | 0.5
qwertyu0871 | 0.5
qwertyu0872 | 0.5
qwertyu0873 | 0.5
qwertyu0874 | 0.5
qwertyu0875 | 0.5
qwertyu0876 | 0.5
qwertyu0877 | 0.5
qwertyu0878 | 0.5
qwertyu0879 | 0.5
qwertyu0880 | 0.5
qwertyu0881 | 0.5
qwertyu0882 | 0.5
qwertyu0883 | 0.5
qwertyu0884 | 0.5
qwertyu0885 | 0.5
qwertyu0886 | 0.5
qwertyu0887 | 0.5
qwertyu0889 | 0.5
qwertyu0890 | 0.5
qwertyu0891 | 0.5
qwertyu0892 | 0.5
qwertyu0893 | 0.5
qwertyu0894 | 0.5
qwertyu0895 | 0.5
qwertyu0896 | 0.5
qwertyu0897 | 0.5
qwertyu0898 | 0.5
qwertyu0899 | 0.5
qwertyu1000 | 0.411765
(1000 rows)
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.6
qwertyu0980 | 0.411765
qwertyu0981 | 0.411765
qwertyu0982 | 0.411765
qwertyu0983 | 0.411765
qwertyu0984 | 0.411765
qwertyu0985 | 0.411765
qwertyu0986 | 0.411765
qwertyu0987 | 0.411765
qwertyu0989 | 0.411765
qwertyu0088 | 0.333333
qwertyu0098 | 0.333333
qwertyu0188 | 0.333333
qwertyu0288 | 0.333333
qwertyu0388 | 0.333333
qwertyu0488 | 0.333333
qwertyu0588 | 0.333333
qwertyu0688 | 0.333333
qwertyu0788 | 0.333333
qwertyu0888 | 0.333333
qwertyu0900 | 0.333333
qwertyu0901 | 0.333333
qwertyu0902 | 0.333333
qwertyu0903 | 0.333333
qwertyu0904 | 0.333333
qwertyu0905 | 0.333333
qwertyu0906 | 0.333333
qwertyu0907 | 0.333333
qwertyu0908 | 0.333333
qwertyu0909 | 0.333333
qwertyu0910 | 0.333333
qwertyu0911 | 0.333333
qwertyu0912 | 0.333333
qwertyu0913 | 0.333333
qwertyu0914 | 0.333333
qwertyu0915 | 0.333333
qwertyu0916 | 0.333333
qwertyu0917 | 0.333333
qwertyu0918 | 0.333333
qwertyu0919 | 0.333333
qwertyu0920 | 0.333333
qwertyu0921 | 0.333333
qwertyu0922 | 0.333333
qwertyu0923 | 0.333333
qwertyu0924 | 0.333333
qwertyu0925 | 0.333333
qwertyu0926 | 0.333333
qwertyu0927 | 0.333333
qwertyu0928 | 0.333333
qwertyu0929 | 0.333333
qwertyu0930 | 0.333333
qwertyu0931 | 0.333333
qwertyu0932 | 0.333333
qwertyu0933 | 0.333333
qwertyu0934 | 0.333333
qwertyu0935 | 0.333333
qwertyu0936 | 0.333333
qwertyu0937 | 0.333333
qwertyu0938 | 0.333333
qwertyu0939 | 0.333333
qwertyu0940 | 0.333333
qwertyu0941 | 0.333333
qwertyu0942 | 0.333333
qwertyu0943 | 0.333333
qwertyu0944 | 0.333333
qwertyu0945 | 0.333333
qwertyu0946 | 0.333333
qwertyu0947 | 0.333333
qwertyu0948 | 0.333333
qwertyu0949 | 0.333333
qwertyu0950 | 0.333333
qwertyu0951 | 0.333333
qwertyu0952 | 0.333333
qwertyu0953 | 0.333333
qwertyu0954 | 0.333333
qwertyu0955 | 0.333333
qwertyu0956 | 0.333333
qwertyu0957 | 0.333333
qwertyu0958 | 0.333333
qwertyu0959 | 0.333333
qwertyu0960 | 0.333333
qwertyu0961 | 0.333333
qwertyu0962 | 0.333333
qwertyu0963 | 0.333333
qwertyu0964 | 0.333333
qwertyu0965 | 0.333333
qwertyu0966 | 0.333333
qwertyu0967 | 0.333333
qwertyu0968 | 0.333333
qwertyu0969 | 0.333333
qwertyu0970 | 0.333333
qwertyu0971 | 0.333333
qwertyu0972 | 0.333333
qwertyu0973 | 0.333333
qwertyu0974 | 0.333333
qwertyu0975 | 0.333333
qwertyu0976 | 0.333333
qwertyu0977 | 0.333333
qwertyu0978 | 0.333333
qwertyu0979 | 0.333333
qwertyu0990 | 0.333333
qwertyu0991 | 0.333333
qwertyu0992 | 0.333333
qwertyu0993 | 0.333333
qwertyu0994 | 0.333333
qwertyu0995 | 0.333333
qwertyu0996 | 0.333333
qwertyu0997 | 0.333333
qwertyu0998 | 0.333333
qwertyu0999 | 0.333333
(110 rows)
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.333333
(1 row)
explain (costs off)
select t <-> 'q0987wertyu0988', t from test_trgm order by t <-> 'q0987wertyu0988' limit 2;
QUERY PLAN
---------------------------------------------------
Limit
-> Index Scan using trgm_idx on test_trgm
Order By: (t <-> 'q0987wertyu0988'::text)
(3 rows)
select t <-> 'q0987wertyu0988', t from test_trgm order by t <-> 'q0987wertyu0988' limit 2;
?column? | t
----------+-------------
0.411765 | qwertyu0988
0.5 | qwertyu0987
(2 rows)
select count(*) from test_trgm where t ~ '[qwerty]{2}-?[qwerty]{2}';
count
-------
1000
(1 row)
drop index trgm_idx;
create index trgm_idx on test_trgm using gist (t gist_trgm_ops(siglen=0));
ERROR: value 0 out of bounds for option "siglen"
DETAIL: Valid values are between "1" and "2024".
create index trgm_idx on test_trgm using gist (t gist_trgm_ops(siglen=2025));
ERROR: value 2025 out of bounds for option "siglen"
DETAIL: Valid values are between "1" and "2024".
create index trgm_idx on test_trgm using gist (t gist_trgm_ops(siglen=2024));
set enable_seqscan=off;
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 1
qwertyu0980 | 0.714286
qwertyu0981 | 0.714286
qwertyu0982 | 0.714286
qwertyu0983 | 0.714286
qwertyu0984 | 0.714286
qwertyu0985 | 0.714286
qwertyu0986 | 0.714286
qwertyu0987 | 0.714286
qwertyu0989 | 0.714286
qwertyu0088 | 0.6
qwertyu0098 | 0.6
qwertyu0188 | 0.6
qwertyu0288 | 0.6
qwertyu0388 | 0.6
qwertyu0488 | 0.6
qwertyu0588 | 0.6
qwertyu0688 | 0.6
qwertyu0788 | 0.6
qwertyu0888 | 0.6
qwertyu0900 | 0.6
qwertyu0901 | 0.6
qwertyu0902 | 0.6
qwertyu0903 | 0.6
qwertyu0904 | 0.6
qwertyu0905 | 0.6
qwertyu0906 | 0.6
qwertyu0907 | 0.6
qwertyu0908 | 0.6
qwertyu0909 | 0.6
qwertyu0910 | 0.6
qwertyu0911 | 0.6
qwertyu0912 | 0.6
qwertyu0913 | 0.6
qwertyu0914 | 0.6
qwertyu0915 | 0.6
qwertyu0916 | 0.6
qwertyu0917 | 0.6
qwertyu0918 | 0.6
qwertyu0919 | 0.6
qwertyu0920 | 0.6
qwertyu0921 | 0.6
qwertyu0922 | 0.6
qwertyu0923 | 0.6
qwertyu0924 | 0.6
qwertyu0925 | 0.6
qwertyu0926 | 0.6
qwertyu0927 | 0.6
qwertyu0928 | 0.6
qwertyu0929 | 0.6
qwertyu0930 | 0.6
qwertyu0931 | 0.6
qwertyu0932 | 0.6
qwertyu0933 | 0.6
qwertyu0934 | 0.6
qwertyu0935 | 0.6
qwertyu0936 | 0.6
qwertyu0937 | 0.6
qwertyu0938 | 0.6
qwertyu0939 | 0.6
qwertyu0940 | 0.6
qwertyu0941 | 0.6
qwertyu0942 | 0.6
qwertyu0943 | 0.6
qwertyu0944 | 0.6
qwertyu0945 | 0.6
qwertyu0946 | 0.6
qwertyu0947 | 0.6
qwertyu0948 | 0.6
qwertyu0949 | 0.6
qwertyu0950 | 0.6
qwertyu0951 | 0.6
qwertyu0952 | 0.6
qwertyu0953 | 0.6
qwertyu0954 | 0.6
qwertyu0955 | 0.6
qwertyu0956 | 0.6
qwertyu0957 | 0.6
qwertyu0958 | 0.6
qwertyu0959 | 0.6
qwertyu0960 | 0.6
qwertyu0961 | 0.6
qwertyu0962 | 0.6
qwertyu0963 | 0.6
qwertyu0964 | 0.6
qwertyu0965 | 0.6
qwertyu0966 | 0.6
qwertyu0967 | 0.6
qwertyu0968 | 0.6
qwertyu0969 | 0.6
qwertyu0970 | 0.6
qwertyu0971 | 0.6
qwertyu0972 | 0.6
qwertyu0973 | 0.6
qwertyu0974 | 0.6
qwertyu0975 | 0.6
qwertyu0976 | 0.6
qwertyu0977 | 0.6
qwertyu0978 | 0.6
qwertyu0979 | 0.6
qwertyu0990 | 0.6
qwertyu0991 | 0.6
qwertyu0992 | 0.6
qwertyu0993 | 0.6
qwertyu0994 | 0.6
qwertyu0995 | 0.6
qwertyu0996 | 0.6
qwertyu0997 | 0.6
qwertyu0998 | 0.6
qwertyu0999 | 0.6
qwertyu0001 | 0.5
qwertyu0002 | 0.5
qwertyu0003 | 0.5
qwertyu0004 | 0.5
qwertyu0005 | 0.5
qwertyu0006 | 0.5
qwertyu0007 | 0.5
qwertyu0008 | 0.5
qwertyu0009 | 0.5
qwertyu0010 | 0.5
qwertyu0011 | 0.5
qwertyu0012 | 0.5
qwertyu0013 | 0.5
qwertyu0014 | 0.5
qwertyu0015 | 0.5
qwertyu0016 | 0.5
qwertyu0017 | 0.5
qwertyu0018 | 0.5
qwertyu0019 | 0.5
qwertyu0020 | 0.5
qwertyu0021 | 0.5
qwertyu0022 | 0.5
qwertyu0023 | 0.5
qwertyu0024 | 0.5
qwertyu0025 | 0.5
qwertyu0026 | 0.5
qwertyu0027 | 0.5
qwertyu0028 | 0.5
qwertyu0029 | 0.5
qwertyu0030 | 0.5
qwertyu0031 | 0.5
qwertyu0032 | 0.5
qwertyu0033 | 0.5
qwertyu0034 | 0.5
qwertyu0035 | 0.5
qwertyu0036 | 0.5
qwertyu0037 | 0.5
qwertyu0038 | 0.5
qwertyu0039 | 0.5
qwertyu0040 | 0.5
qwertyu0041 | 0.5
qwertyu0042 | 0.5
qwertyu0043 | 0.5
qwertyu0044 | 0.5
qwertyu0045 | 0.5
qwertyu0046 | 0.5
qwertyu0047 | 0.5
qwertyu0048 | 0.5
qwertyu0049 | 0.5
qwertyu0050 | 0.5
qwertyu0051 | 0.5
qwertyu0052 | 0.5
qwertyu0053 | 0.5
qwertyu0054 | 0.5
qwertyu0055 | 0.5
qwertyu0056 | 0.5
qwertyu0057 | 0.5
qwertyu0058 | 0.5
qwertyu0059 | 0.5
qwertyu0060 | 0.5
qwertyu0061 | 0.5
qwertyu0062 | 0.5
qwertyu0063 | 0.5
qwertyu0064 | 0.5
qwertyu0065 | 0.5
qwertyu0066 | 0.5
qwertyu0067 | 0.5
qwertyu0068 | 0.5
qwertyu0069 | 0.5
qwertyu0070 | 0.5
qwertyu0071 | 0.5
qwertyu0072 | 0.5
qwertyu0073 | 0.5
qwertyu0074 | 0.5
qwertyu0075 | 0.5
qwertyu0076 | 0.5
qwertyu0077 | 0.5
qwertyu0078 | 0.5
qwertyu0079 | 0.5
qwertyu0080 | 0.5
qwertyu0081 | 0.5
qwertyu0082 | 0.5
qwertyu0083 | 0.5
qwertyu0084 | 0.5
qwertyu0085 | 0.5
qwertyu0086 | 0.5
qwertyu0087 | 0.5
qwertyu0089 | 0.5
qwertyu0090 | 0.5
qwertyu0091 | 0.5
qwertyu0092 | 0.5
qwertyu0093 | 0.5
qwertyu0094 | 0.5
qwertyu0095 | 0.5
qwertyu0096 | 0.5
qwertyu0097 | 0.5
qwertyu0099 | 0.5
qwertyu0100 | 0.5
qwertyu0101 | 0.5
qwertyu0102 | 0.5
qwertyu0103 | 0.5
qwertyu0104 | 0.5
qwertyu0105 | 0.5
qwertyu0106 | 0.5
qwertyu0107 | 0.5
qwertyu0108 | 0.5
qwertyu0109 | 0.5
qwertyu0110 | 0.5
qwertyu0111 | 0.5
qwertyu0112 | 0.5
qwertyu0113 | 0.5
qwertyu0114 | 0.5
qwertyu0115 | 0.5
qwertyu0116 | 0.5
qwertyu0117 | 0.5
qwertyu0118 | 0.5
qwertyu0119 | 0.5
qwertyu0120 | 0.5
qwertyu0121 | 0.5
qwertyu0122 | 0.5
qwertyu0123 | 0.5
qwertyu0124 | 0.5
qwertyu0125 | 0.5
qwertyu0126 | 0.5
qwertyu0127 | 0.5
qwertyu0128 | 0.5
qwertyu0129 | 0.5
qwertyu0130 | 0.5
qwertyu0131 | 0.5
qwertyu0132 | 0.5
qwertyu0133 | 0.5
qwertyu0134 | 0.5
qwertyu0135 | 0.5
qwertyu0136 | 0.5
qwertyu0137 | 0.5
qwertyu0138 | 0.5
qwertyu0139 | 0.5
qwertyu0140 | 0.5
qwertyu0141 | 0.5
qwertyu0142 | 0.5
qwertyu0143 | 0.5
qwertyu0144 | 0.5
qwertyu0145 | 0.5
qwertyu0146 | 0.5
qwertyu0147 | 0.5
qwertyu0148 | 0.5
qwertyu0149 | 0.5
qwertyu0150 | 0.5
qwertyu0151 | 0.5
qwertyu0152 | 0.5
qwertyu0153 | 0.5
qwertyu0154 | 0.5
qwertyu0155 | 0.5
qwertyu0156 | 0.5
qwertyu0157 | 0.5
qwertyu0158 | 0.5
qwertyu0159 | 0.5
qwertyu0160 | 0.5
qwertyu0161 | 0.5
qwertyu0162 | 0.5
qwertyu0163 | 0.5
qwertyu0164 | 0.5
qwertyu0165 | 0.5
qwertyu0166 | 0.5
qwertyu0167 | 0.5
qwertyu0168 | 0.5
qwertyu0169 | 0.5
qwertyu0170 | 0.5
qwertyu0171 | 0.5
qwertyu0172 | 0.5
qwertyu0173 | 0.5
qwertyu0174 | 0.5
qwertyu0175 | 0.5
qwertyu0176 | 0.5
qwertyu0177 | 0.5
qwertyu0178 | 0.5
qwertyu0179 | 0.5
qwertyu0180 | 0.5
qwertyu0181 | 0.5
qwertyu0182 | 0.5
qwertyu0183 | 0.5
qwertyu0184 | 0.5
qwertyu0185 | 0.5
qwertyu0186 | 0.5
qwertyu0187 | 0.5
qwertyu0189 | 0.5
qwertyu0190 | 0.5
qwertyu0191 | 0.5
qwertyu0192 | 0.5
qwertyu0193 | 0.5
qwertyu0194 | 0.5
qwertyu0195 | 0.5
qwertyu0196 | 0.5
qwertyu0197 | 0.5
qwertyu0198 | 0.5
qwertyu0199 | 0.5
qwertyu0200 | 0.5
qwertyu0201 | 0.5
qwertyu0202 | 0.5
qwertyu0203 | 0.5
qwertyu0204 | 0.5
qwertyu0205 | 0.5
qwertyu0206 | 0.5
qwertyu0207 | 0.5
qwertyu0208 | 0.5
qwertyu0209 | 0.5
qwertyu0210 | 0.5
qwertyu0211 | 0.5
qwertyu0212 | 0.5
qwertyu0213 | 0.5
qwertyu0214 | 0.5
qwertyu0215 | 0.5
qwertyu0216 | 0.5
qwertyu0217 | 0.5
qwertyu0218 | 0.5
qwertyu0219 | 0.5
qwertyu0220 | 0.5
qwertyu0221 | 0.5
qwertyu0222 | 0.5
qwertyu0223 | 0.5
qwertyu0224 | 0.5
qwertyu0225 | 0.5
qwertyu0226 | 0.5
qwertyu0227 | 0.5
qwertyu0228 | 0.5
qwertyu0229 | 0.5
qwertyu0230 | 0.5
qwertyu0231 | 0.5
qwertyu0232 | 0.5
qwertyu0233 | 0.5
qwertyu0234 | 0.5
qwertyu0235 | 0.5
qwertyu0236 | 0.5
qwertyu0237 | 0.5
qwertyu0238 | 0.5
qwertyu0239 | 0.5
qwertyu0240 | 0.5
qwertyu0241 | 0.5
qwertyu0242 | 0.5
qwertyu0243 | 0.5
qwertyu0244 | 0.5
qwertyu0245 | 0.5
qwertyu0246 | 0.5
qwertyu0247 | 0.5
qwertyu0248 | 0.5
qwertyu0249 | 0.5
qwertyu0250 | 0.5
qwertyu0251 | 0.5
qwertyu0252 | 0.5
qwertyu0253 | 0.5
qwertyu0254 | 0.5
qwertyu0255 | 0.5
qwertyu0256 | 0.5
qwertyu0257 | 0.5
qwertyu0258 | 0.5
qwertyu0259 | 0.5
qwertyu0260 | 0.5
qwertyu0261 | 0.5
qwertyu0262 | 0.5
qwertyu0263 | 0.5
qwertyu0264 | 0.5
qwertyu0265 | 0.5
qwertyu0266 | 0.5
qwertyu0267 | 0.5
qwertyu0268 | 0.5
qwertyu0269 | 0.5
qwertyu0270 | 0.5
qwertyu0271 | 0.5
qwertyu0272 | 0.5
qwertyu0273 | 0.5
qwertyu0274 | 0.5
qwertyu0275 | 0.5
qwertyu0276 | 0.5
qwertyu0277 | 0.5
qwertyu0278 | 0.5
qwertyu0279 | 0.5
qwertyu0280 | 0.5
qwertyu0281 | 0.5
qwertyu0282 | 0.5
qwertyu0283 | 0.5
qwertyu0284 | 0.5
qwertyu0285 | 0.5
qwertyu0286 | 0.5
qwertyu0287 | 0.5
qwertyu0289 | 0.5
qwertyu0290 | 0.5
qwertyu0291 | 0.5
qwertyu0292 | 0.5
qwertyu0293 | 0.5
qwertyu0294 | 0.5
qwertyu0295 | 0.5
qwertyu0296 | 0.5
qwertyu0297 | 0.5
qwertyu0298 | 0.5
qwertyu0299 | 0.5
qwertyu0300 | 0.5
qwertyu0301 | 0.5
qwertyu0302 | 0.5
qwertyu0303 | 0.5
qwertyu0304 | 0.5
qwertyu0305 | 0.5
qwertyu0306 | 0.5
qwertyu0307 | 0.5
qwertyu0308 | 0.5
qwertyu0309 | 0.5
qwertyu0310 | 0.5
qwertyu0311 | 0.5
qwertyu0312 | 0.5
qwertyu0313 | 0.5
qwertyu0314 | 0.5
qwertyu0315 | 0.5
qwertyu0316 | 0.5
qwertyu0317 | 0.5
qwertyu0318 | 0.5
qwertyu0319 | 0.5
qwertyu0320 | 0.5
qwertyu0321 | 0.5
qwertyu0322 | 0.5
qwertyu0323 | 0.5
qwertyu0324 | 0.5
qwertyu0325 | 0.5
qwertyu0326 | 0.5
qwertyu0327 | 0.5
qwertyu0328 | 0.5
qwertyu0329 | 0.5
qwertyu0330 | 0.5
qwertyu0331 | 0.5
qwertyu0332 | 0.5
qwertyu0333 | 0.5
qwertyu0334 | 0.5
qwertyu0335 | 0.5
qwertyu0336 | 0.5
qwertyu0337 | 0.5
qwertyu0338 | 0.5
qwertyu0339 | 0.5
qwertyu0340 | 0.5
qwertyu0341 | 0.5
qwertyu0342 | 0.5
qwertyu0343 | 0.5
qwertyu0344 | 0.5
qwertyu0345 | 0.5
qwertyu0346 | 0.5
qwertyu0347 | 0.5
qwertyu0348 | 0.5
qwertyu0349 | 0.5
qwertyu0350 | 0.5
qwertyu0351 | 0.5
qwertyu0352 | 0.5
qwertyu0353 | 0.5
qwertyu0354 | 0.5
qwertyu0355 | 0.5
qwertyu0356 | 0.5
qwertyu0357 | 0.5
qwertyu0358 | 0.5
qwertyu0359 | 0.5
qwertyu0360 | 0.5
qwertyu0361 | 0.5
qwertyu0362 | 0.5
qwertyu0363 | 0.5
qwertyu0364 | 0.5
qwertyu0365 | 0.5
qwertyu0366 | 0.5
qwertyu0367 | 0.5
qwertyu0368 | 0.5
qwertyu0369 | 0.5
qwertyu0370 | 0.5
qwertyu0371 | 0.5
qwertyu0372 | 0.5
qwertyu0373 | 0.5
qwertyu0374 | 0.5
qwertyu0375 | 0.5
qwertyu0376 | 0.5
qwertyu0377 | 0.5
qwertyu0378 | 0.5
qwertyu0379 | 0.5
qwertyu0380 | 0.5
qwertyu0381 | 0.5
qwertyu0382 | 0.5
qwertyu0383 | 0.5
qwertyu0384 | 0.5
qwertyu0385 | 0.5
qwertyu0386 | 0.5
qwertyu0387 | 0.5
qwertyu0389 | 0.5
qwertyu0390 | 0.5
qwertyu0391 | 0.5
qwertyu0392 | 0.5
qwertyu0393 | 0.5
qwertyu0394 | 0.5
qwertyu0395 | 0.5
qwertyu0396 | 0.5
qwertyu0397 | 0.5
qwertyu0398 | 0.5
qwertyu0399 | 0.5
qwertyu0400 | 0.5
qwertyu0401 | 0.5
qwertyu0402 | 0.5
qwertyu0403 | 0.5
qwertyu0404 | 0.5
qwertyu0405 | 0.5
qwertyu0406 | 0.5
qwertyu0407 | 0.5
qwertyu0408 | 0.5
qwertyu0409 | 0.5
qwertyu0410 | 0.5
qwertyu0411 | 0.5
qwertyu0412 | 0.5
qwertyu0413 | 0.5
qwertyu0414 | 0.5
qwertyu0415 | 0.5
qwertyu0416 | 0.5
qwertyu0417 | 0.5
qwertyu0418 | 0.5
qwertyu0419 | 0.5
qwertyu0420 | 0.5
qwertyu0421 | 0.5
qwertyu0422 | 0.5
qwertyu0423 | 0.5
qwertyu0424 | 0.5
qwertyu0425 | 0.5
qwertyu0426 | 0.5
qwertyu0427 | 0.5
qwertyu0428 | 0.5
qwertyu0429 | 0.5
qwertyu0430 | 0.5
qwertyu0431 | 0.5
qwertyu0432 | 0.5
qwertyu0433 | 0.5
qwertyu0434 | 0.5
qwertyu0435 | 0.5
qwertyu0436 | 0.5
qwertyu0437 | 0.5
qwertyu0438 | 0.5
qwertyu0439 | 0.5
qwertyu0440 | 0.5
qwertyu0441 | 0.5
qwertyu0442 | 0.5
qwertyu0443 | 0.5
qwertyu0444 | 0.5
qwertyu0445 | 0.5
qwertyu0446 | 0.5
qwertyu0447 | 0.5
qwertyu0448 | 0.5
qwertyu0449 | 0.5
qwertyu0450 | 0.5
qwertyu0451 | 0.5
qwertyu0452 | 0.5
qwertyu0453 | 0.5
qwertyu0454 | 0.5
qwertyu0455 | 0.5
qwertyu0456 | 0.5
qwertyu0457 | 0.5
qwertyu0458 | 0.5
qwertyu0459 | 0.5
qwertyu0460 | 0.5
qwertyu0461 | 0.5
qwertyu0462 | 0.5
qwertyu0463 | 0.5
qwertyu0464 | 0.5
qwertyu0465 | 0.5
qwertyu0466 | 0.5
qwertyu0467 | 0.5
qwertyu0468 | 0.5
qwertyu0469 | 0.5
qwertyu0470 | 0.5
qwertyu0471 | 0.5
qwertyu0472 | 0.5
qwertyu0473 | 0.5
qwertyu0474 | 0.5
qwertyu0475 | 0.5
qwertyu0476 | 0.5
qwertyu0477 | 0.5
qwertyu0478 | 0.5
qwertyu0479 | 0.5
qwertyu0480 | 0.5
qwertyu0481 | 0.5
qwertyu0482 | 0.5
qwertyu0483 | 0.5
qwertyu0484 | 0.5
qwertyu0485 | 0.5
qwertyu0486 | 0.5
qwertyu0487 | 0.5
qwertyu0489 | 0.5
qwertyu0490 | 0.5
qwertyu0491 | 0.5
qwertyu0492 | 0.5
qwertyu0493 | 0.5
qwertyu0494 | 0.5
qwertyu0495 | 0.5
qwertyu0496 | 0.5
qwertyu0497 | 0.5
qwertyu0498 | 0.5
qwertyu0499 | 0.5
qwertyu0500 | 0.5
qwertyu0501 | 0.5
qwertyu0502 | 0.5
qwertyu0503 | 0.5
qwertyu0504 | 0.5
qwertyu0505 | 0.5
qwertyu0506 | 0.5
qwertyu0507 | 0.5
qwertyu0508 | 0.5
qwertyu0509 | 0.5
qwertyu0510 | 0.5
qwertyu0511 | 0.5
qwertyu0512 | 0.5
qwertyu0513 | 0.5
qwertyu0514 | 0.5
qwertyu0515 | 0.5
qwertyu0516 | 0.5
qwertyu0517 | 0.5
qwertyu0518 | 0.5
qwertyu0519 | 0.5
qwertyu0520 | 0.5
qwertyu0521 | 0.5
qwertyu0522 | 0.5
qwertyu0523 | 0.5
qwertyu0524 | 0.5
qwertyu0525 | 0.5
qwertyu0526 | 0.5
qwertyu0527 | 0.5
qwertyu0528 | 0.5
qwertyu0529 | 0.5
qwertyu0530 | 0.5
qwertyu0531 | 0.5
qwertyu0532 | 0.5
qwertyu0533 | 0.5
qwertyu0534 | 0.5
qwertyu0535 | 0.5
qwertyu0536 | 0.5
qwertyu0537 | 0.5
qwertyu0538 | 0.5
qwertyu0539 | 0.5
qwertyu0540 | 0.5
qwertyu0541 | 0.5
qwertyu0542 | 0.5
qwertyu0543 | 0.5
qwertyu0544 | 0.5
qwertyu0545 | 0.5
qwertyu0546 | 0.5
qwertyu0547 | 0.5
qwertyu0548 | 0.5
qwertyu0549 | 0.5
qwertyu0550 | 0.5
qwertyu0551 | 0.5
qwertyu0552 | 0.5
qwertyu0553 | 0.5
qwertyu0554 | 0.5
qwertyu0555 | 0.5
qwertyu0556 | 0.5
qwertyu0557 | 0.5
qwertyu0558 | 0.5
qwertyu0559 | 0.5
qwertyu0560 | 0.5
qwertyu0561 | 0.5
qwertyu0562 | 0.5
qwertyu0563 | 0.5
qwertyu0564 | 0.5
qwertyu0565 | 0.5
qwertyu0566 | 0.5
qwertyu0567 | 0.5
qwertyu0568 | 0.5
qwertyu0569 | 0.5
qwertyu0570 | 0.5
qwertyu0571 | 0.5
qwertyu0572 | 0.5
qwertyu0573 | 0.5
qwertyu0574 | 0.5
qwertyu0575 | 0.5
qwertyu0576 | 0.5
qwertyu0577 | 0.5
qwertyu0578 | 0.5
qwertyu0579 | 0.5
qwertyu0580 | 0.5
qwertyu0581 | 0.5
qwertyu0582 | 0.5
qwertyu0583 | 0.5
qwertyu0584 | 0.5
qwertyu0585 | 0.5
qwertyu0586 | 0.5
qwertyu0587 | 0.5
qwertyu0589 | 0.5
qwertyu0590 | 0.5
qwertyu0591 | 0.5
qwertyu0592 | 0.5
qwertyu0593 | 0.5
qwertyu0594 | 0.5
qwertyu0595 | 0.5
qwertyu0596 | 0.5
qwertyu0597 | 0.5
qwertyu0598 | 0.5
qwertyu0599 | 0.5
qwertyu0600 | 0.5
qwertyu0601 | 0.5
qwertyu0602 | 0.5
qwertyu0603 | 0.5
qwertyu0604 | 0.5
qwertyu0605 | 0.5
qwertyu0606 | 0.5
qwertyu0607 | 0.5
qwertyu0608 | 0.5
qwertyu0609 | 0.5
qwertyu0610 | 0.5
qwertyu0611 | 0.5
qwertyu0612 | 0.5
qwertyu0613 | 0.5
qwertyu0614 | 0.5
qwertyu0615 | 0.5
qwertyu0616 | 0.5
qwertyu0617 | 0.5
qwertyu0618 | 0.5
qwertyu0619 | 0.5
qwertyu0620 | 0.5
qwertyu0621 | 0.5
qwertyu0622 | 0.5
qwertyu0623 | 0.5
qwertyu0624 | 0.5
qwertyu0625 | 0.5
qwertyu0626 | 0.5
qwertyu0627 | 0.5
qwertyu0628 | 0.5
qwertyu0629 | 0.5
qwertyu0630 | 0.5
qwertyu0631 | 0.5
qwertyu0632 | 0.5
qwertyu0633 | 0.5
qwertyu0634 | 0.5
qwertyu0635 | 0.5
qwertyu0636 | 0.5
qwertyu0637 | 0.5
qwertyu0638 | 0.5
qwertyu0639 | 0.5
qwertyu0640 | 0.5
qwertyu0641 | 0.5
qwertyu0642 | 0.5
qwertyu0643 | 0.5
qwertyu0644 | 0.5
qwertyu0645 | 0.5
qwertyu0646 | 0.5
qwertyu0647 | 0.5
qwertyu0648 | 0.5
qwertyu0649 | 0.5
qwertyu0650 | 0.5
qwertyu0651 | 0.5
qwertyu0652 | 0.5
qwertyu0653 | 0.5
qwertyu0654 | 0.5
qwertyu0655 | 0.5
qwertyu0656 | 0.5
qwertyu0657 | 0.5
qwertyu0658 | 0.5
qwertyu0659 | 0.5
qwertyu0660 | 0.5
qwertyu0661 | 0.5
qwertyu0662 | 0.5
qwertyu0663 | 0.5
qwertyu0664 | 0.5
qwertyu0665 | 0.5
qwertyu0666 | 0.5
qwertyu0667 | 0.5
qwertyu0668 | 0.5
qwertyu0669 | 0.5
qwertyu0670 | 0.5
qwertyu0671 | 0.5
qwertyu0672 | 0.5
qwertyu0673 | 0.5
qwertyu0674 | 0.5
qwertyu0675 | 0.5
qwertyu0676 | 0.5
qwertyu0677 | 0.5
qwertyu0678 | 0.5
qwertyu0679 | 0.5
qwertyu0680 | 0.5
qwertyu0681 | 0.5
qwertyu0682 | 0.5
qwertyu0683 | 0.5
qwertyu0684 | 0.5
qwertyu0685 | 0.5
qwertyu0686 | 0.5
qwertyu0687 | 0.5
qwertyu0689 | 0.5
qwertyu0690 | 0.5
qwertyu0691 | 0.5
qwertyu0692 | 0.5
qwertyu0693 | 0.5
qwertyu0694 | 0.5
qwertyu0695 | 0.5
qwertyu0696 | 0.5
qwertyu0697 | 0.5
qwertyu0698 | 0.5
qwertyu0699 | 0.5
qwertyu0700 | 0.5
qwertyu0701 | 0.5
qwertyu0702 | 0.5
qwertyu0703 | 0.5
qwertyu0704 | 0.5
qwertyu0705 | 0.5
qwertyu0706 | 0.5
qwertyu0707 | 0.5
qwertyu0708 | 0.5
qwertyu0709 | 0.5
qwertyu0710 | 0.5
qwertyu0711 | 0.5
qwertyu0712 | 0.5
qwertyu0713 | 0.5
qwertyu0714 | 0.5
qwertyu0715 | 0.5
qwertyu0716 | 0.5
qwertyu0717 | 0.5
qwertyu0718 | 0.5
qwertyu0719 | 0.5
qwertyu0720 | 0.5
qwertyu0721 | 0.5
qwertyu0722 | 0.5
qwertyu0723 | 0.5
qwertyu0724 | 0.5
qwertyu0725 | 0.5
qwertyu0726 | 0.5
qwertyu0727 | 0.5
qwertyu0728 | 0.5
qwertyu0729 | 0.5
qwertyu0730 | 0.5
qwertyu0731 | 0.5
qwertyu0732 | 0.5
qwertyu0733 | 0.5
qwertyu0734 | 0.5
qwertyu0735 | 0.5
qwertyu0736 | 0.5
qwertyu0737 | 0.5
qwertyu0738 | 0.5
qwertyu0739 | 0.5
qwertyu0740 | 0.5
qwertyu0741 | 0.5
qwertyu0742 | 0.5
qwertyu0743 | 0.5
qwertyu0744 | 0.5
qwertyu0745 | 0.5
qwertyu0746 | 0.5
qwertyu0747 | 0.5
qwertyu0748 | 0.5
qwertyu0749 | 0.5
qwertyu0750 | 0.5
qwertyu0751 | 0.5
qwertyu0752 | 0.5
qwertyu0753 | 0.5
qwertyu0754 | 0.5
qwertyu0755 | 0.5
qwertyu0756 | 0.5
qwertyu0757 | 0.5
qwertyu0758 | 0.5
qwertyu0759 | 0.5
qwertyu0760 | 0.5
qwertyu0761 | 0.5
qwertyu0762 | 0.5
qwertyu0763 | 0.5
qwertyu0764 | 0.5
qwertyu0765 | 0.5
qwertyu0766 | 0.5
qwertyu0767 | 0.5
qwertyu0768 | 0.5
qwertyu0769 | 0.5
qwertyu0770 | 0.5
qwertyu0771 | 0.5
qwertyu0772 | 0.5
qwertyu0773 | 0.5
qwertyu0774 | 0.5
qwertyu0775 | 0.5
qwertyu0776 | 0.5
qwertyu0777 | 0.5
qwertyu0778 | 0.5
qwertyu0779 | 0.5
qwertyu0780 | 0.5
qwertyu0781 | 0.5
qwertyu0782 | 0.5
qwertyu0783 | 0.5
qwertyu0784 | 0.5
qwertyu0785 | 0.5
qwertyu0786 | 0.5
qwertyu0787 | 0.5
qwertyu0789 | 0.5
qwertyu0790 | 0.5
qwertyu0791 | 0.5
qwertyu0792 | 0.5
qwertyu0793 | 0.5
qwertyu0794 | 0.5
qwertyu0795 | 0.5
qwertyu0796 | 0.5
qwertyu0797 | 0.5
qwertyu0798 | 0.5
qwertyu0799 | 0.5
qwertyu0800 | 0.5
qwertyu0801 | 0.5
qwertyu0802 | 0.5
qwertyu0803 | 0.5
qwertyu0804 | 0.5
qwertyu0805 | 0.5
qwertyu0806 | 0.5
qwertyu0807 | 0.5
qwertyu0808 | 0.5
qwertyu0809 | 0.5
qwertyu0810 | 0.5
qwertyu0811 | 0.5
qwertyu0812 | 0.5
qwertyu0813 | 0.5
qwertyu0814 | 0.5
qwertyu0815 | 0.5
qwertyu0816 | 0.5
qwertyu0817 | 0.5
qwertyu0818 | 0.5
qwertyu0819 | 0.5
qwertyu0820 | 0.5
qwertyu0821 | 0.5
qwertyu0822 | 0.5
qwertyu0823 | 0.5
qwertyu0824 | 0.5
qwertyu0825 | 0.5
qwertyu0826 | 0.5
qwertyu0827 | 0.5
qwertyu0828 | 0.5
qwertyu0829 | 0.5
qwertyu0830 | 0.5
qwertyu0831 | 0.5
qwertyu0832 | 0.5
qwertyu0833 | 0.5
qwertyu0834 | 0.5
qwertyu0835 | 0.5
qwertyu0836 | 0.5
qwertyu0837 | 0.5
qwertyu0838 | 0.5
qwertyu0839 | 0.5
qwertyu0840 | 0.5
qwertyu0841 | 0.5
qwertyu0842 | 0.5
qwertyu0843 | 0.5
qwertyu0844 | 0.5
qwertyu0845 | 0.5
qwertyu0846 | 0.5
qwertyu0847 | 0.5
qwertyu0848 | 0.5
qwertyu0849 | 0.5
qwertyu0850 | 0.5
qwertyu0851 | 0.5
qwertyu0852 | 0.5
qwertyu0853 | 0.5
qwertyu0854 | 0.5
qwertyu0855 | 0.5
qwertyu0856 | 0.5
qwertyu0857 | 0.5
qwertyu0858 | 0.5
qwertyu0859 | 0.5
qwertyu0860 | 0.5
qwertyu0861 | 0.5
qwertyu0862 | 0.5
qwertyu0863 | 0.5
qwertyu0864 | 0.5
qwertyu0865 | 0.5
qwertyu0866 | 0.5
qwertyu0867 | 0.5
qwertyu0868 | 0.5
qwertyu0869 | 0.5
qwertyu0870 | 0.5
qwertyu0871 | 0.5
qwertyu0872 | 0.5
qwertyu0873 | 0.5
qwertyu0874 | 0.5
qwertyu0875 | 0.5
qwertyu0876 | 0.5
qwertyu0877 | 0.5
qwertyu0878 | 0.5
qwertyu0879 | 0.5
qwertyu0880 | 0.5
qwertyu0881 | 0.5
qwertyu0882 | 0.5
qwertyu0883 | 0.5
qwertyu0884 | 0.5
qwertyu0885 | 0.5
qwertyu0886 | 0.5
qwertyu0887 | 0.5
qwertyu0889 | 0.5
qwertyu0890 | 0.5
qwertyu0891 | 0.5
qwertyu0892 | 0.5
qwertyu0893 | 0.5
qwertyu0894 | 0.5
qwertyu0895 | 0.5
qwertyu0896 | 0.5
qwertyu0897 | 0.5
qwertyu0898 | 0.5
qwertyu0899 | 0.5
qwertyu1000 | 0.411765
(1000 rows)
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.6
qwertyu0980 | 0.411765
qwertyu0981 | 0.411765
qwertyu0982 | 0.411765
qwertyu0983 | 0.411765
qwertyu0984 | 0.411765
qwertyu0985 | 0.411765
qwertyu0986 | 0.411765
qwertyu0987 | 0.411765
qwertyu0989 | 0.411765
qwertyu0088 | 0.333333
qwertyu0098 | 0.333333
qwertyu0188 | 0.333333
qwertyu0288 | 0.333333
qwertyu0388 | 0.333333
qwertyu0488 | 0.333333
qwertyu0588 | 0.333333
qwertyu0688 | 0.333333
qwertyu0788 | 0.333333
qwertyu0888 | 0.333333
qwertyu0900 | 0.333333
qwertyu0901 | 0.333333
qwertyu0902 | 0.333333
qwertyu0903 | 0.333333
qwertyu0904 | 0.333333
qwertyu0905 | 0.333333
qwertyu0906 | 0.333333
qwertyu0907 | 0.333333
qwertyu0908 | 0.333333
qwertyu0909 | 0.333333
qwertyu0910 | 0.333333
qwertyu0911 | 0.333333
qwertyu0912 | 0.333333
qwertyu0913 | 0.333333
qwertyu0914 | 0.333333
qwertyu0915 | 0.333333
qwertyu0916 | 0.333333
qwertyu0917 | 0.333333
qwertyu0918 | 0.333333
qwertyu0919 | 0.333333
qwertyu0920 | 0.333333
qwertyu0921 | 0.333333
qwertyu0922 | 0.333333
qwertyu0923 | 0.333333
qwertyu0924 | 0.333333
qwertyu0925 | 0.333333
qwertyu0926 | 0.333333
qwertyu0927 | 0.333333
qwertyu0928 | 0.333333
qwertyu0929 | 0.333333
qwertyu0930 | 0.333333
qwertyu0931 | 0.333333
qwertyu0932 | 0.333333
qwertyu0933 | 0.333333
qwertyu0934 | 0.333333
qwertyu0935 | 0.333333
qwertyu0936 | 0.333333
qwertyu0937 | 0.333333
qwertyu0938 | 0.333333
qwertyu0939 | 0.333333
qwertyu0940 | 0.333333
qwertyu0941 | 0.333333
qwertyu0942 | 0.333333
qwertyu0943 | 0.333333
qwertyu0944 | 0.333333
qwertyu0945 | 0.333333
qwertyu0946 | 0.333333
qwertyu0947 | 0.333333
qwertyu0948 | 0.333333
qwertyu0949 | 0.333333
qwertyu0950 | 0.333333
qwertyu0951 | 0.333333
qwertyu0952 | 0.333333
qwertyu0953 | 0.333333
qwertyu0954 | 0.333333
qwertyu0955 | 0.333333
qwertyu0956 | 0.333333
qwertyu0957 | 0.333333
qwertyu0958 | 0.333333
qwertyu0959 | 0.333333
qwertyu0960 | 0.333333
qwertyu0961 | 0.333333
qwertyu0962 | 0.333333
qwertyu0963 | 0.333333
qwertyu0964 | 0.333333
qwertyu0965 | 0.333333
qwertyu0966 | 0.333333
qwertyu0967 | 0.333333
qwertyu0968 | 0.333333
qwertyu0969 | 0.333333
qwertyu0970 | 0.333333
qwertyu0971 | 0.333333
qwertyu0972 | 0.333333
qwertyu0973 | 0.333333
qwertyu0974 | 0.333333
qwertyu0975 | 0.333333
qwertyu0976 | 0.333333
qwertyu0977 | 0.333333
qwertyu0978 | 0.333333
qwertyu0979 | 0.333333
qwertyu0990 | 0.333333
qwertyu0991 | 0.333333
qwertyu0992 | 0.333333
qwertyu0993 | 0.333333
qwertyu0994 | 0.333333
qwertyu0995 | 0.333333
qwertyu0996 | 0.333333
qwertyu0997 | 0.333333
qwertyu0998 | 0.333333
qwertyu0999 | 0.333333
(110 rows)
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.333333
(1 row)
explain (costs off)
select t <-> 'q0987wertyu0988', t from test_trgm order by t <-> 'q0987wertyu0988' limit 2;
QUERY PLAN
---------------------------------------------------
Limit
-> Index Scan using trgm_idx on test_trgm
Order By: (t <-> 'q0987wertyu0988'::text)
(3 rows)
select t <-> 'q0987wertyu0988', t from test_trgm order by t <-> 'q0987wertyu0988' limit 2;
?column? | t
----------+-------------
0.411765 | qwertyu0988
0.5 | qwertyu0987
(2 rows)
select count(*) from test_trgm where t ~ '[qwerty]{2}-?[qwerty]{2}';
count
-------
1000
(1 row)
drop index trgm_idx;
create index trgm_idx on test_trgm using gin (t gin_trgm_ops);
set enable_seqscan=off;
select t,similarity(t,'qwertyu0988') as sml from test_trgm where t % 'qwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 1
qwertyu0980 | 0.714286
qwertyu0981 | 0.714286
qwertyu0982 | 0.714286
qwertyu0983 | 0.714286
qwertyu0984 | 0.714286
qwertyu0985 | 0.714286
qwertyu0986 | 0.714286
qwertyu0987 | 0.714286
qwertyu0989 | 0.714286
qwertyu0088 | 0.6
qwertyu0098 | 0.6
qwertyu0188 | 0.6
qwertyu0288 | 0.6
qwertyu0388 | 0.6
qwertyu0488 | 0.6
qwertyu0588 | 0.6
qwertyu0688 | 0.6
qwertyu0788 | 0.6
qwertyu0888 | 0.6
qwertyu0900 | 0.6
qwertyu0901 | 0.6
qwertyu0902 | 0.6
qwertyu0903 | 0.6
qwertyu0904 | 0.6
qwertyu0905 | 0.6
qwertyu0906 | 0.6
qwertyu0907 | 0.6
qwertyu0908 | 0.6
qwertyu0909 | 0.6
qwertyu0910 | 0.6
qwertyu0911 | 0.6
qwertyu0912 | 0.6
qwertyu0913 | 0.6
qwertyu0914 | 0.6
qwertyu0915 | 0.6
qwertyu0916 | 0.6
qwertyu0917 | 0.6
qwertyu0918 | 0.6
qwertyu0919 | 0.6
qwertyu0920 | 0.6
qwertyu0921 | 0.6
qwertyu0922 | 0.6
qwertyu0923 | 0.6
qwertyu0924 | 0.6
qwertyu0925 | 0.6
qwertyu0926 | 0.6
qwertyu0927 | 0.6
qwertyu0928 | 0.6
qwertyu0929 | 0.6
qwertyu0930 | 0.6
qwertyu0931 | 0.6
qwertyu0932 | 0.6
qwertyu0933 | 0.6
qwertyu0934 | 0.6
qwertyu0935 | 0.6
qwertyu0936 | 0.6
qwertyu0937 | 0.6
qwertyu0938 | 0.6
qwertyu0939 | 0.6
qwertyu0940 | 0.6
qwertyu0941 | 0.6
qwertyu0942 | 0.6
qwertyu0943 | 0.6
qwertyu0944 | 0.6
qwertyu0945 | 0.6
qwertyu0946 | 0.6
qwertyu0947 | 0.6
qwertyu0948 | 0.6
qwertyu0949 | 0.6
qwertyu0950 | 0.6
qwertyu0951 | 0.6
qwertyu0952 | 0.6
qwertyu0953 | 0.6
qwertyu0954 | 0.6
qwertyu0955 | 0.6
qwertyu0956 | 0.6
qwertyu0957 | 0.6
qwertyu0958 | 0.6
qwertyu0959 | 0.6
qwertyu0960 | 0.6
qwertyu0961 | 0.6
qwertyu0962 | 0.6
qwertyu0963 | 0.6
qwertyu0964 | 0.6
qwertyu0965 | 0.6
qwertyu0966 | 0.6
qwertyu0967 | 0.6
qwertyu0968 | 0.6
qwertyu0969 | 0.6
qwertyu0970 | 0.6
qwertyu0971 | 0.6
qwertyu0972 | 0.6
qwertyu0973 | 0.6
qwertyu0974 | 0.6
qwertyu0975 | 0.6
qwertyu0976 | 0.6
qwertyu0977 | 0.6
qwertyu0978 | 0.6
qwertyu0979 | 0.6
qwertyu0990 | 0.6
qwertyu0991 | 0.6
qwertyu0992 | 0.6
qwertyu0993 | 0.6
qwertyu0994 | 0.6
qwertyu0995 | 0.6
qwertyu0996 | 0.6
qwertyu0997 | 0.6
qwertyu0998 | 0.6
qwertyu0999 | 0.6
qwertyu0001 | 0.5
qwertyu0002 | 0.5
qwertyu0003 | 0.5
qwertyu0004 | 0.5
qwertyu0005 | 0.5
qwertyu0006 | 0.5
qwertyu0007 | 0.5
qwertyu0008 | 0.5
qwertyu0009 | 0.5
qwertyu0010 | 0.5
qwertyu0011 | 0.5
qwertyu0012 | 0.5
qwertyu0013 | 0.5
qwertyu0014 | 0.5
qwertyu0015 | 0.5
qwertyu0016 | 0.5
qwertyu0017 | 0.5
qwertyu0018 | 0.5
qwertyu0019 | 0.5
qwertyu0020 | 0.5
qwertyu0021 | 0.5
qwertyu0022 | 0.5
qwertyu0023 | 0.5
qwertyu0024 | 0.5
qwertyu0025 | 0.5
qwertyu0026 | 0.5
qwertyu0027 | 0.5
qwertyu0028 | 0.5
qwertyu0029 | 0.5
qwertyu0030 | 0.5
qwertyu0031 | 0.5
qwertyu0032 | 0.5
qwertyu0033 | 0.5
qwertyu0034 | 0.5
qwertyu0035 | 0.5
qwertyu0036 | 0.5
qwertyu0037 | 0.5
qwertyu0038 | 0.5
qwertyu0039 | 0.5
qwertyu0040 | 0.5
qwertyu0041 | 0.5
qwertyu0042 | 0.5
qwertyu0043 | 0.5
qwertyu0044 | 0.5
qwertyu0045 | 0.5
qwertyu0046 | 0.5
qwertyu0047 | 0.5
qwertyu0048 | 0.5
qwertyu0049 | 0.5
qwertyu0050 | 0.5
qwertyu0051 | 0.5
qwertyu0052 | 0.5
qwertyu0053 | 0.5
qwertyu0054 | 0.5
qwertyu0055 | 0.5
qwertyu0056 | 0.5
qwertyu0057 | 0.5
qwertyu0058 | 0.5
qwertyu0059 | 0.5
qwertyu0060 | 0.5
qwertyu0061 | 0.5
qwertyu0062 | 0.5
qwertyu0063 | 0.5
qwertyu0064 | 0.5
qwertyu0065 | 0.5
qwertyu0066 | 0.5
qwertyu0067 | 0.5
qwertyu0068 | 0.5
qwertyu0069 | 0.5
qwertyu0070 | 0.5
qwertyu0071 | 0.5
qwertyu0072 | 0.5
qwertyu0073 | 0.5
qwertyu0074 | 0.5
qwertyu0075 | 0.5
qwertyu0076 | 0.5
qwertyu0077 | 0.5
qwertyu0078 | 0.5
qwertyu0079 | 0.5
qwertyu0080 | 0.5
qwertyu0081 | 0.5
qwertyu0082 | 0.5
qwertyu0083 | 0.5
qwertyu0084 | 0.5
qwertyu0085 | 0.5
qwertyu0086 | 0.5
qwertyu0087 | 0.5
qwertyu0089 | 0.5
qwertyu0090 | 0.5
qwertyu0091 | 0.5
qwertyu0092 | 0.5
qwertyu0093 | 0.5
qwertyu0094 | 0.5
qwertyu0095 | 0.5
qwertyu0096 | 0.5
qwertyu0097 | 0.5
qwertyu0099 | 0.5
qwertyu0100 | 0.5
qwertyu0101 | 0.5
qwertyu0102 | 0.5
qwertyu0103 | 0.5
qwertyu0104 | 0.5
qwertyu0105 | 0.5
qwertyu0106 | 0.5
qwertyu0107 | 0.5
qwertyu0108 | 0.5
qwertyu0109 | 0.5
qwertyu0110 | 0.5
qwertyu0111 | 0.5
qwertyu0112 | 0.5
qwertyu0113 | 0.5
qwertyu0114 | 0.5
qwertyu0115 | 0.5
qwertyu0116 | 0.5
qwertyu0117 | 0.5
qwertyu0118 | 0.5
qwertyu0119 | 0.5
qwertyu0120 | 0.5
qwertyu0121 | 0.5
qwertyu0122 | 0.5
qwertyu0123 | 0.5
qwertyu0124 | 0.5
qwertyu0125 | 0.5
qwertyu0126 | 0.5
qwertyu0127 | 0.5
qwertyu0128 | 0.5
qwertyu0129 | 0.5
qwertyu0130 | 0.5
qwertyu0131 | 0.5
qwertyu0132 | 0.5
qwertyu0133 | 0.5
qwertyu0134 | 0.5
qwertyu0135 | 0.5
qwertyu0136 | 0.5
qwertyu0137 | 0.5
qwertyu0138 | 0.5
qwertyu0139 | 0.5
qwertyu0140 | 0.5
qwertyu0141 | 0.5
qwertyu0142 | 0.5
qwertyu0143 | 0.5
qwertyu0144 | 0.5
qwertyu0145 | 0.5
qwertyu0146 | 0.5
qwertyu0147 | 0.5
qwertyu0148 | 0.5
qwertyu0149 | 0.5
qwertyu0150 | 0.5
qwertyu0151 | 0.5
qwertyu0152 | 0.5
qwertyu0153 | 0.5
qwertyu0154 | 0.5
qwertyu0155 | 0.5
qwertyu0156 | 0.5
qwertyu0157 | 0.5
qwertyu0158 | 0.5
qwertyu0159 | 0.5
qwertyu0160 | 0.5
qwertyu0161 | 0.5
qwertyu0162 | 0.5
qwertyu0163 | 0.5
qwertyu0164 | 0.5
qwertyu0165 | 0.5
qwertyu0166 | 0.5
qwertyu0167 | 0.5
qwertyu0168 | 0.5
qwertyu0169 | 0.5
qwertyu0170 | 0.5
qwertyu0171 | 0.5
qwertyu0172 | 0.5
qwertyu0173 | 0.5
qwertyu0174 | 0.5
qwertyu0175 | 0.5
qwertyu0176 | 0.5
qwertyu0177 | 0.5
qwertyu0178 | 0.5
qwertyu0179 | 0.5
qwertyu0180 | 0.5
qwertyu0181 | 0.5
qwertyu0182 | 0.5
qwertyu0183 | 0.5
qwertyu0184 | 0.5
qwertyu0185 | 0.5
qwertyu0186 | 0.5
qwertyu0187 | 0.5
qwertyu0189 | 0.5
qwertyu0190 | 0.5
qwertyu0191 | 0.5
qwertyu0192 | 0.5
qwertyu0193 | 0.5
qwertyu0194 | 0.5
qwertyu0195 | 0.5
qwertyu0196 | 0.5
qwertyu0197 | 0.5
qwertyu0198 | 0.5
qwertyu0199 | 0.5
qwertyu0200 | 0.5
qwertyu0201 | 0.5
qwertyu0202 | 0.5
qwertyu0203 | 0.5
qwertyu0204 | 0.5
qwertyu0205 | 0.5
qwertyu0206 | 0.5
qwertyu0207 | 0.5
qwertyu0208 | 0.5
qwertyu0209 | 0.5
qwertyu0210 | 0.5
qwertyu0211 | 0.5
qwertyu0212 | 0.5
qwertyu0213 | 0.5
qwertyu0214 | 0.5
qwertyu0215 | 0.5
qwertyu0216 | 0.5
qwertyu0217 | 0.5
qwertyu0218 | 0.5
qwertyu0219 | 0.5
qwertyu0220 | 0.5
qwertyu0221 | 0.5
qwertyu0222 | 0.5
qwertyu0223 | 0.5
qwertyu0224 | 0.5
qwertyu0225 | 0.5
qwertyu0226 | 0.5
qwertyu0227 | 0.5
qwertyu0228 | 0.5
qwertyu0229 | 0.5
qwertyu0230 | 0.5
qwertyu0231 | 0.5
qwertyu0232 | 0.5
qwertyu0233 | 0.5
qwertyu0234 | 0.5
qwertyu0235 | 0.5
qwertyu0236 | 0.5
qwertyu0237 | 0.5
qwertyu0238 | 0.5
qwertyu0239 | 0.5
qwertyu0240 | 0.5
qwertyu0241 | 0.5
qwertyu0242 | 0.5
qwertyu0243 | 0.5
qwertyu0244 | 0.5
qwertyu0245 | 0.5
qwertyu0246 | 0.5
qwertyu0247 | 0.5
qwertyu0248 | 0.5
qwertyu0249 | 0.5
qwertyu0250 | 0.5
qwertyu0251 | 0.5
qwertyu0252 | 0.5
qwertyu0253 | 0.5
qwertyu0254 | 0.5
qwertyu0255 | 0.5
qwertyu0256 | 0.5
qwertyu0257 | 0.5
qwertyu0258 | 0.5
qwertyu0259 | 0.5
qwertyu0260 | 0.5
qwertyu0261 | 0.5
qwertyu0262 | 0.5
qwertyu0263 | 0.5
qwertyu0264 | 0.5
qwertyu0265 | 0.5
qwertyu0266 | 0.5
qwertyu0267 | 0.5
qwertyu0268 | 0.5
qwertyu0269 | 0.5
qwertyu0270 | 0.5
qwertyu0271 | 0.5
qwertyu0272 | 0.5
qwertyu0273 | 0.5
qwertyu0274 | 0.5
qwertyu0275 | 0.5
qwertyu0276 | 0.5
qwertyu0277 | 0.5
qwertyu0278 | 0.5
qwertyu0279 | 0.5
qwertyu0280 | 0.5
qwertyu0281 | 0.5
qwertyu0282 | 0.5
qwertyu0283 | 0.5
qwertyu0284 | 0.5
qwertyu0285 | 0.5
qwertyu0286 | 0.5
qwertyu0287 | 0.5
qwertyu0289 | 0.5
qwertyu0290 | 0.5
qwertyu0291 | 0.5
qwertyu0292 | 0.5
qwertyu0293 | 0.5
qwertyu0294 | 0.5
qwertyu0295 | 0.5
qwertyu0296 | 0.5
qwertyu0297 | 0.5
qwertyu0298 | 0.5
qwertyu0299 | 0.5
qwertyu0300 | 0.5
qwertyu0301 | 0.5
qwertyu0302 | 0.5
qwertyu0303 | 0.5
qwertyu0304 | 0.5
qwertyu0305 | 0.5
qwertyu0306 | 0.5
qwertyu0307 | 0.5
qwertyu0308 | 0.5
qwertyu0309 | 0.5
qwertyu0310 | 0.5
qwertyu0311 | 0.5
qwertyu0312 | 0.5
qwertyu0313 | 0.5
qwertyu0314 | 0.5
qwertyu0315 | 0.5
qwertyu0316 | 0.5
qwertyu0317 | 0.5
qwertyu0318 | 0.5
qwertyu0319 | 0.5
qwertyu0320 | 0.5
qwertyu0321 | 0.5
qwertyu0322 | 0.5
qwertyu0323 | 0.5
qwertyu0324 | 0.5
qwertyu0325 | 0.5
qwertyu0326 | 0.5
qwertyu0327 | 0.5
qwertyu0328 | 0.5
qwertyu0329 | 0.5
qwertyu0330 | 0.5
qwertyu0331 | 0.5
qwertyu0332 | 0.5
qwertyu0333 | 0.5
qwertyu0334 | 0.5
qwertyu0335 | 0.5
qwertyu0336 | 0.5
qwertyu0337 | 0.5
qwertyu0338 | 0.5
qwertyu0339 | 0.5
qwertyu0340 | 0.5
qwertyu0341 | 0.5
qwertyu0342 | 0.5
qwertyu0343 | 0.5
qwertyu0344 | 0.5
qwertyu0345 | 0.5
qwertyu0346 | 0.5
qwertyu0347 | 0.5
qwertyu0348 | 0.5
qwertyu0349 | 0.5
qwertyu0350 | 0.5
qwertyu0351 | 0.5
qwertyu0352 | 0.5
qwertyu0353 | 0.5
qwertyu0354 | 0.5
qwertyu0355 | 0.5
qwertyu0356 | 0.5
qwertyu0357 | 0.5
qwertyu0358 | 0.5
qwertyu0359 | 0.5
qwertyu0360 | 0.5
qwertyu0361 | 0.5
qwertyu0362 | 0.5
qwertyu0363 | 0.5
qwertyu0364 | 0.5
qwertyu0365 | 0.5
qwertyu0366 | 0.5
qwertyu0367 | 0.5
qwertyu0368 | 0.5
qwertyu0369 | 0.5
qwertyu0370 | 0.5
qwertyu0371 | 0.5
qwertyu0372 | 0.5
qwertyu0373 | 0.5
qwertyu0374 | 0.5
qwertyu0375 | 0.5
qwertyu0376 | 0.5
qwertyu0377 | 0.5
qwertyu0378 | 0.5
qwertyu0379 | 0.5
qwertyu0380 | 0.5
qwertyu0381 | 0.5
qwertyu0382 | 0.5
qwertyu0383 | 0.5
qwertyu0384 | 0.5
qwertyu0385 | 0.5
qwertyu0386 | 0.5
qwertyu0387 | 0.5
qwertyu0389 | 0.5
qwertyu0390 | 0.5
qwertyu0391 | 0.5
qwertyu0392 | 0.5
qwertyu0393 | 0.5
qwertyu0394 | 0.5
qwertyu0395 | 0.5
qwertyu0396 | 0.5
qwertyu0397 | 0.5
qwertyu0398 | 0.5
qwertyu0399 | 0.5
qwertyu0400 | 0.5
qwertyu0401 | 0.5
qwertyu0402 | 0.5
qwertyu0403 | 0.5
qwertyu0404 | 0.5
qwertyu0405 | 0.5
qwertyu0406 | 0.5
qwertyu0407 | 0.5
qwertyu0408 | 0.5
qwertyu0409 | 0.5
qwertyu0410 | 0.5
qwertyu0411 | 0.5
qwertyu0412 | 0.5
qwertyu0413 | 0.5
qwertyu0414 | 0.5
qwertyu0415 | 0.5
qwertyu0416 | 0.5
qwertyu0417 | 0.5
qwertyu0418 | 0.5
qwertyu0419 | 0.5
qwertyu0420 | 0.5
qwertyu0421 | 0.5
qwertyu0422 | 0.5
qwertyu0423 | 0.5
qwertyu0424 | 0.5
qwertyu0425 | 0.5
qwertyu0426 | 0.5
qwertyu0427 | 0.5
qwertyu0428 | 0.5
qwertyu0429 | 0.5
qwertyu0430 | 0.5
qwertyu0431 | 0.5
qwertyu0432 | 0.5
qwertyu0433 | 0.5
qwertyu0434 | 0.5
qwertyu0435 | 0.5
qwertyu0436 | 0.5
qwertyu0437 | 0.5
qwertyu0438 | 0.5
qwertyu0439 | 0.5
qwertyu0440 | 0.5
qwertyu0441 | 0.5
qwertyu0442 | 0.5
qwertyu0443 | 0.5
qwertyu0444 | 0.5
qwertyu0445 | 0.5
qwertyu0446 | 0.5
qwertyu0447 | 0.5
qwertyu0448 | 0.5
qwertyu0449 | 0.5
qwertyu0450 | 0.5
qwertyu0451 | 0.5
qwertyu0452 | 0.5
qwertyu0453 | 0.5
qwertyu0454 | 0.5
qwertyu0455 | 0.5
qwertyu0456 | 0.5
qwertyu0457 | 0.5
qwertyu0458 | 0.5
qwertyu0459 | 0.5
qwertyu0460 | 0.5
qwertyu0461 | 0.5
qwertyu0462 | 0.5
qwertyu0463 | 0.5
qwertyu0464 | 0.5
qwertyu0465 | 0.5
qwertyu0466 | 0.5
qwertyu0467 | 0.5
qwertyu0468 | 0.5
qwertyu0469 | 0.5
qwertyu0470 | 0.5
qwertyu0471 | 0.5
qwertyu0472 | 0.5
qwertyu0473 | 0.5
qwertyu0474 | 0.5
qwertyu0475 | 0.5
qwertyu0476 | 0.5
qwertyu0477 | 0.5
qwertyu0478 | 0.5
qwertyu0479 | 0.5
qwertyu0480 | 0.5
qwertyu0481 | 0.5
qwertyu0482 | 0.5
qwertyu0483 | 0.5
qwertyu0484 | 0.5
qwertyu0485 | 0.5
qwertyu0486 | 0.5
qwertyu0487 | 0.5
qwertyu0489 | 0.5
qwertyu0490 | 0.5
qwertyu0491 | 0.5
qwertyu0492 | 0.5
qwertyu0493 | 0.5
qwertyu0494 | 0.5
qwertyu0495 | 0.5
qwertyu0496 | 0.5
qwertyu0497 | 0.5
qwertyu0498 | 0.5
qwertyu0499 | 0.5
qwertyu0500 | 0.5
qwertyu0501 | 0.5
qwertyu0502 | 0.5
qwertyu0503 | 0.5
qwertyu0504 | 0.5
qwertyu0505 | 0.5
qwertyu0506 | 0.5
qwertyu0507 | 0.5
qwertyu0508 | 0.5
qwertyu0509 | 0.5
qwertyu0510 | 0.5
qwertyu0511 | 0.5
qwertyu0512 | 0.5
qwertyu0513 | 0.5
qwertyu0514 | 0.5
qwertyu0515 | 0.5
qwertyu0516 | 0.5
qwertyu0517 | 0.5
qwertyu0518 | 0.5
qwertyu0519 | 0.5
qwertyu0520 | 0.5
qwertyu0521 | 0.5
qwertyu0522 | 0.5
qwertyu0523 | 0.5
qwertyu0524 | 0.5
qwertyu0525 | 0.5
qwertyu0526 | 0.5
qwertyu0527 | 0.5
qwertyu0528 | 0.5
qwertyu0529 | 0.5
qwertyu0530 | 0.5
qwertyu0531 | 0.5
qwertyu0532 | 0.5
qwertyu0533 | 0.5
qwertyu0534 | 0.5
qwertyu0535 | 0.5
qwertyu0536 | 0.5
qwertyu0537 | 0.5
qwertyu0538 | 0.5
qwertyu0539 | 0.5
qwertyu0540 | 0.5
qwertyu0541 | 0.5
qwertyu0542 | 0.5
qwertyu0543 | 0.5
qwertyu0544 | 0.5
qwertyu0545 | 0.5
qwertyu0546 | 0.5
qwertyu0547 | 0.5
qwertyu0548 | 0.5
qwertyu0549 | 0.5
qwertyu0550 | 0.5
qwertyu0551 | 0.5
qwertyu0552 | 0.5
qwertyu0553 | 0.5
qwertyu0554 | 0.5
qwertyu0555 | 0.5
qwertyu0556 | 0.5
qwertyu0557 | 0.5
qwertyu0558 | 0.5
qwertyu0559 | 0.5
qwertyu0560 | 0.5
qwertyu0561 | 0.5
qwertyu0562 | 0.5
qwertyu0563 | 0.5
qwertyu0564 | 0.5
qwertyu0565 | 0.5
qwertyu0566 | 0.5
qwertyu0567 | 0.5
qwertyu0568 | 0.5
qwertyu0569 | 0.5
qwertyu0570 | 0.5
qwertyu0571 | 0.5
qwertyu0572 | 0.5
qwertyu0573 | 0.5
qwertyu0574 | 0.5
qwertyu0575 | 0.5
qwertyu0576 | 0.5
qwertyu0577 | 0.5
qwertyu0578 | 0.5
qwertyu0579 | 0.5
qwertyu0580 | 0.5
qwertyu0581 | 0.5
qwertyu0582 | 0.5
qwertyu0583 | 0.5
qwertyu0584 | 0.5
qwertyu0585 | 0.5
qwertyu0586 | 0.5
qwertyu0587 | 0.5
qwertyu0589 | 0.5
qwertyu0590 | 0.5
qwertyu0591 | 0.5
qwertyu0592 | 0.5
qwertyu0593 | 0.5
qwertyu0594 | 0.5
qwertyu0595 | 0.5
qwertyu0596 | 0.5
qwertyu0597 | 0.5
qwertyu0598 | 0.5
qwertyu0599 | 0.5
qwertyu0600 | 0.5
qwertyu0601 | 0.5
qwertyu0602 | 0.5
qwertyu0603 | 0.5
qwertyu0604 | 0.5
qwertyu0605 | 0.5
qwertyu0606 | 0.5
qwertyu0607 | 0.5
qwertyu0608 | 0.5
qwertyu0609 | 0.5
qwertyu0610 | 0.5
qwertyu0611 | 0.5
qwertyu0612 | 0.5
qwertyu0613 | 0.5
qwertyu0614 | 0.5
qwertyu0615 | 0.5
qwertyu0616 | 0.5
qwertyu0617 | 0.5
qwertyu0618 | 0.5
qwertyu0619 | 0.5
qwertyu0620 | 0.5
qwertyu0621 | 0.5
qwertyu0622 | 0.5
qwertyu0623 | 0.5
qwertyu0624 | 0.5
qwertyu0625 | 0.5
qwertyu0626 | 0.5
qwertyu0627 | 0.5
qwertyu0628 | 0.5
qwertyu0629 | 0.5
qwertyu0630 | 0.5
qwertyu0631 | 0.5
qwertyu0632 | 0.5
qwertyu0633 | 0.5
qwertyu0634 | 0.5
qwertyu0635 | 0.5
qwertyu0636 | 0.5
qwertyu0637 | 0.5
qwertyu0638 | 0.5
qwertyu0639 | 0.5
qwertyu0640 | 0.5
qwertyu0641 | 0.5
qwertyu0642 | 0.5
qwertyu0643 | 0.5
qwertyu0644 | 0.5
qwertyu0645 | 0.5
qwertyu0646 | 0.5
qwertyu0647 | 0.5
qwertyu0648 | 0.5
qwertyu0649 | 0.5
qwertyu0650 | 0.5
qwertyu0651 | 0.5
qwertyu0652 | 0.5
qwertyu0653 | 0.5
qwertyu0654 | 0.5
qwertyu0655 | 0.5
qwertyu0656 | 0.5
qwertyu0657 | 0.5
qwertyu0658 | 0.5
qwertyu0659 | 0.5
qwertyu0660 | 0.5
qwertyu0661 | 0.5
qwertyu0662 | 0.5
qwertyu0663 | 0.5
qwertyu0664 | 0.5
qwertyu0665 | 0.5
qwertyu0666 | 0.5
qwertyu0667 | 0.5
qwertyu0668 | 0.5
qwertyu0669 | 0.5
qwertyu0670 | 0.5
qwertyu0671 | 0.5
qwertyu0672 | 0.5
qwertyu0673 | 0.5
qwertyu0674 | 0.5
qwertyu0675 | 0.5
qwertyu0676 | 0.5
qwertyu0677 | 0.5
qwertyu0678 | 0.5
qwertyu0679 | 0.5
qwertyu0680 | 0.5
qwertyu0681 | 0.5
qwertyu0682 | 0.5
qwertyu0683 | 0.5
qwertyu0684 | 0.5
qwertyu0685 | 0.5
qwertyu0686 | 0.5
qwertyu0687 | 0.5
qwertyu0689 | 0.5
qwertyu0690 | 0.5
qwertyu0691 | 0.5
qwertyu0692 | 0.5
qwertyu0693 | 0.5
qwertyu0694 | 0.5
qwertyu0695 | 0.5
qwertyu0696 | 0.5
qwertyu0697 | 0.5
qwertyu0698 | 0.5
qwertyu0699 | 0.5
qwertyu0700 | 0.5
qwertyu0701 | 0.5
qwertyu0702 | 0.5
qwertyu0703 | 0.5
qwertyu0704 | 0.5
qwertyu0705 | 0.5
qwertyu0706 | 0.5
qwertyu0707 | 0.5
qwertyu0708 | 0.5
qwertyu0709 | 0.5
qwertyu0710 | 0.5
qwertyu0711 | 0.5
qwertyu0712 | 0.5
qwertyu0713 | 0.5
qwertyu0714 | 0.5
qwertyu0715 | 0.5
qwertyu0716 | 0.5
qwertyu0717 | 0.5
qwertyu0718 | 0.5
qwertyu0719 | 0.5
qwertyu0720 | 0.5
qwertyu0721 | 0.5
qwertyu0722 | 0.5
qwertyu0723 | 0.5
qwertyu0724 | 0.5
qwertyu0725 | 0.5
qwertyu0726 | 0.5
qwertyu0727 | 0.5
qwertyu0728 | 0.5
qwertyu0729 | 0.5
qwertyu0730 | 0.5
qwertyu0731 | 0.5
qwertyu0732 | 0.5
qwertyu0733 | 0.5
qwertyu0734 | 0.5
qwertyu0735 | 0.5
qwertyu0736 | 0.5
qwertyu0737 | 0.5
qwertyu0738 | 0.5
qwertyu0739 | 0.5
qwertyu0740 | 0.5
qwertyu0741 | 0.5
qwertyu0742 | 0.5
qwertyu0743 | 0.5
qwertyu0744 | 0.5
qwertyu0745 | 0.5
qwertyu0746 | 0.5
qwertyu0747 | 0.5
qwertyu0748 | 0.5
qwertyu0749 | 0.5
qwertyu0750 | 0.5
qwertyu0751 | 0.5
qwertyu0752 | 0.5
qwertyu0753 | 0.5
qwertyu0754 | 0.5
qwertyu0755 | 0.5
qwertyu0756 | 0.5
qwertyu0757 | 0.5
qwertyu0758 | 0.5
qwertyu0759 | 0.5
qwertyu0760 | 0.5
qwertyu0761 | 0.5
qwertyu0762 | 0.5
qwertyu0763 | 0.5
qwertyu0764 | 0.5
qwertyu0765 | 0.5
qwertyu0766 | 0.5
qwertyu0767 | 0.5
qwertyu0768 | 0.5
qwertyu0769 | 0.5
qwertyu0770 | 0.5
qwertyu0771 | 0.5
qwertyu0772 | 0.5
qwertyu0773 | 0.5
qwertyu0774 | 0.5
qwertyu0775 | 0.5
qwertyu0776 | 0.5
qwertyu0777 | 0.5
qwertyu0778 | 0.5
qwertyu0779 | 0.5
qwertyu0780 | 0.5
qwertyu0781 | 0.5
qwertyu0782 | 0.5
qwertyu0783 | 0.5
qwertyu0784 | 0.5
qwertyu0785 | 0.5
qwertyu0786 | 0.5
qwertyu0787 | 0.5
qwertyu0789 | 0.5
qwertyu0790 | 0.5
qwertyu0791 | 0.5
qwertyu0792 | 0.5
qwertyu0793 | 0.5
qwertyu0794 | 0.5
qwertyu0795 | 0.5
qwertyu0796 | 0.5
qwertyu0797 | 0.5
qwertyu0798 | 0.5
qwertyu0799 | 0.5
qwertyu0800 | 0.5
qwertyu0801 | 0.5
qwertyu0802 | 0.5
qwertyu0803 | 0.5
qwertyu0804 | 0.5
qwertyu0805 | 0.5
qwertyu0806 | 0.5
qwertyu0807 | 0.5
qwertyu0808 | 0.5
qwertyu0809 | 0.5
qwertyu0810 | 0.5
qwertyu0811 | 0.5
qwertyu0812 | 0.5
qwertyu0813 | 0.5
qwertyu0814 | 0.5
qwertyu0815 | 0.5
qwertyu0816 | 0.5
qwertyu0817 | 0.5
qwertyu0818 | 0.5
qwertyu0819 | 0.5
qwertyu0820 | 0.5
qwertyu0821 | 0.5
qwertyu0822 | 0.5
qwertyu0823 | 0.5
qwertyu0824 | 0.5
qwertyu0825 | 0.5
qwertyu0826 | 0.5
qwertyu0827 | 0.5
qwertyu0828 | 0.5
qwertyu0829 | 0.5
qwertyu0830 | 0.5
qwertyu0831 | 0.5
qwertyu0832 | 0.5
qwertyu0833 | 0.5
qwertyu0834 | 0.5
qwertyu0835 | 0.5
qwertyu0836 | 0.5
qwertyu0837 | 0.5
qwertyu0838 | 0.5
qwertyu0839 | 0.5
qwertyu0840 | 0.5
qwertyu0841 | 0.5
qwertyu0842 | 0.5
qwertyu0843 | 0.5
qwertyu0844 | 0.5
qwertyu0845 | 0.5
qwertyu0846 | 0.5
qwertyu0847 | 0.5
qwertyu0848 | 0.5
qwertyu0849 | 0.5
qwertyu0850 | 0.5
qwertyu0851 | 0.5
qwertyu0852 | 0.5
qwertyu0853 | 0.5
qwertyu0854 | 0.5
qwertyu0855 | 0.5
qwertyu0856 | 0.5
qwertyu0857 | 0.5
qwertyu0858 | 0.5
qwertyu0859 | 0.5
qwertyu0860 | 0.5
qwertyu0861 | 0.5
qwertyu0862 | 0.5
qwertyu0863 | 0.5
qwertyu0864 | 0.5
qwertyu0865 | 0.5
qwertyu0866 | 0.5
qwertyu0867 | 0.5
qwertyu0868 | 0.5
qwertyu0869 | 0.5
qwertyu0870 | 0.5
qwertyu0871 | 0.5
qwertyu0872 | 0.5
qwertyu0873 | 0.5
qwertyu0874 | 0.5
qwertyu0875 | 0.5
qwertyu0876 | 0.5
qwertyu0877 | 0.5
qwertyu0878 | 0.5
qwertyu0879 | 0.5
qwertyu0880 | 0.5
qwertyu0881 | 0.5
qwertyu0882 | 0.5
qwertyu0883 | 0.5
qwertyu0884 | 0.5
qwertyu0885 | 0.5
qwertyu0886 | 0.5
qwertyu0887 | 0.5
qwertyu0889 | 0.5
qwertyu0890 | 0.5
qwertyu0891 | 0.5
qwertyu0892 | 0.5
qwertyu0893 | 0.5
qwertyu0894 | 0.5
qwertyu0895 | 0.5
qwertyu0896 | 0.5
qwertyu0897 | 0.5
qwertyu0898 | 0.5
qwertyu0899 | 0.5
qwertyu1000 | 0.411765
(1000 rows)
select t,similarity(t,'gwertyu0988') as sml from test_trgm where t % 'gwertyu0988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.6
qwertyu0980 | 0.411765
qwertyu0981 | 0.411765
qwertyu0982 | 0.411765
qwertyu0983 | 0.411765
qwertyu0984 | 0.411765
qwertyu0985 | 0.411765
qwertyu0986 | 0.411765
qwertyu0987 | 0.411765
qwertyu0989 | 0.411765
qwertyu0088 | 0.333333
qwertyu0098 | 0.333333
qwertyu0188 | 0.333333
qwertyu0288 | 0.333333
qwertyu0388 | 0.333333
qwertyu0488 | 0.333333
qwertyu0588 | 0.333333
qwertyu0688 | 0.333333
qwertyu0788 | 0.333333
qwertyu0888 | 0.333333
qwertyu0900 | 0.333333
qwertyu0901 | 0.333333
qwertyu0902 | 0.333333
qwertyu0903 | 0.333333
qwertyu0904 | 0.333333
qwertyu0905 | 0.333333
qwertyu0906 | 0.333333
qwertyu0907 | 0.333333
qwertyu0908 | 0.333333
qwertyu0909 | 0.333333
qwertyu0910 | 0.333333
qwertyu0911 | 0.333333
qwertyu0912 | 0.333333
qwertyu0913 | 0.333333
qwertyu0914 | 0.333333
qwertyu0915 | 0.333333
qwertyu0916 | 0.333333
qwertyu0917 | 0.333333
qwertyu0918 | 0.333333
qwertyu0919 | 0.333333
qwertyu0920 | 0.333333
qwertyu0921 | 0.333333
qwertyu0922 | 0.333333
qwertyu0923 | 0.333333
qwertyu0924 | 0.333333
qwertyu0925 | 0.333333
qwertyu0926 | 0.333333
qwertyu0927 | 0.333333
qwertyu0928 | 0.333333
qwertyu0929 | 0.333333
qwertyu0930 | 0.333333
qwertyu0931 | 0.333333
qwertyu0932 | 0.333333
qwertyu0933 | 0.333333
qwertyu0934 | 0.333333
qwertyu0935 | 0.333333
qwertyu0936 | 0.333333
qwertyu0937 | 0.333333
qwertyu0938 | 0.333333
qwertyu0939 | 0.333333
qwertyu0940 | 0.333333
qwertyu0941 | 0.333333
qwertyu0942 | 0.333333
qwertyu0943 | 0.333333
qwertyu0944 | 0.333333
qwertyu0945 | 0.333333
qwertyu0946 | 0.333333
qwertyu0947 | 0.333333
qwertyu0948 | 0.333333
qwertyu0949 | 0.333333
qwertyu0950 | 0.333333
qwertyu0951 | 0.333333
qwertyu0952 | 0.333333
qwertyu0953 | 0.333333
qwertyu0954 | 0.333333
qwertyu0955 | 0.333333
qwertyu0956 | 0.333333
qwertyu0957 | 0.333333
qwertyu0958 | 0.333333
qwertyu0959 | 0.333333
qwertyu0960 | 0.333333
qwertyu0961 | 0.333333
qwertyu0962 | 0.333333
qwertyu0963 | 0.333333
qwertyu0964 | 0.333333
qwertyu0965 | 0.333333
qwertyu0966 | 0.333333
qwertyu0967 | 0.333333
qwertyu0968 | 0.333333
qwertyu0969 | 0.333333
qwertyu0970 | 0.333333
qwertyu0971 | 0.333333
qwertyu0972 | 0.333333
qwertyu0973 | 0.333333
qwertyu0974 | 0.333333
qwertyu0975 | 0.333333
qwertyu0976 | 0.333333
qwertyu0977 | 0.333333
qwertyu0978 | 0.333333
qwertyu0979 | 0.333333
qwertyu0990 | 0.333333
qwertyu0991 | 0.333333
qwertyu0992 | 0.333333
qwertyu0993 | 0.333333
qwertyu0994 | 0.333333
qwertyu0995 | 0.333333
qwertyu0996 | 0.333333
qwertyu0997 | 0.333333
qwertyu0998 | 0.333333
qwertyu0999 | 0.333333
(110 rows)
select t,similarity(t,'gwertyu1988') as sml from test_trgm where t % 'gwertyu1988' order by sml desc, t;
t | sml
-------------+----------
qwertyu0988 | 0.333333
(1 row)
select count(*) from test_trgm where t ~ '[qwerty]{2}-?[qwerty]{2}';
count
-------
1000
(1 row)
Avoid full scan of GIN indexes when possible The strategy of GIN index scan is driven by opclass-specific extract_query method. This method that needed search mode is GIN_SEARCH_MODE_ALL. This mode means that matching tuple may contain none of extracted entries. Simple example is '!term' tsquery, which doesn't need any term to exist in matching tsvector. In order to handle such scan key GIN calculates virtual entry, which contains all TIDs of all entries of attribute. In fact this is full scan of index attribute. And typically this is very slow, but allows to handle some queries correctly in GIN. However, current algorithm calculate such virtual entry for each GIN_SEARCH_MODE_ALL scan key even if they are multiple for the same attribute. This is clearly not optimal. This commit improves the situation by introduction of "exclude only" scan keys. Such scan keys are not capable to return set of matching TIDs. Instead, they are capable only to filter TIDs produced by normal scan keys. Therefore, each attribute should contain at least one normal scan key, while rest of them may be "exclude only" if search mode is GIN_SEARCH_MODE_ALL. The same optimization might be applied to the whole scan, not per-attribute. But that leads to NULL values elimination problem. There is trade-off between multiple possible ways to do this. We probably want to do this later using some cost-based decision algorithm. Discussion: https://postgr.es/m/CAOBaU_YGP5-BEt5Cc0%3DzMve92vocPzD%2BXiZgiZs1kjY0cj%3DXBg%40mail.gmail.com Author: Nikita Glukhov, Alexander Korotkov, Tom Lane, Julien Rouhaud Reviewed-by: Julien Rouhaud, Tomas Vondra, Tom Lane
2020-01-17 23:11:39 +01:00
-- check handling of indexquals that generate no searchable conditions
explain (costs off)
select count(*) from test_trgm where t like '%99%' and t like '%qwerty%';
QUERY PLAN
-----------------------------------------------------------------------------
Aggregate
-> Bitmap Heap Scan on test_trgm
Recheck Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qwerty%'::text))
-> Bitmap Index Scan on trgm_idx
Index Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qwerty%'::text))
(5 rows)
select count(*) from test_trgm where t like '%99%' and t like '%qwerty%';
count
-------
19
(1 row)
explain (costs off)
select count(*) from test_trgm where t like '%99%' and t like '%qw%';
QUERY PLAN
-------------------------------------------------------------------------
Aggregate
-> Bitmap Heap Scan on test_trgm
Recheck Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qw%'::text))
-> Bitmap Index Scan on trgm_idx
Index Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qw%'::text))
(5 rows)
select count(*) from test_trgm where t like '%99%' and t like '%qw%';
count
-------
19
(1 row)
-- ensure that pending-list items are handled correctly, too
create temp table t_test_trgm(t text COLLATE "C");
create index t_trgm_idx on t_test_trgm using gin (t gin_trgm_ops);
insert into t_test_trgm values ('qwerty99'), ('qwerty01');
explain (costs off)
select count(*) from t_test_trgm where t like '%99%' and t like '%qwerty%';
QUERY PLAN
-----------------------------------------------------------------------------
Aggregate
-> Bitmap Heap Scan on t_test_trgm
Recheck Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qwerty%'::text))
-> Bitmap Index Scan on t_trgm_idx
Index Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qwerty%'::text))
(5 rows)
select count(*) from t_test_trgm where t like '%99%' and t like '%qwerty%';
count
-------
1
(1 row)
explain (costs off)
select count(*) from t_test_trgm where t like '%99%' and t like '%qw%';
QUERY PLAN
-------------------------------------------------------------------------
Aggregate
-> Bitmap Heap Scan on t_test_trgm
Recheck Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qw%'::text))
-> Bitmap Index Scan on t_trgm_idx
Index Cond: ((t ~~ '%99%'::text) AND (t ~~ '%qw%'::text))
(5 rows)
select count(*) from t_test_trgm where t like '%99%' and t like '%qw%';
count
-------
1
(1 row)
-- run the same queries with sequential scan to check the results
set enable_bitmapscan=off;
set enable_seqscan=on;
select count(*) from test_trgm where t like '%99%' and t like '%qwerty%';
count
-------
19
(1 row)
select count(*) from test_trgm where t like '%99%' and t like '%qw%';
count
-------
19
(1 row)
select count(*) from t_test_trgm where t like '%99%' and t like '%qwerty%';
count
-------
1
(1 row)
select count(*) from t_test_trgm where t like '%99%' and t like '%qw%';
count
-------
1
(1 row)
reset enable_bitmapscan;
create table test2(t text COLLATE "C");
insert into test2 values ('abcdef');
insert into test2 values ('quark');
insert into test2 values (' z foo bar');
Further fix pg_trgm's extraction of trigrams from regular expressions. Commit 9e43e8714 turns out to have been insufficient: not only is it necessary to track tentative parent links while considering a set of arc removals, but it's necessary to track tentative flag additions as well. This is because we always merge arc target states into arc source states; therefore, when considering a merge of the final state with some other, it is the other state that will acquire a new TSTATE_FIN bit. If there's another arc for the same color trigram that would cause merging of that state with the initial state, we failed to recognize the problem. The test cases for the prior commit evidently only exercised situations where a tentative merge with the initial state occurs before one with the final state. If it goes the other way around, we'll happily merge the initial and final states, either producing a broken final graph that would never match anything, or triggering the Assert added by the prior commit. It's tempting to consider switching the merge direction when the merge involves the final state, but I lack the time to analyze that idea in detail. Instead just keep track of the flag changes that would result from proposed merges, in the same way that the prior commit tracked proposed parent links. Along the way, add some more debugging support, because I'm not entirely confident that this is the last bug here. And tweak matters so that the transformed.dot file uses small integers rather than pointer values to identify states; that makes it more readable if you're just eyeballing it rather than fooling with Graphviz. And rename a couple of identically named struct fields to reduce confusion. Per report from Corey Csuhta. Add a test case based on his example. (Note: this case does not trigger the bug under 9.3, apparently because its different measurement of costs causes it to stop merging states before it hits the failure. I spent some time trying to find a variant that would fail in 9.3, without success; but I'm sure such cases exist.) Like the previous patch, back-patch to 9.3 where this code was added. Report: https://postgr.es/m/E2B01A4B-4530-406B-8D17-2F67CF9A16BA@csuhta.com
2017-04-14 20:52:03 +02:00
insert into test2 values ('/123/-45/');
insert into test2 values ('line 1');
insert into test2 values ('%line 2');
insert into test2 values ('line 3%');
insert into test2 values ('%line 4%');
insert into test2 values ('%li%ne 5%');
insert into test2 values ('li_e 6');
create index test2_idx_gin on test2 using gin (t gin_trgm_ops);
set enable_seqscan=off;
explain (costs off)
select * from test2 where t like '%BCD%';
QUERY PLAN
------------------------------------------
Bitmap Heap Scan on test2
Recheck Cond: (t ~~ '%BCD%'::text)
-> Bitmap Index Scan on test2_idx_gin
Index Cond: (t ~~ '%BCD%'::text)
(4 rows)
explain (costs off)
select * from test2 where t ilike '%BCD%';
QUERY PLAN
-------------------------------------------
Bitmap Heap Scan on test2
Recheck Cond: (t ~~* '%BCD%'::text)
-> Bitmap Index Scan on test2_idx_gin
Index Cond: (t ~~* '%BCD%'::text)
(4 rows)
select * from test2 where t like '%BCD%';
t
---
(0 rows)
select * from test2 where t like '%bcd%';
t
--------
abcdef
(1 row)
select * from test2 where t like E'%\\bcd%';
t
--------
abcdef
(1 row)
select * from test2 where t ilike '%BCD%';
t
--------
abcdef
(1 row)
select * from test2 where t ilike 'qua%';
t
-------
quark
(1 row)
select * from test2 where t like '%z foo bar%';
t
-------------
z foo bar
(1 row)
select * from test2 where t like ' z foo%';
t
-------------
z foo bar
(1 row)
explain (costs off)
select * from test2 where t ~ '[abc]{3}';
QUERY PLAN
--------------------------------------------
Bitmap Heap Scan on test2
Recheck Cond: (t ~ '[abc]{3}'::text)
-> Bitmap Index Scan on test2_idx_gin
Index Cond: (t ~ '[abc]{3}'::text)
(4 rows)
explain (costs off)
select * from test2 where t ~* 'DEF';
QUERY PLAN
------------------------------------------
Bitmap Heap Scan on test2
Recheck Cond: (t ~* 'DEF'::text)
-> Bitmap Index Scan on test2_idx_gin
Index Cond: (t ~* 'DEF'::text)
(4 rows)
select * from test2 where t ~ '[abc]{3}';
t
--------
abcdef
(1 row)
select * from test2 where t ~ 'a[bc]+d';
t
--------
abcdef
(1 row)
select * from test2 where t ~ '(abc)*$';
t
-------------
abcdef
quark
z foo bar
Further fix pg_trgm's extraction of trigrams from regular expressions. Commit 9e43e8714 turns out to have been insufficient: not only is it necessary to track tentative parent links while considering a set of arc removals, but it's necessary to track tentative flag additions as well. This is because we always merge arc target states into arc source states; therefore, when considering a merge of the final state with some other, it is the other state that will acquire a new TSTATE_FIN bit. If there's another arc for the same color trigram that would cause merging of that state with the initial state, we failed to recognize the problem. The test cases for the prior commit evidently only exercised situations where a tentative merge with the initial state occurs before one with the final state. If it goes the other way around, we'll happily merge the initial and final states, either producing a broken final graph that would never match anything, or triggering the Assert added by the prior commit. It's tempting to consider switching the merge direction when the merge involves the final state, but I lack the time to analyze that idea in detail. Instead just keep track of the flag changes that would result from proposed merges, in the same way that the prior commit tracked proposed parent links. Along the way, add some more debugging support, because I'm not entirely confident that this is the last bug here. And tweak matters so that the transformed.dot file uses small integers rather than pointer values to identify states; that makes it more readable if you're just eyeballing it rather than fooling with Graphviz. And rename a couple of identically named struct fields to reduce confusion. Per report from Corey Csuhta. Add a test case based on his example. (Note: this case does not trigger the bug under 9.3, apparently because its different measurement of costs causes it to stop merging states before it hits the failure. I spent some time trying to find a variant that would fail in 9.3, without success; but I'm sure such cases exist.) Like the previous patch, back-patch to 9.3 where this code was added. Report: https://postgr.es/m/E2B01A4B-4530-406B-8D17-2F67CF9A16BA@csuhta.com
2017-04-14 20:52:03 +02:00
/123/-45/
line 1
%line 2
line 3%
%line 4%
%li%ne 5%
li_e 6
(10 rows)
select * from test2 where t ~* 'DEF';
t
--------
abcdef
(1 row)
select * from test2 where t ~ 'dEf';
t
---
(0 rows)
select * from test2 where t ~* '^q';
t
-------
quark
(1 row)
select * from test2 where t ~* '[abc]{3}[def]{3}';
t
--------
abcdef
(1 row)
select * from test2 where t ~* 'ab[a-z]{3}';
t
--------
abcdef
(1 row)
select * from test2 where t ~* '(^| )qua';
t
-------
quark
(1 row)
select * from test2 where t ~ 'q.*rk$';
t
-------
quark
(1 row)
select * from test2 where t ~ 'q';
t
-------
quark
(1 row)
select * from test2 where t ~ '[a-z]{3}';
t
-------------
abcdef
quark
z foo bar
line 1
%line 2
line 3%
%line 4%
(7 rows)
select * from test2 where t ~* '(a{10}|b{10}|c{10}){10}';
t
---
(0 rows)
select * from test2 where t ~ 'z foo bar';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ ' z foo bar';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ ' z foo bar';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ ' z foo';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ 'qua(?!foo)';
t
-------
quark
(1 row)
Further fix pg_trgm's extraction of trigrams from regular expressions. Commit 9e43e8714 turns out to have been insufficient: not only is it necessary to track tentative parent links while considering a set of arc removals, but it's necessary to track tentative flag additions as well. This is because we always merge arc target states into arc source states; therefore, when considering a merge of the final state with some other, it is the other state that will acquire a new TSTATE_FIN bit. If there's another arc for the same color trigram that would cause merging of that state with the initial state, we failed to recognize the problem. The test cases for the prior commit evidently only exercised situations where a tentative merge with the initial state occurs before one with the final state. If it goes the other way around, we'll happily merge the initial and final states, either producing a broken final graph that would never match anything, or triggering the Assert added by the prior commit. It's tempting to consider switching the merge direction when the merge involves the final state, but I lack the time to analyze that idea in detail. Instead just keep track of the flag changes that would result from proposed merges, in the same way that the prior commit tracked proposed parent links. Along the way, add some more debugging support, because I'm not entirely confident that this is the last bug here. And tweak matters so that the transformed.dot file uses small integers rather than pointer values to identify states; that makes it more readable if you're just eyeballing it rather than fooling with Graphviz. And rename a couple of identically named struct fields to reduce confusion. Per report from Corey Csuhta. Add a test case based on his example. (Note: this case does not trigger the bug under 9.3, apparently because its different measurement of costs causes it to stop merging states before it hits the failure. I spent some time trying to find a variant that would fail in 9.3, without success; but I'm sure such cases exist.) Like the previous patch, back-patch to 9.3 where this code was added. Report: https://postgr.es/m/E2B01A4B-4530-406B-8D17-2F67CF9A16BA@csuhta.com
2017-04-14 20:52:03 +02:00
select * from test2 where t ~ '/\d+/-\d';
t
-----------
/123/-45/
(1 row)
-- test = operator
explain (costs off)
select * from test2 where t = 'abcdef';
QUERY PLAN
------------------------------------------
Bitmap Heap Scan on test2
Recheck Cond: (t = 'abcdef'::text)
-> Bitmap Index Scan on test2_idx_gin
Index Cond: (t = 'abcdef'::text)
(4 rows)
select * from test2 where t = 'abcdef';
t
--------
abcdef
(1 row)
explain (costs off)
select * from test2 where t = '%line%';
QUERY PLAN
------------------------------------------
Bitmap Heap Scan on test2
Recheck Cond: (t = '%line%'::text)
-> Bitmap Index Scan on test2_idx_gin
Index Cond: (t = '%line%'::text)
(4 rows)
select * from test2 where t = '%line%';
t
---
(0 rows)
select * from test2 where t = 'li_e 1';
t
---
(0 rows)
select * from test2 where t = '%line 2';
t
---------
%line 2
(1 row)
select * from test2 where t = 'line 3%';
t
---------
line 3%
(1 row)
select * from test2 where t = '%line 3%';
t
---
(0 rows)
select * from test2 where t = '%line 4%';
t
----------
%line 4%
(1 row)
select * from test2 where t = '%line 5%';
t
---
(0 rows)
select * from test2 where t = '%li_ne 5%';
t
---
(0 rows)
select * from test2 where t = '%li%ne 5%';
t
-----------
%li%ne 5%
(1 row)
select * from test2 where t = 'line 6';
t
---
(0 rows)
select * from test2 where t = 'li_e 6';
t
--------
li_e 6
(1 row)
drop index test2_idx_gin;
create index test2_idx_gist on test2 using gist (t gist_trgm_ops);
set enable_seqscan=off;
explain (costs off)
select * from test2 where t like '%BCD%';
QUERY PLAN
------------------------------------------
Index Scan using test2_idx_gist on test2
Index Cond: (t ~~ '%BCD%'::text)
(2 rows)
explain (costs off)
select * from test2 where t ilike '%BCD%';
QUERY PLAN
------------------------------------------
Index Scan using test2_idx_gist on test2
Index Cond: (t ~~* '%BCD%'::text)
(2 rows)
select * from test2 where t like '%BCD%';
t
---
(0 rows)
select * from test2 where t like '%bcd%';
t
--------
abcdef
(1 row)
select * from test2 where t like E'%\\bcd%';
t
--------
abcdef
(1 row)
select * from test2 where t ilike '%BCD%';
t
--------
abcdef
(1 row)
select * from test2 where t ilike 'qua%';
t
-------
quark
(1 row)
select * from test2 where t like '%z foo bar%';
t
-------------
z foo bar
(1 row)
select * from test2 where t like ' z foo%';
t
-------------
z foo bar
(1 row)
explain (costs off)
select * from test2 where t ~ '[abc]{3}';
QUERY PLAN
------------------------------------------
Index Scan using test2_idx_gist on test2
Index Cond: (t ~ '[abc]{3}'::text)
(2 rows)
explain (costs off)
select * from test2 where t ~* 'DEF';
QUERY PLAN
------------------------------------------
Index Scan using test2_idx_gist on test2
Index Cond: (t ~* 'DEF'::text)
(2 rows)
select * from test2 where t ~ '[abc]{3}';
t
--------
abcdef
(1 row)
select * from test2 where t ~ 'a[bc]+d';
t
--------
abcdef
(1 row)
select * from test2 where t ~ '(abc)*$';
t
-------------
abcdef
quark
z foo bar
Further fix pg_trgm's extraction of trigrams from regular expressions. Commit 9e43e8714 turns out to have been insufficient: not only is it necessary to track tentative parent links while considering a set of arc removals, but it's necessary to track tentative flag additions as well. This is because we always merge arc target states into arc source states; therefore, when considering a merge of the final state with some other, it is the other state that will acquire a new TSTATE_FIN bit. If there's another arc for the same color trigram that would cause merging of that state with the initial state, we failed to recognize the problem. The test cases for the prior commit evidently only exercised situations where a tentative merge with the initial state occurs before one with the final state. If it goes the other way around, we'll happily merge the initial and final states, either producing a broken final graph that would never match anything, or triggering the Assert added by the prior commit. It's tempting to consider switching the merge direction when the merge involves the final state, but I lack the time to analyze that idea in detail. Instead just keep track of the flag changes that would result from proposed merges, in the same way that the prior commit tracked proposed parent links. Along the way, add some more debugging support, because I'm not entirely confident that this is the last bug here. And tweak matters so that the transformed.dot file uses small integers rather than pointer values to identify states; that makes it more readable if you're just eyeballing it rather than fooling with Graphviz. And rename a couple of identically named struct fields to reduce confusion. Per report from Corey Csuhta. Add a test case based on his example. (Note: this case does not trigger the bug under 9.3, apparently because its different measurement of costs causes it to stop merging states before it hits the failure. I spent some time trying to find a variant that would fail in 9.3, without success; but I'm sure such cases exist.) Like the previous patch, back-patch to 9.3 where this code was added. Report: https://postgr.es/m/E2B01A4B-4530-406B-8D17-2F67CF9A16BA@csuhta.com
2017-04-14 20:52:03 +02:00
/123/-45/
line 1
%line 2
line 3%
%line 4%
%li%ne 5%
li_e 6
(10 rows)
select * from test2 where t ~* 'DEF';
t
--------
abcdef
(1 row)
select * from test2 where t ~ 'dEf';
t
---
(0 rows)
select * from test2 where t ~* '^q';
t
-------
quark
(1 row)
select * from test2 where t ~* '[abc]{3}[def]{3}';
t
--------
abcdef
(1 row)
select * from test2 where t ~* 'ab[a-z]{3}';
t
--------
abcdef
(1 row)
select * from test2 where t ~* '(^| )qua';
t
-------
quark
(1 row)
select * from test2 where t ~ 'q.*rk$';
t
-------
quark
(1 row)
select * from test2 where t ~ 'q';
t
-------
quark
(1 row)
select * from test2 where t ~ '[a-z]{3}';
t
-------------
abcdef
quark
z foo bar
line 1
%line 2
line 3%
%line 4%
(7 rows)
select * from test2 where t ~* '(a{10}|b{10}|c{10}){10}';
t
---
(0 rows)
select * from test2 where t ~ 'z foo bar';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ ' z foo bar';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ ' z foo bar';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ ' z foo';
t
-------------
z foo bar
(1 row)
select * from test2 where t ~ 'qua(?!foo)';
t
-------
quark
(1 row)
Further fix pg_trgm's extraction of trigrams from regular expressions. Commit 9e43e8714 turns out to have been insufficient: not only is it necessary to track tentative parent links while considering a set of arc removals, but it's necessary to track tentative flag additions as well. This is because we always merge arc target states into arc source states; therefore, when considering a merge of the final state with some other, it is the other state that will acquire a new TSTATE_FIN bit. If there's another arc for the same color trigram that would cause merging of that state with the initial state, we failed to recognize the problem. The test cases for the prior commit evidently only exercised situations where a tentative merge with the initial state occurs before one with the final state. If it goes the other way around, we'll happily merge the initial and final states, either producing a broken final graph that would never match anything, or triggering the Assert added by the prior commit. It's tempting to consider switching the merge direction when the merge involves the final state, but I lack the time to analyze that idea in detail. Instead just keep track of the flag changes that would result from proposed merges, in the same way that the prior commit tracked proposed parent links. Along the way, add some more debugging support, because I'm not entirely confident that this is the last bug here. And tweak matters so that the transformed.dot file uses small integers rather than pointer values to identify states; that makes it more readable if you're just eyeballing it rather than fooling with Graphviz. And rename a couple of identically named struct fields to reduce confusion. Per report from Corey Csuhta. Add a test case based on his example. (Note: this case does not trigger the bug under 9.3, apparently because its different measurement of costs causes it to stop merging states before it hits the failure. I spent some time trying to find a variant that would fail in 9.3, without success; but I'm sure such cases exist.) Like the previous patch, back-patch to 9.3 where this code was added. Report: https://postgr.es/m/E2B01A4B-4530-406B-8D17-2F67CF9A16BA@csuhta.com
2017-04-14 20:52:03 +02:00
select * from test2 where t ~ '/\d+/-\d';
t
-----------
/123/-45/
(1 row)
-- test = operator
explain (costs off)
select * from test2 where t = 'abcdef';
QUERY PLAN
------------------------------------------
Index Scan using test2_idx_gist on test2
Index Cond: (t = 'abcdef'::text)
(2 rows)
select * from test2 where t = 'abcdef';
t
--------
abcdef
(1 row)
explain (costs off)
select * from test2 where t = '%line%';
QUERY PLAN
------------------------------------------
Index Scan using test2_idx_gist on test2
Index Cond: (t = '%line%'::text)
(2 rows)
select * from test2 where t = '%line%';
t
---
(0 rows)
select * from test2 where t = 'li_e 1';
t
---
(0 rows)
select * from test2 where t = '%line 2';
t
---------
%line 2
(1 row)
select * from test2 where t = 'line 3%';
t
---------
line 3%
(1 row)
select * from test2 where t = '%line 3%';
t
---
(0 rows)
select * from test2 where t = '%line 4%';
t
----------
%line 4%
(1 row)
select * from test2 where t = '%line 5%';
t
---
(0 rows)
select * from test2 where t = '%li_ne 5%';
t
---
(0 rows)
select * from test2 where t = '%li%ne 5%';
t
-----------
%li%ne 5%
(1 row)
select * from test2 where t = 'line 6';
t
---
(0 rows)
select * from test2 where t = 'li_e 6';
t
--------
li_e 6
(1 row)
-- Check similarity threshold (bug #14202)
CREATE TEMP TABLE restaurants (city text);
INSERT INTO restaurants SELECT 'Warsaw' FROM generate_series(1, 10000);
INSERT INTO restaurants SELECT 'Szczecin' FROM generate_series(1, 10000);
CREATE INDEX ON restaurants USING gist(city gist_trgm_ops);
-- Similarity of the two names (for reference).
SELECT similarity('Szczecin', 'Warsaw');
similarity
------------
0
(1 row)
-- Should get only 'Warsaw' for either setting of set_limit.
EXPLAIN (COSTS OFF)
SELECT DISTINCT city, similarity(city, 'Warsaw'), show_limit()
FROM restaurants WHERE city % 'Warsaw';
Improve selectivity estimation for assorted match-style operators. Quite a few matching operators such as JSONB's @> used "contsel" and "contjoinsel" as their selectivity estimators. That was a bad idea, because (a) contsel is only a stub, yielding a fixed default estimate, and (b) that default is 0.001, meaning we estimate these operators as five times more selective than equality, which is surely pretty silly. There's a good model for improving this in ltree's ltreeparentsel(): for any "var OP constant" query, we can try applying the operator to all of the column's MCV and histogram values, taking the latter as being a random sample of the non-MCV values. That code is actually 100% generic, except for the question of exactly what default selectivity ought to be plugged in when we don't have stats. Hence, migrate the guts of ltreeparentsel() into the core code, provide wrappers "matchingsel" and "matchingjoinsel" with a more-appropriate default estimate, and use those for the non-geometric operators that formerly used contsel (mostly JSONB containment operators and tsquery matching). Also apply this code to some match-like operators in hstore, ltree, and pg_trgm, including the former users of ltreeparentsel as well as ones that improperly used contsel. Since commit 911e70207 just created new versions of those extensions that we haven't released yet, we can sneak this change into those new versions instead of having to create an additional generation of update scripts. Patch by me, reviewed by Alexey Bashtanov Discussion: https://postgr.es/m/12237.1582833074@sss.pgh.pa.us
2020-04-01 16:32:33 +02:00
QUERY PLAN
-------------------------------------------------------------------
HashAggregate
Group Key: city, similarity(city, 'Warsaw'::text), show_limit()
-> Bitmap Heap Scan on restaurants
Recheck Cond: (city % 'Warsaw'::text)
-> Bitmap Index Scan on restaurants_city_idx
Index Cond: (city % 'Warsaw'::text)
(6 rows)
SELECT set_limit(0.3);
set_limit
-----------
0.3
(1 row)
SELECT DISTINCT city, similarity(city, 'Warsaw'), show_limit()
FROM restaurants WHERE city % 'Warsaw';
city | similarity | show_limit
--------+------------+------------
Warsaw | 1 | 0.3
(1 row)
SELECT set_limit(0.5);
set_limit
-----------
0.5
(1 row)
SELECT DISTINCT city, similarity(city, 'Warsaw'), show_limit()
FROM restaurants WHERE city % 'Warsaw';
city | similarity | show_limit
--------+------------+------------
Warsaw | 1 | 0.5
(1 row)