OLD | NEW |
(Empty) | |
| 1 # 2015 May 30 |
| 2 # |
| 3 # The author disclaims copyright to this source code. In place of |
| 4 # a legal notice, here is a blessing: |
| 5 # |
| 6 # May you do good and not evil. |
| 7 # May you find forgiveness for yourself and forgive others. |
| 8 # May you share freely, never taking more than you give. |
| 9 # |
| 10 #************************************************************************* |
| 11 # |
| 12 # This file contains automatically generated tests for various types |
| 13 # of MATCH expressions. |
| 14 # |
| 15 |
| 16 source [file join [file dirname [info script]] fts5_common.tcl] |
| 17 set testprefix fts5auto |
| 18 |
| 19 # If SQLITE_ENABLE_FTS5 is defined, omit this file. |
| 20 ifcapable !fts5 { |
| 21 finish_test |
| 22 return |
| 23 } |
| 24 |
| 25 set data { |
| 26 -4026076 |
| 27 {n x w k b p x b n t t d s} {f j j s p j o} |
| 28 {w v i y r} {i p y s} |
| 29 {a o q v e n q r} {q v g u c y a z y} |
| 30 3995120 |
| 31 {c} {e e w d t} |
| 32 {x c p f w r s m l r b f d} {g g u e} |
| 33 {s n u t d v p d} {b k v p m f} |
| 34 -2913881 |
| 35 {k m} {a} |
| 36 {w r j z n s l} {m j i w d t w e l} |
| 37 {z n c} {v f b m} |
| 38 174082 |
| 39 {j} {q l w u k e q v r i} |
| 40 {j l} {u v w r s p e l} |
| 41 {p i k j k q c t g u s} {g u y s m h q k g t e s o r} |
| 42 3207399 |
| 43 {e t} {} |
| 44 {p} {y v r b e k h d e v} |
| 45 {t m w z b g q t s d d h} {o n v u i t o y k j} |
| 46 182399 |
| 47 {} {m o s o x d y f a x j z} |
| 48 {x n z r c d} {n r x i r} |
| 49 {s v s} {a u} |
| 50 768994 |
| 51 {e u t q v z q k j p u f j p} {y c b} |
| 52 {p s d} {k n w p m p p} |
| 53 {u o x s d} {f s g r d b d r m m m z y} |
| 54 3931037 |
| 55 {c j p x e} {c n k t h z o i} |
| 56 {} {r r p j k x w q} |
| 57 {o r d z d} {x} |
| 58 3105748 |
| 59 {p x r u} {x i s w o t o g x m z i w} |
| 60 {q x m z} {h c j w b l y w x c o} |
| 61 {m b k v} {t v q i s a d x} |
| 62 -2501642 |
| 63 {o u d n w o m o o s n t r h} {k p e u y p e z d j r y g} |
| 64 {v b b h d d q y j q j} {a m w d t} |
| 65 {y e f n} {a k x i x} |
| 66 -1745680 |
| 67 {z u w j f d b f} {j w i c g u d w e} |
| 68 {m f p v m a s p v c o s} {s c r z o t w l b e a q} |
| 69 {m k q} {k b a v o} |
| 70 -932328 |
| 71 {r v i u m q d r} {f z u v h c m r f g} |
| 72 {r x r} {k p i d h h w h z u a x} |
| 73 {k m j p} {h l j a e u c i q x x f x g} |
| 74 -3923818 |
| 75 {t t p b n u i h e c k} {m z} |
| 76 {v u d c} {v y y j s g} |
| 77 {o a f k k q p h g x e n z x} {h d w c o l} |
| 78 -2145922 |
| 79 {z z l f a l g e d c d h} {j b j p k o o u b q} |
| 80 {d i g q t f d r h k} {n w g j c x r p t y f l c t} |
| 81 {d o c u k f o} {r y s x z s p p h g t p y c} |
| 82 4552917 |
| 83 {j w j y h l k u} {n a} |
| 84 {y h w c n k} {b} |
| 85 {w} {z l r t s i m v c y} |
| 86 2292008 |
| 87 {q v q j w y y x u t} {r q z n h a b o} |
| 88 {d q y} {y v o e j} |
| 89 {} {a b h c d l p d x} |
| 90 1407892 |
| 91 {n j j u q d o a u c f} {r d b w o q n g} |
| 92 {d e v w s} {v d v o u o x s l s j z y} |
| 93 {j y w h i f g i h m} {v n z b n y} |
| 94 -4412544 |
| 95 {g h h r s} {h e r e} |
| 96 {n q s} {o p z r m l l t} |
| 97 {p} {f s u o b j} |
| 98 1209110 |
| 99 {o a a z t t u h j} {z z i r k r} |
| 100 {i c x q w g v o x z i z p} {q o g k i n z x e d v w v} |
| 101 {p f v b g f e d n p u c y k} {q z z a i p a a s r e z} |
| 102 3448977 |
| 103 {i v} {l u x t b o k} |
| 104 {f h u v p} {k a o y j} |
| 105 {d m k c j} {v c e r u e f i t} |
| 106 -4703774 |
| 107 {d h v w u z r e h x o l t} {p s f y w y r q d a m w} |
| 108 {c h g c g j j f t b i c q} {s e} |
| 109 {c t q j g f} {v n r w y r a g e j d} |
| 110 2414151 |
| 111 {s o o s d s k q b f q v p e} {j r o b t o p d l o o x} |
| 112 {d d k t v e} {} |
| 113 {t v o d w} {w e q w h y c y y i j b a m} |
| 114 -3342407 |
| 115 {m c h n e p d o c r w n t} {j d k s p q l} |
| 116 {t g s r w x j l r z r} {h} |
| 117 {r q v x i r a n h s} {m y p b v w r a u o g q r} |
| 118 -993951 |
| 119 {l n p u o j d x t u u c o j} {k r n a r e k v i t o e} |
| 120 {q f t t a a c z v f} {o n m p v f o e n} |
| 121 {h z h i p s b j z h} {i t w m k c u g n i} |
| 122 1575251 |
| 123 {} {z s i j d o x j a r t} |
| 124 {h g j u j n v e n z} {p z j n n f} |
| 125 {s q q f d w r l y i z d o m} {b a n d h t b y g h d} |
| 126 4263668 |
| 127 {q g t h f s} {s g x p f q z i s o f l i} |
| 128 {q k} {w v h a x n a r b} |
| 129 {m j a h o b i x k r w z q u} {m t r g j o e q t m p u l} |
| 130 2487819 |
| 131 {m w g x r n e u t s r} {b x a t u u j c r n} |
| 132 {j} {w f j r e e y l p} |
| 133 {o u h b} {o c a c a b v} |
| 134 167966 |
| 135 {o d b s d o a u m o x y} {c} |
| 136 {r w d o b v} {z e b} |
| 137 {i n z a f g z o} {m u b a g} |
| 138 1948599 |
| 139 {n r g q d j s} {n k} |
| 140 {l b p d v t k h y y} {u m k e c} |
| 141 {t b n y o t b} {j w c i r x x} |
| 142 2941631 |
| 143 {l d p l b g f} {e k e} |
| 144 {p j} {m c s w t b k n l d x} |
| 145 {f o v y v l} {c w p s w j w c u t y} |
| 146 3561104 |
| 147 {d r j j r j i g p} {u} |
| 148 {g r j q} {z l p d s n f c h t d c v z} |
| 149 {w r c f s x z y} {g f o k g g} |
| 150 -2223281 |
| 151 {y e t j j z f p o m m z} {h k o g o} |
| 152 {m x a t} {l q x l} |
| 153 {r w k d l s y b} {q g k b} |
| 154 -4502874 |
| 155 {k k b x k l f} {r} |
| 156 {} {q m z b k h k u n e z} |
| 157 {z q g y m y u} {} |
| 158 1757599 |
| 159 {d p z j y u r} {z p l q w j t j} |
| 160 {n i r x r y j} {} |
| 161 {h} {w t d q c x z z x e e} |
| 162 -4809589 |
| 163 {} {z p x u h i i n g} |
| 164 {w q s u d b f x n} {l y k b b r x t i} |
| 165 {n d v j q o t o d p z e} {u r y u v u c} |
| 166 1068408 |
| 167 {y e} {e g s k e w t p v o b k} |
| 168 {z c m s} {r u r u h n h b p q g b} |
| 169 {j k b l} {m c d t s r s q a d b o f} |
| 170 -1972554 |
| 171 {m s w} {d k v s a r k p a r i v} |
| 172 {g j z k p} {y k c v r e u o q f i b a} |
| 173 {i p i} {c z w c y b n z i v} |
| 174 -2052385 |
| 175 {} {x e u f f g n c i x n e i e} |
| 176 {} {p s w d x p g} |
| 177 {} {s j a h n} |
| 178 2805981 |
| 179 {m x g c w o e} {k g u y r y i u e g g} |
| 180 {f k j v t x p h x k u} {w i} |
| 181 {b l f z f v t n} {i u d o d p h s m u} |
| 182 2507621 |
| 183 {} {u b n l x f n j t} |
| 184 {u r x l h} {h r l m r} |
| 185 {d y e n b s q v t k n q q} {x l t v w h a s k} |
| 186 -3138375 |
| 187 {e o f j y x u w v e w z} {r d q g k n n v r c z n e w} |
| 188 {l y i q z k j p u f q s k} {c i l l i m a a g a z r x f} |
| 189 {a v k h m q z b y n z} {q g w c y r r o a} |
| 190 -457971 |
| 191 {j x a w e c s h f l f} {q} |
| 192 {j f v j u m d q r v v} {x n v a w} |
| 193 {i e h d h f u w t t z} {v s u l s v o v i k n e} |
| 194 2265221 |
| 195 {z t c y w n y r t} {n b a x s} |
| 196 {q w a v} {a b s d x i g w t e z h} |
| 197 {t l} {j k r w f f y j o k u} |
| 198 -3941280 |
| 199 {r x t o z} {f j n z k} |
| 200 {t x e b t d b k w i s} {j t y h i h} |
| 201 {y q g n g s u v c z j z n g} {n n g t l p h} |
| 202 2084745 |
| 203 {z d z d} {j} |
| 204 {o e k t b k a z l w} {o p i h k c x} |
| 205 {c r b t i j f} {z e n m} |
| 206 1265843 |
| 207 {} {j s g j j x u y} |
| 208 {u q t f} {g o g} |
| 209 {w o j e d} {w q n a c t q x j} |
| 210 -2941116 |
| 211 {i n c u o} {f b} |
| 212 {o m s q d o z a q} {f s v o b b} |
| 213 {o a z c h r} {j e w h b f z} |
| 214 -1265441 |
| 215 {p g z q v a o a x a} {s t h} |
| 216 {w i p o c} {s n d g f z w q o d v v l j} |
| 217 {y f b i a s v} {u m o z k k s t s d p b l p} |
| 218 -1989158 |
| 219 {r i c n} {r e w w i n z} |
| 220 {q u s y b w u g y g f o} {y} |
| 221 {d} {j x i b x u y d c p v a h} |
| 222 2391989 |
| 223 {b n w x w f q h p i} {e u b b i n a i o c d g} |
| 224 {v a z o i e n l x l r} {r u f o r k w m d w} |
| 225 {k s} {r f e j q p w} |
| 226 } |
| 227 |
| 228 do_execsql_test 1.0 { |
| 229 CREATE VIRTUAL TABLE tt USING fts5(a, b, c, d, e, f); |
| 230 } {} |
| 231 |
| 232 fts5_aux_test_functions db |
| 233 |
| 234 proc do_auto_test {tn tbl expr} { |
| 235 foreach order {asc desc} { |
| 236 set res [fts5_poslist_data $expr $tbl $order] |
| 237 set testname "$tn.[string range $order 0 0].rows=[expr [llength $res]/2]" |
| 238 |
| 239 set ::autotest_expr $expr |
| 240 do_execsql_test $testname [subst -novar { |
| 241 SELECT rowid, fts5_test_poslist([set tbl]) FROM [set tbl] |
| 242 WHERE [set tbl] MATCH $::autotest_expr ORDER BY rowid [set order] |
| 243 }] $res |
| 244 } |
| 245 } |
| 246 |
| 247 #------------------------------------------------------------------------- |
| 248 # |
| 249 |
| 250 for {set fold 0} {$fold < 3} {incr fold} { |
| 251 switch $fold { |
| 252 0 { set map {} } |
| 253 1 { set map { |
| 254 a a b a c b d b e c f c g d h d |
| 255 i e j e k f l f m g g g o h p h |
| 256 q i r i s j t j u k v k w l x l |
| 257 y m z m |
| 258 }} |
| 259 |
| 260 2 { set map { |
| 261 a a b a c a d a e a f a g a h a |
| 262 i b j b k b l b m b g b o b p b |
| 263 q c r c s c t c u c v c w c x c |
| 264 }} |
| 265 } |
| 266 |
| 267 execsql { |
| 268 BEGIN; |
| 269 DELETE FROM tt; |
| 270 } |
| 271 foreach {rowid a b c d e f} [string map $map $data] { |
| 272 if {$rowid==-4703774} { |
| 273 execsql { |
| 274 INSERT INTO tt(rowid, a, b, c, d, e, f) |
| 275 VALUES($rowid, $a, $b, $c, $d, $e, $f) |
| 276 } |
| 277 } |
| 278 } |
| 279 execsql COMMIT |
| 280 |
| 281 |
| 282 foreach {tn expr} { |
| 283 A.1 { {a} : x } |
| 284 A.2 { {a b} : x } |
| 285 A.3 { {a b f} : x } |
| 286 A.4 { {f a b} : x } |
| 287 A.5 { {f a b} : x y } |
| 288 A.6 { {f a b} : x + y } |
| 289 A.7 { {c a b} : x + c } |
| 290 A.8 { {c d} : "l m" } |
| 291 A.9 { {c e} : "l m" } |
| 292 A.10 { {a b c a b c a b c f f e} : "l m" } |
| 293 |
| 294 B.1 { a NOT b } |
| 295 B.2 { a NOT a:b } |
| 296 B.3 { a OR (b AND c) } |
| 297 B.4 { a OR (b AND {a b c}:c) } |
| 298 B.5 { a OR "b c" } |
| 299 B.6 { a OR b OR c } |
| 300 |
| 301 C.1 { a OR (b AND "b c") } |
| 302 C.2 { a OR (b AND "z c") } |
| 303 } { |
| 304 do_auto_test 3.$fold.$tn tt $expr |
| 305 } |
| 306 } |
| 307 |
| 308 proc replace_elems {list args} { |
| 309 set ret $list |
| 310 foreach {idx elem} $args { |
| 311 set ret [lreplace $ret $idx $idx $elem] |
| 312 } |
| 313 set ret |
| 314 } |
| 315 |
| 316 #------------------------------------------------------------------------- |
| 317 # |
| 318 set bigdoc [string trim [string repeat "a " 1000]] |
| 319 do_test 4.0 { |
| 320 set a [replace_elems $bigdoc 50 x 950 x] |
| 321 set b [replace_elems $bigdoc 20 y 21 x 887 x 888 y] |
| 322 set c [replace_elems $bigdoc 1 z 444 z 789 z] |
| 323 execsql { |
| 324 CREATE VIRTUAL TABLE yy USING fts5(c1, c2, c3); |
| 325 INSERT INTO yy(rowid, c1, c2, c3) VALUES(-56789, $a, $b, $c); |
| 326 INSERT INTO yy(rowid, c1, c2, c3) VALUES(250, $a, $b, $c); |
| 327 } |
| 328 } {} |
| 329 |
| 330 foreach {tn expr} { |
| 331 1 x |
| 332 2 y |
| 333 3 z |
| 334 |
| 335 4 {c1 : x} 5 {c2 : x} 6 {c3 : x} |
| 336 7 {c1 : y} 8 {c2 : y} 9 {c3 : y} |
| 337 10 {c1 : z} 11 {c2 : z} 12 {c3 : z} |
| 338 } { |
| 339 do_auto_test 4.$tn yy $expr |
| 340 } |
| 341 |
| 342 |
| 343 |
| 344 finish_test |
| 345 |
OLD | NEW |