mirror of
https://gitlab.com/cznic/sqlite.git
synced 2025-06-06 23:40:39 +00:00
SQLite 3.37.0: rc2
This commit is contained in:
Makefilego.modgo.sum
internal
mptest
main_darwin_amd64.gomain_freebsd_amd64.gomain_linux_386.gomain_linux_amd64.gomain_linux_arm.gomain_linux_arm64.gomain_linux_s390x.gomain_windows_amd64.go
testfixture
lib
capi_linux_s390x.gocapi_windows_amd64.gosqlite_darwin_amd64.gosqlite_freebsd_amd64.gosqlite_linux_386.gosqlite_linux_amd64.gosqlite_linux_arm.gosqlite_linux_arm64.gosqlite_linux_s390x.gosqlite_windows_amd64.go
libtest
capi_linux_s390x.gocapi_windows_amd64.gosqlite_darwin_amd64.gosqlite_freebsd_amd64.gosqlite_linux_386.gosqlite_linux_amd64.gosqlite_linux_arm.gosqlite_linux_arm64.gosqlite_linux_s390x.gosqlite_windows_amd64.go
speedtest1
main_darwin_amd64.gomain_freebsd_amd64.gomain_linux_386.gomain_linux_amd64.gomain_linux_arm.gomain_linux_arm64.gomain_linux_s390x.gomain_windows_amd64.go
tcl_test.gotestdata
3.36.0
tcl
8_3_names.testaffinity2.testaffinity3.testaggerror.testaggnested.testalias.testall.testalter.testalter2.testalter3.testalter4.testalterauth.testalterauth2.testaltercol.testaltercorrupt.testalterdropcol.testalterdropcol2.testalterlegacy.testaltermalloc.testaltermalloc2.testaltermalloc3.testalterqf.testaltertab.testaltertab2.testaltertab3.testamatch1.testanalyze.testanalyze3.testanalyze4.testanalyze5.testanalyze6.testanalyze7.testanalyze8.testanalyze9.testanalyzeC.testanalyzeD.testanalyzeE.testanalyzeF.testanalyzeG.testanalyzer1.testasync.testasync2.testasync3.testasync4.testasync5.testatof1.testatomic.testatomic2.testatrc.cattach.testattach2.testattach3.testattach4.testattachmalloc.testauth.testauth2.testauth3.testautoanalyze1.testautoinc.testautoindex1.testautoindex2.testautoindex3.testautoindex4.testautoindex5.testautovacuum.testautovacuum_ioerr2.testavfs.testavtrans.testbackcompat.testbackup.testbackup2.testbackup4.testbackup5.testbackup_ioerr.testbackup_malloc.testbadutf.testbadutf2.testbc_common.tclbestindex1.testbestindex2.testbestindex3.testbestindex4.testbestindex5.testbestindex6.testbestindex7.testbetween.testbigfile.testbigfile2.testbigmmap.testbigrow.testbigsort.testbind.testbindxfer.testbitvec.testblob.testboundary1.tclboundary1.testboundary2.tclboundary2.testboundary3.tclboundary3.testboundary4.tclboundary4.testbtree01.testbtree02.testbtreefault.testbusy.testbusy2.testcache.testcacheflush.testcachespill.testcapi2.testcapi3.testcapi3b.testcapi3c.testcapi3d.testcapi3e.testcarray01.testcast.testcffault.testcheck.testcheckfault.testchunksize.testclose.testclosure01.testcoalesce.testcollate1.testcollate2.testcollate3.testcollate4.testcollate5.testcollate6.testcollate7.testcollate8.testcollate9.testcollateA.testcollateB.testcolmeta.testcolname.testcolumncount.testconflict.testconflict2.testconflict3.testcontrib01.testcorrupt.testcorrupt2.testcorrupt3.testcorrupt4.testcorrupt5.testcorrupt6.testcorrupt7.testcorrupt8.testcorrupt9.testcorruptA.testcorruptB.testcorruptC.testcorruptD.testcorruptE.testcorruptF.testcorruptG.testcorruptH.testcorruptI.testcorruptJ.testcorruptK.testcorruptL.testcorruptM.testcorruptN.testcost.testcount.testcountofview.testcoveridxscan.testcrash.testcrash2.testcrash3.testcrash4.testcrash5.testcrash6.testcrash7.testcrash8.testcrashM.testcrashtest1.ccreatetab.testcse.testcsv01.testctime.testcursorhint.testcursorhint2.testdataversion1.testdate.testdate2.testdbdata.testdbfuzz.cdbfuzz001.testdbfuzz2-seed1.dbdbfuzz2.cdbpage.testdbstatus.testdbstatus2.testdecimal.testdefault.testdelete.testdelete2.testdelete3.testdelete4.testdelete_db.testdescidx1.testdescidx2.testdescidx3.testdiskfull.testdistinct.testdistinct2.testdistinctagg.teste_blobbytes.teste_blobclose.teste_blobopen.teste_blobwrite.teste_changes.teste_createtable.teste_delete.teste_droptrigger.teste_dropview.teste_expr.teste_fkey.teste_fts3.teste_insert.teste_reindex.teste_resolve.teste_select.teste_select2.teste_totalchanges.teste_update.teste_uri.teste_vacuum.teste_wal.teste_walauto.teste_walckpt.teste_walhook.testemptytable.testenc.testenc2.testenc3.testenc4.testeqp.testerrmsg.testeval.testexclusive.testexclusive2.testexec.testexists.testexists2.testexistsfault.testexpr.testexpr2.testexprfault.testextension01.testexternal_reader.testextraquick.testfallocate.testfilectrl.testfilefmt.testfilter1.testfilter2.tclfilter2.testfilterfault.testfkey1.testfkey2.testfkey3.testfkey4.testfkey5.testfkey6.testfkey7.testfkey8.testfkey_malloc.testfordelete.testformat4.testfts-9fd058691.testfts1a.testfts1b.testfts1c.testfts1d.testfts1e.testfts1f.testfts1i.testfts1j.testfts1k.testfts1l.testfts1m.testfts1n.testfts1o.testfts1porter.testfts2.testfts2a.testfts2b.testfts2c.testfts2d.testfts2e.testfts2f.testfts2g.testfts2h.testfts2i.testfts2j.testfts2k.testfts2l.testfts2m.testfts2n.testfts2o.testfts2p.testfts2q.testfts2r.testfts2token.testfts3.testfts3_common.tclfts3aa.testfts3ab.testfts3ac.testfts3ad.testfts3ae.testfts3af.testfts3ag.testfts3ah.testfts3ai.testfts3aj.testfts3ak.testfts3al.testfts3am.testfts3an.testfts3ao.testfts3atoken.testfts3auto.testfts3aux1.testfts3aux2.testfts3b.testfts3c.testfts3comp1.testfts3conf.testfts3corrupt.testfts3corrupt2.testfts3corrupt3.testfts3corrupt4.testfts3corrupt5.testfts3corrupt6.testfts3cov.testfts3d.testfts3defer.testfts3defer2.testfts3defer3.testfts3drop.testfts3e.testfts3expr.testfts3expr2.testfts3expr3.testfts3expr4.testfts3expr5.testfts3fault.testfts3fault2.testfts3first.testfts3fuzz001.testfts3join.testfts3malloc.testfts3matchinfo.testfts3matchinfo2.testfts3misc.testfts3near.testfts3offsets.testfts3prefix.testfts3prefix2.testfts3query.testfts3rank.testfts3rnd.testfts3shared.testfts3snippet.testfts3snippet2.testfts3sort.testfts3tok1.testfts3tok_err.testfts3varint.testfts4aa.testfts4check.testfts4content.testfts4docid.testfts4growth.testfts4growth2.testfts4incr.testfts4langid.testfts4lastrowid.testfts4merge.testfts4merge2.testfts4merge3.testfts4merge4.testfts4merge5.testfts4min.testfts4noti.testfts4onepass.testfts4opt.testfts4record.testfts4rename.testfts4umlaut.testfts4unicode.testfts4upfrom.testfull.testfunc.testfunc2.testfunc3.testfunc4.testfunc5.testfunc6.testfunc7.testfuzz-oss1.testfuzz.testfuzz2.testfuzz3.testfuzz4.testfuzz_common.tclfuzz_malloc.testfuzzcheck.cfuzzdata1.dbfuzzdata2.dbfuzzdata3.dbfuzzdata4.dbfuzzdata5.dbfuzzdata6.dbfuzzdata7.dbfuzzdata8.dbfuzzer1.testfuzzer2.testfuzzerfault.testgcfault.testgencol1.testgenesis.tclhaving.testhexlit.testhidden.testhook.testhook2.testicu.testieee754.testimposter1.testin.testin2.testin3.testin4.testin5.testin6.testincrblob.testincrblob2.testincrblob3.testincrblob4.testincrblob_err.testincrblobfault.testincrcorrupt.testincrvacuum.testincrvacuum2.testincrvacuum3.testincrvacuum_ioerr.testindex.testindex2.testindex3.testindex4.testindex5.testindex6.testindex7.testindex8.testindex9.testindexedby.testindexexpr1.testindexexpr2.testindexfault.testinit.testinsert.testinsert2.testinsert3.testinsert4.testinsert5.testinsertfault.testinstr.testinstrfault.testintarray.testinterrupt.testinterrupt2.testintpkey.testintreal.testio.testioerr.testioerr2.testioerr3.testioerr4.testioerr5.testioerr6.testistrue.testjoin.testjoin2.testjoin3.testjoin4.testjoin5.testjoin6.testjournal1.testjournal2.testjournal3.testjrnlmode.testjrnlmode2.testjrnlmode3.testjson101.testjson102.testjson103.testjson104.testjson105.testkeyword1.testkvtest.clastinsert.testlaststmtchanges.testlemon-test01.ylike.testlike2.testlike3.testlimit.testlimit2.testloadext.testloadext2.testlock.testlock2.testlock3.testlock4.testlock5.testlock6.testlock7.testlock_common.tcllookaside.testmain.testmake-where7.tclmalloc.testmalloc3.testmalloc4.testmalloc5.testmalloc6.testmalloc7.testmalloc8.testmalloc9.testmallocA.testmallocAll.testmallocB.testmallocC.testmallocD.testmallocE.testmallocF.testmallocG.testmallocH.testmallocI.testmallocJ.testmallocK.testmallocL.testmallocM.testmalloc_common.tclmalloctraceviewer.tclmanydb.testmem5.testmemdb.testmemdb1.testmemjournal.testmemleak.testmemsubsys1.testmemsubsys2.testminmax.testminmax2.testminmax3.testminmax4.testmisc1.testmisc2.testmisc3.testmisc4.testmisc5.testmisc6.testmisc7.testmisc8.testmisuse.testmjournal.testmmap1.testmmap2.testmmap3.testmmap4.testmmapfault.testmmapwarm.testmultiplex.testmultiplex2.testmultiplex3.testmultiplex4.testmutex1.testmutex2.testnan.testnockpt.testnolock.testnormalize.testnotify1.testnotify2.testnotify3.testnotnull.testnotnull2.testnotnullfault.testnull.testnulls1.testnumcast.testnumindex1.testoffset1.testopenv2.testoptfuzz-db01.coptfuzz-db01.txtoptfuzz.corderby1.testorderby2.testorderby3.testorderby4.testorderby5.testorderby6.testorderby7.testorderby8.testorderby9.testorderbyA.testoserror.testossfuzz.cossshell.covfl.testpager1.testpager2.testpager3.testpager4.testpagerfault.testpagerfault2.testpagerfault3.testpageropt.testpagesize.testparser1.testpcache.testpcache2.testpercentile.testpermutations.testpg_common.tclpragma.testpragma2.testpragma3.testpragma4.testpragma5.testpragmafault.testprefixes.testprintf.testprintf2.testprogress.testptrchng.testpushdown.testqueryonly.testquick.testquota-glob.testquota.testquota2.testquote.testrandexpr1.tclrandexpr1.testrbu.testrdonly.testrecover.testregexp1.testregexp2.testreindex.testreleasetest.tclreleasetest_data.tclresetdb.testresolver01.testreturning1.testrollback.testrollback2.testrollbackfault.testround1.testrowallock.testrowhash.testrowid.testrowvalue.testrowvalue2.testrowvalue3.testrowvalue4.testrowvalue5.testrowvalue6.testrowvalue7.testrowvalue8.testrowvalue9.testrowvaluefault.testrowvaluevtab.testrtree.testrun-wordcount.shsavepoint.testsavepoint2.testsavepoint4.testsavepoint5.testsavepoint6.testsavepoint7.testsavepointfault.testscanstatus.testschema.testschema2.testschema3.testschema4.testschema5.testschema6.testschemafault.testsecuredel.testsecuredel2.testselect1.testselect2.testselect3.testselect4.testselect5.testselect6.testselect7.testselect8.testselect9.testselectA.testselectB.testselectC.testselectD.testselectE.testselectF.testselectG.testserver1.testsession.testsessionfuzz-data1.dbsessionfuzz.cshared.testshared2.testshared3.testshared4.testshared6.testshared7.testshared8.testshared9.testsharedA.testsharedB.testshared_err.testsharedlock.testshell1.testshell2.testshell3.testshell4.testshell5.testshell6.testshell7.testshell8.testshmlock.testshortread1.testshow_speedtest1_rtree.tclshrink.testsidedelete.testskipscan1.testskipscan2.testskipscan3.testskipscan5.testskipscan6.testsnapshot.testsnapshot2.testsnapshot3.testsnapshot4.testsnapshot_fault.testsnapshot_up.testsoak.testsoftheap1.testsort.testsort2.testsort3.testsort4.testsort5.testsorterref.testsortfault.testspeed1.testspeed1p.explainspeed1p.testspeed2.testspeed3.testspeed4.testspeed4p.explainspeed4p.testspeedtest1.cspellfix.testspellfix2.testspellfix3.testspellfix4.testsqldiff1.testsqllimits1.testsqllog.teststartup.cstat.teststatfault.teststmt.teststmtvtab1.testsubjournal.testsubquery.testsubquery2.testsubselect.testsubstr.testsubtype1.testsuperlock.testswarmvtab.testswarmvtab2.testswarmvtab3.testswarmvtabfault.testsymlink.testsymlink2.testsync.testsync2.testsyscall.testsysfault.testtabfunc01.testtable.testtableapi.testtableopts.testtclsqlite.testtempdb.testtempdb2.testtempfault.testtemptable.testtemptable2.testtemptable3.testtemptrigger.testtester.tclthread001.testthread002.testthread003.testthread004.testthread005.testthread1.testthread2.testthread_common.tclthreadtest1.cthreadtest2.cthreadtest3.cthreadtest4.cthreadtest5.ctime-wordcount.shtkt-02a8e81d44.testtkt-18458b1a.testtkt-26ff0c2d1e.testtkt-2a5629202f.testtkt-2d1a5c67d.testtkt-2ea2425d34.testtkt-31338dca7e.testtkt-313723c356.testtkt-385a5b56b9.testtkt-38cb5df375.testtkt-3998683a16.testtkt-3a77c9714e.testtkt-3fe897352e.testtkt-4a03edc4c8.testtkt-4c86b126f2.testtkt-4dd95f6943.testtkt-4ef7e3cfca.testtkt-54844eea3f.testtkt-5d863f876e.testtkt-5e10420e8d.testtkt-5ee23731f.testtkt-6bfb98dfc0.testtkt-752e1646fc.testtkt-78e04e52ea.testtkt-7a31705a7e6.testtkt-7bbfb7d442.testtkt-80ba201079.testtkt-80e031a00f.testtkt-8454a207b9.testtkt-868145d012.testtkt-8c63ff0ec.testtkt-91e2e8ba6f.testtkt-94c04eaadb.testtkt-9a8b09f8e6.testtkt-9d68c883.testtkt-9f2eb3abac.testtkt-a7b7803e.testtkt-a7debbe0.testtkt-a8a0d2996a.testtkt-b1d3a2e531.testtkt-b351d95f9.testtkt-b72787b1.testtkt-b75a9ca6b0.testtkt-ba7cbfaedc.testtkt-bd484a090c.testtkt-bdc6bbbb38.testtkt-c48d99d690.testtkt-c694113d5.testtkt-cbd054fa6b.testtkt-d11f09d36e.testtkt-d635236375.testtkt-d82e3f3721.testtkt-f3e5abed55.testtkt-f67b41381a.testtkt-f777251dc7a.testtkt-f7b4edec.testtkt-f973c7ac31.testtkt-fa7bf5ec.testtkt-fc62af4523.testtkt-fc7bd6358f.testtkt1435.testtkt1443.testtkt1444.testtkt1449.testtkt1473.testtkt1501.testtkt1512.testtkt1514.testtkt1536.testtkt1537.testtkt1567.testtkt1644.testtkt1667.testtkt1873.testtkt2141.testtkt2192.testtkt2213.testtkt2251.testtkt2285.testtkt2332.testtkt2339.testtkt2391.testtkt2409.testtkt2450.testtkt2565.testtkt2640.testtkt2643.testtkt2686.testtkt2767.testtkt2817.testtkt2820.testtkt2822.testtkt2832.testtkt2854.testtkt2920.testtkt2927.testtkt2942.testtkt3080.testtkt3093.testtkt3121.testtkt3201.testtkt3292.testtkt3298.testtkt3334.testtkt3346.testtkt3357.testtkt3419.testtkt3424.testtkt3442.testtkt3457.testtkt3461.testtkt3493.testtkt3508.testtkt3522.testtkt3527.testtkt3541.testtkt3554.testtkt3581.testtkt35xx.testtkt3630.testtkt3718.testtkt3731.testtkt3757.testtkt3761.testtkt3762.testtkt3773.testtkt3791.testtkt3793.testtkt3810.testtkt3824.testtkt3832.testtkt3838.testtkt3841.testtkt3871.testtkt3879.testtkt3911.testtkt3918.testtkt3922.testtkt3929.testtkt3935.testtkt3992.testtkt3997.testtkt4018.testtokenize.testtpch01.testtrace.testtrace2.testtrace3.testtrans.testtrans2.testtrans3.testtransitive1.testtrigger1.testtrigger2.testtrigger3.testtrigger4.testtrigger5.testtrigger6.testtrigger7.testtrigger8.testtrigger9.testtriggerA.testtriggerB.testtriggerC.testtriggerD.testtriggerE.testtriggerF.testtriggerG.testtriggerupfrom.testtrustschema1.testtt3_checkpoint.ctt3_index.ctt3_lookaside1.ctt3_shared.ctt3_stress.ctt3_vacuum.ctypes.testtypes2.testtypes3.testunionall.testunionall2.testunionallfault.testunionvtab.testunionvtabfault.testunique.testunique2.testunixexcl.testunordered.testupdate.testupdate2.testupfrom1.tclupfrom1.testupfrom2.testupfrom3.testupfromfault.testupsert1.testupsert2.testupsert3.testupsert4.testupsert5.testupsertfault.testuri.testuri2.testuserauth01.testutf16align.testvacuum-into.testvacuum.testvacuum2.testvacuum3.testvacuum4.testvacuum5.testvacuum6.testvacuummem.testvarint.testveryquick.testview.testview2.testvtab1.testvtab2.testvtab3.testvtab4.testvtab5.testvtab6.testvtab7.testvtab8.testvtab9.testvtabA.testvtabB.testvtabC.testvtabD.testvtabE.testvtabF.testvtabH.testvtabI.testvtabJ.testvtab_alter.testvtab_err.testvtab_shared.testvtabdrop.testwal.testwal2.testwal3.testwal4.testwal5.testwal6.testwal64k.testwal7.testwal8.testwal9.testwal_common.tclwalbak.testwalbig.testwalblock.testwalcksum.testwalcrash.testwalcrash2.testwalcrash3.testwalcrash4.testwalfault.testwalfault2.testwalhook.testwalmode.testwalnoshm.testwaloverwrite.testwalpersist.testwalprotocol.testwalprotocol2.testwalro.testwalro2.testwalrofault.testwalsetlk.testwalshared.testwalslow.testwalthread.testwalvfs.testwapp.tclwapptest.tclwhere.testwhere2.testwhere3.testwhere4.testwhere5.testwhere6.testwhere7.testwhere8.testwhere9.testwhereA.testwhereB.testwhereC.testwhereD.testwhereE.testwhereF.testwhereG.testwhereH.testwhereI.testwhereJ.testwhereK.testwhereL.testwhereM.testwherefault.testwherelfault.testwherelimit.testwherelimit2.testwin32heap.testwin32lock.testwin32longpath.testwin32nolock.testwindow1.testwindow2.tclwindow2.testwindow3.tclwindow3.testwindow4.tclwindow4.testwindow5.testwindow6.testwindow7.tclwindow7.testwindow8.tclwindow8.testwindow9.testwindowA.testwindowB.testwindowerr.tclwindowerr.testwindowfault.testwindowpushd.testwith1.testwith2.testwith3.testwith4.testwith5.testwith6.testwithM.testwithout_rowid1.testwithout_rowid2.testwithout_rowid3.testwithout_rowid4.testwithout_rowid5.testwithout_rowid6.testwithout_rowid7.testwordcount.cwritecrash.testzeroblob.testzerodamage.testzipfile.testzipfile2.testzipfilefault.test
3.37.0
tcl
8_3_names.testaffinity2.testaffinity3.testaggerror.testaggnested.testalias.testall.testalter.testalter2.testalter3.testalter4.testalterauth.testalterauth2.testaltercol.testaltercorrupt.testalterdropcol.testalterdropcol2.testalterfault.testalterlegacy.testaltermalloc.testaltermalloc2.testaltermalloc3.testalterqf.testaltertab.testaltertab2.testaltertab3.testamatch1.testanalyze.testanalyze3.testanalyze4.testanalyze5.testanalyze6.testanalyze7.testanalyze8.testanalyze9.testanalyzeC.testanalyzeD.testanalyzeE.testanalyzeF.testanalyzeG.testanalyzer1.testasync.testasync2.testasync3.testasync4.testasync5.testatof1.testatomic.testatomic2.testatrc.cattach.testattach2.testattach3.testattach4.testattachmalloc.testauth.testauth2.testauth3.testautoanalyze1.testautoinc.testautoindex1.testautoindex2.testautoindex3.testautoindex4.testautoindex5.testautovacuum.testautovacuum2.testautovacuum_ioerr2.testavfs.testavtrans.testbackcompat.testbackup.testbackup2.testbackup4.testbackup5.testbackup_ioerr.testbackup_malloc.testbadutf.testbadutf2.testbc_common.tclbestindex1.testbestindex2.testbestindex3.testbestindex4.testbestindex5.testbestindex6.testbestindex7.testbetween.testbigfile.testbigfile2.testbigmmap.testbigrow.testbigsort.testbind.testbindxfer.testbitvec.testblob.testboundary1.tclboundary1.testboundary2.tclboundary2.testboundary3.tclboundary3.testboundary4.tclboundary4.testbtree01.testbtree02.testbtreefault.testbusy.testbusy2.testcache.testcacheflush.testcachespill.testcapi2.testcapi3.testcapi3b.testcapi3c.testcapi3d.testcapi3e.testcarray01.testcast.testcffault.testchanges.testcheck.testcheckfault.testchunksize.testclose.testclosure01.testcoalesce.testcollate1.testcollate2.testcollate3.testcollate4.testcollate5.testcollate6.testcollate7.testcollate8.testcollate9.testcollateA.testcollateB.testcolmeta.testcolname.testcolumncount.testconflict.testconflict2.testconflict3.testcontrib01.testcorrupt.testcorrupt2.testcorrupt3.testcorrupt4.testcorrupt5.testcorrupt6.testcorrupt7.testcorrupt8.testcorrupt9.testcorruptA.testcorruptB.testcorruptC.testcorruptD.testcorruptE.testcorruptF.testcorruptG.testcorruptH.testcorruptI.testcorruptJ.testcorruptK.testcorruptL.testcorruptM.testcorruptN.testcost.testcount.testcountofview.testcoveridxscan.testcrash.testcrash2.testcrash3.testcrash4.testcrash5.testcrash6.testcrash7.testcrash8.testcrashM.testcrashtest1.ccreatetab.testcse.testcsv01.testctime.testcursorhint.testcursorhint2.testdataversion1.testdate.testdate2.testdbdata.testdbfuzz.cdbfuzz001.testdbfuzz2-seed1.dbdbfuzz2.cdbpage.testdbstatus.testdbstatus2.testdecimal.testdefault.testdelete.testdelete2.testdelete3.testdelete4.testdelete_db.testdescidx1.testdescidx2.testdescidx3.testdiskfull.testdistinct.testdistinct2.testdistinctagg.teste_blobbytes.teste_blobclose.teste_blobopen.teste_blobwrite.teste_changes.teste_createtable.teste_delete.teste_droptrigger.teste_dropview.teste_expr.teste_fkey.teste_fts3.teste_insert.teste_reindex.teste_resolve.teste_select.teste_select2.teste_totalchanges.teste_update.teste_uri.teste_vacuum.teste_wal.teste_walauto.teste_walckpt.teste_walhook.testemptytable.testenc.testenc2.testenc3.testenc4.testeqp.testerrmsg.testeval.testexclusive.testexclusive2.testexec.testexists.testexists2.testexistsfault.testexpr.testexpr2.testexprfault.testextension01.testexternal_reader.testextraquick.testfallocate.testfilectrl.testfilefmt.testfilter1.testfilter2.tclfilter2.testfilterfault.testfkey1.testfkey2.testfkey3.testfkey4.testfkey5.testfkey6.testfkey7.testfkey8.testfkey_malloc.testfordelete.testformat4.testfts-9fd058691.testfts1a.testfts1b.testfts1c.testfts1d.testfts1e.testfts1f.testfts1i.testfts1j.testfts1k.testfts1l.testfts1m.testfts1n.testfts1o.testfts1porter.testfts2.testfts2a.testfts2b.testfts2c.testfts2d.testfts2e.testfts2f.testfts2g.testfts2h.testfts2i.testfts2j.testfts2k.testfts2l.testfts2m.testfts2n.testfts2o.testfts2p.testfts2q.testfts2r.testfts2token.testfts3.testfts3_common.tclfts3aa.testfts3ab.testfts3ac.testfts3ad.testfts3ae.testfts3af.testfts3ag.testfts3ah.testfts3ai.testfts3aj.testfts3ak.testfts3al.testfts3am.testfts3an.testfts3ao.testfts3atoken.testfts3auto.testfts3aux1.testfts3aux2.testfts3b.testfts3c.testfts3comp1.testfts3conf.testfts3corrupt.testfts3corrupt2.testfts3corrupt3.testfts3corrupt4.testfts3corrupt5.testfts3corrupt6.testfts3cov.testfts3d.testfts3defer.testfts3defer2.testfts3defer3.testfts3drop.testfts3e.testfts3expr.testfts3expr2.testfts3expr3.testfts3expr4.testfts3expr5.testfts3f.testfts3fault.testfts3fault2.testfts3first.testfts3fuzz001.testfts3join.testfts3malloc.testfts3matchinfo.testfts3matchinfo2.testfts3misc.testfts3near.testfts3offsets.testfts3prefix.testfts3prefix2.testfts3query.testfts3rank.testfts3rnd.testfts3shared.testfts3snippet.testfts3snippet2.testfts3sort.testfts3tok1.testfts3tok_err.testfts3varint.testfts4aa.testfts4check.testfts4content.testfts4docid.testfts4growth.testfts4growth2.testfts4incr.testfts4langid.testfts4lastrowid.testfts4merge.testfts4merge2.testfts4merge3.testfts4merge4.testfts4merge5.testfts4min.testfts4noti.testfts4onepass.testfts4opt.testfts4record.testfts4rename.testfts4umlaut.testfts4unicode.testfts4upfrom.testfull.testfunc.testfunc2.testfunc3.testfunc4.testfunc5.testfunc6.testfunc7.testfuzz-oss1.testfuzz.testfuzz2.testfuzz3.testfuzz4.testfuzz_common.tclfuzz_malloc.testfuzzcheck.cfuzzdata1.dbfuzzdata2.dbfuzzdata3.dbfuzzdata4.dbfuzzdata5.dbfuzzdata6.dbfuzzdata7.dbfuzzdata8.dbfuzzer1.testfuzzer2.testfuzzerfault.testgcfault.testgencol1.testgenesis.tclhaving.testhexlit.testhidden.testhook.testhook2.testicu.testieee754.testimposter1.testin.testin2.testin3.testin4.testin5.testin6.testincrblob.testincrblob2.testincrblob3.testincrblob4.testincrblob_err.testincrblobfault.testincrcorrupt.testincrvacuum.testincrvacuum2.testincrvacuum3.testincrvacuum_ioerr.testindex.testindex2.testindex3.testindex4.testindex5.testindex6.testindex7.testindex8.testindex9.testindexedby.testindexexpr1.testindexexpr2.testindexfault.testinit.testinsert.testinsert2.testinsert3.testinsert4.testinsert5.testinsertfault.testinstr.testinstrfault.testintarray.testinterrupt.testinterrupt2.testintpkey.testintreal.testio.testioerr.testioerr2.testioerr3.testioerr4.testioerr5.testioerr6.testistrue.testjoin.testjoin2.testjoin3.testjoin4.testjoin5.testjoin6.testjournal1.testjournal2.testjournal3.testjrnlmode.testjrnlmode2.testjrnlmode3.testjson101.testjson102.testjson103.testjson104.testjson105.testkeyword1.testkvtest.clastinsert.testlaststmtchanges.testlemon-test01.ylike.testlike2.testlike3.testlimit.testlimit2.testloadext.testloadext2.testlock.testlock2.testlock3.testlock4.testlock5.testlock6.testlock7.testlock_common.tcllookaside.testmain.testmake-where7.tclmalloc.testmalloc3.testmalloc4.testmalloc5.testmalloc6.testmalloc7.testmalloc8.testmalloc9.testmallocA.testmallocAll.testmallocB.testmallocC.testmallocD.testmallocE.testmallocF.testmallocG.testmallocH.testmallocI.testmallocJ.testmallocK.testmallocL.testmallocM.testmalloc_common.tclmalloctraceviewer.tclmanydb.testmem5.testmemdb.testmemdb1.testmemjournal.testmemleak.testmemsubsys1.testmemsubsys2.testminmax.testminmax2.testminmax3.testminmax4.testmisc1.testmisc2.testmisc3.testmisc4.testmisc5.testmisc6.testmisc7.testmisc8.testmisuse.testmjournal.testmmap1.testmmap2.testmmap3.testmmap4.testmmapfault.testmmapwarm.testmultiplex.testmultiplex2.testmultiplex3.testmultiplex4.testmutex1.testmutex2.testnan.testnockpt.testnolock.testnormalize.testnotify1.testnotify2.testnotify3.testnotnull.testnotnull2.testnotnullfault.testnull.testnulls1.testnumcast.testnumindex1.testoffset1.testopenv2.testoptfuzz-db01.coptfuzz-db01.txtoptfuzz.corderby1.testorderby2.testorderby3.testorderby4.testorderby5.testorderby6.testorderby7.testorderby8.testorderby9.testorderbyA.testoserror.testossfuzz.cossshell.covfl.testpager1.testpager2.testpager3.testpager4.testpagerfault.testpagerfault2.testpagerfault3.testpageropt.testpagesize.testparser1.testpcache.testpcache2.testpercentile.testpermutations.testpg_common.tclpragma.testpragma2.testpragma3.testpragma4.testpragma5.testpragmafault.testprefixes.testprintf.testprintf2.testprogress.testptrchng.testpushdown.testqueryonly.testquick.testquota-glob.testquota.testquota2.testquote.testrandexpr1.tclrandexpr1.testrbu.testrdonly.testrecover.testregexp1.testregexp2.testreindex.testreleasetest.tclreleasetest_data.tclresetdb.testresolver01.testreturning1.testrollback.testrollback2.testrollbackfault.testround1.testrowallock.testrowhash.testrowid.testrowvalue.testrowvalue2.testrowvalue3.testrowvalue4.testrowvalue5.testrowvalue6.testrowvalue7.testrowvalue8.testrowvalue9.testrowvalueA.testrowvaluefault.testrowvaluevtab.testrtree.testrun-wordcount.shsavepoint.testsavepoint2.testsavepoint4.testsavepoint5.testsavepoint6.testsavepoint7.testsavepointfault.testscanstatus.testschema.testschema2.testschema3.testschema4.testschema5.testschema6.testschemafault.testsecuredel.testsecuredel2.testselect1.testselect2.testselect3.testselect4.testselect5.testselect6.testselect7.testselect8.testselect9.testselectA.testselectB.testselectC.testselectD.testselectE.testselectF.testselectG.testserver1.testsession.testsessionfuzz-data1.dbsessionfuzz.cshared.testshared2.testshared3.testshared4.testshared6.testshared7.testshared8.testshared9.testsharedA.testsharedB.testshared_err.testsharedlock.testshell1.testshell2.testshell3.testshell4.testshell5.testshell6.testshell7.testshell8.testshmlock.testshortread1.testshow_speedtest1_rtree.tclshrink.testsidedelete.testskipscan1.testskipscan2.testskipscan3.testskipscan5.testskipscan6.testsnapshot.testsnapshot2.testsnapshot3.testsnapshot4.testsnapshot_fault.testsnapshot_up.testsoak.testsoftheap1.testsort.testsort2.testsort3.testsort4.testsort5.testsorterref.testsortfault.testspeed1.testspeed1p.explainspeed1p.testspeed2.testspeed3.testspeed4.testspeed4p.explainspeed4p.testspeedtest1.cspellfix.testspellfix2.testspellfix3.testspellfix4.testsqldiff1.testsqllimits1.testsqllog.teststartup.cstat.teststatfault.teststmt.teststmtvtab1.teststrict1.teststrict2.testsubjournal.testsubquery.testsubquery2.testsubselect.testsubstr.testsubtype1.testsuperlock.testswarmvtab.testswarmvtab2.testswarmvtab3.testswarmvtabfault.testsymlink.testsymlink2.testsync.testsync2.testsyscall.testsysfault.testtabfunc01.testtable.testtableapi.testtableopts.testtclsqlite.testtempdb.testtempdb2.testtempfault.testtemptable.testtemptable2.testtemptable3.testtemptrigger.testtester.tclthread001.testthread002.testthread003.testthread004.testthread005.testthread1.testthread2.testthread_common.tclthreadtest1.cthreadtest2.cthreadtest3.cthreadtest4.cthreadtest5.ctime-wordcount.shtkt-02a8e81d44.testtkt-18458b1a.testtkt-26ff0c2d1e.testtkt-2a5629202f.testtkt-2d1a5c67d.testtkt-2ea2425d34.testtkt-31338dca7e.testtkt-313723c356.testtkt-385a5b56b9.testtkt-38cb5df375.testtkt-3998683a16.testtkt-3a77c9714e.testtkt-3fe897352e.testtkt-4a03edc4c8.testtkt-4c86b126f2.testtkt-4dd95f6943.testtkt-4ef7e3cfca.testtkt-54844eea3f.testtkt-5d863f876e.testtkt-5e10420e8d.testtkt-5ee23731f.testtkt-6bfb98dfc0.testtkt-752e1646fc.testtkt-78e04e52ea.testtkt-7a31705a7e6.testtkt-7bbfb7d442.testtkt-80ba201079.testtkt-80e031a00f.testtkt-8454a207b9.testtkt-868145d012.testtkt-8c63ff0ec.testtkt-91e2e8ba6f.testtkt-94c04eaadb.testtkt-9a8b09f8e6.testtkt-9d68c883.testtkt-9f2eb3abac.testtkt-a7b7803e.testtkt-a7debbe0.testtkt-a8a0d2996a.testtkt-b1d3a2e531.testtkt-b351d95f9.testtkt-b72787b1.testtkt-b75a9ca6b0.testtkt-ba7cbfaedc.testtkt-bd484a090c.testtkt-bdc6bbbb38.testtkt-c48d99d690.testtkt-c694113d5.testtkt-cbd054fa6b.testtkt-d11f09d36e.testtkt-d635236375.testtkt-d82e3f3721.testtkt-f3e5abed55.testtkt-f67b41381a.testtkt-f777251dc7a.testtkt-f7b4edec.testtkt-f973c7ac31.testtkt-fa7bf5ec.testtkt-fc62af4523.testtkt-fc7bd6358f.testtkt1435.testtkt1443.testtkt1444.testtkt1449.testtkt1473.testtkt1501.testtkt1512.testtkt1514.testtkt1536.testtkt1537.testtkt1567.testtkt1644.testtkt1667.testtkt1873.testtkt2141.testtkt2192.testtkt2213.testtkt2251.testtkt2285.testtkt2332.testtkt2339.testtkt2391.testtkt2409.testtkt2450.testtkt2565.testtkt2640.testtkt2643.testtkt2686.testtkt2767.testtkt2817.testtkt2820.testtkt2822.testtkt2832.testtkt2854.testtkt2920.testtkt2927.testtkt2942.testtkt3080.testtkt3093.testtkt3121.testtkt3201.testtkt3292.testtkt3298.testtkt3334.testtkt3346.testtkt3357.testtkt3419.testtkt3424.testtkt3442.testtkt3457.testtkt3461.testtkt3493.testtkt3508.testtkt3522.testtkt3527.testtkt3541.testtkt3554.testtkt3581.testtkt35xx.testtkt3630.testtkt3718.testtkt3731.testtkt3757.testtkt3761.testtkt3762.testtkt3773.testtkt3791.testtkt3793.testtkt3810.testtkt3824.testtkt3832.testtkt3838.testtkt3841.testtkt3871.testtkt3879.testtkt3911.testtkt3918.testtkt3922.testtkt3929.testtkt3935.testtkt3992.testtkt3997.testtkt4018.testtokenize.testtpch01.testtrace.testtrace2.testtrace3.testtrans.testtrans2.testtrans3.testtransitive1.testtrigger1.testtrigger2.testtrigger3.testtrigger4.testtrigger5.testtrigger6.testtrigger7.testtrigger8.testtrigger9.testtriggerA.testtriggerB.testtriggerC.testtriggerD.testtriggerE.testtriggerF.testtriggerG.testtriggerupfrom.testtrustschema1.testtt3_checkpoint.ctt3_index.ctt3_lookaside1.ctt3_shared.ctt3_stress.ctt3_vacuum.ctypes.testtypes2.testtypes3.testunionall.testunionall2.testunionallfault.testunionvtab.testunionvtabfault.testunique.testunique2.testunixexcl.testunordered.testupdate.testupdate2.testupfrom1.tclupfrom1.testupfrom2.testupfrom3.testupfromfault.testupsert1.testupsert2.testupsert3.testupsert4.testupsert5.testupsertfault.testuri.testuri2.testuserauth01.testutf16align.testvacuum-into.testvacuum.testvacuum2.testvacuum3.testvacuum4.testvacuum5.testvacuum6.testvacuummem.testvarint.testveryquick.testview.testview2.testvtab1.testvtab2.testvtab3.testvtab4.testvtab5.testvtab6.testvtab7.testvtab8.testvtab9.testvtabA.testvtabB.testvtabC.testvtabD.testvtabE.testvtabF.testvtabH.testvtabI.testvtabJ.testvtabK.testvtab_alter.testvtab_err.testvtab_shared.testvtabdrop.testwal.testwal2.testwal3.testwal4.testwal5.testwal6.testwal64k.testwal7.testwal8.testwal9.testwal_common.tclwalbak.testwalbig.testwalblock.testwalcksum.testwalcrash.testwalcrash2.testwalcrash3.testwalcrash4.testwalfault.testwalfault2.testwalhook.testwalmode.testwalnoshm.testwaloverwrite.testwalpersist.testwalprotocol.testwalprotocol2.testwalro.testwalro2.testwalrofault.testwalsetlk.testwalshared.testwalslow.testwalthread.testwalvfs.testwapp.tclwapptest.tclwhere.testwhere2.testwhere3.testwhere4.testwhere5.testwhere6.testwhere7.testwhere8.testwhere9.testwhereA.testwhereB.testwhereC.testwhereD.testwhereE.testwhereF.testwhereG.testwhereH.testwhereI.testwhereJ.testwhereK.testwhereL.testwhereM.testwherefault.testwherelfault.testwherelimit.testwherelimit2.testwin32heap.testwin32lock.testwin32longpath.testwin32nolock.testwindow1.testwindow2.tclwindow2.testwindow3.tclwindow3.testwindow4.tclwindow4.testwindow5.testwindow6.testwindow7.tclwindow7.testwindow8.tclwindow8.testwindow9.testwindowA.testwindowB.testwindowC.testwindowerr.tclwindowerr.testwindowfault.testwindowpushd.testwith1.testwith2.testwith3.testwith4.testwith5.testwith6.testwithM.testwithout_rowid1.testwithout_rowid2.testwithout_rowid3.testwithout_rowid4.testwithout_rowid5.testwithout_rowid6.testwithout_rowid7.testwordcount.cwritecrash.testzeroblob.testzeroblobfault.testzerodamage.testzipfile.testzipfile2.testzipfilefault.test
592
testdata/tcl/fts3snippet.test
vendored
592
testdata/tcl/fts3snippet.test
vendored
@ -1,592 +0,0 @@
|
||||
# 2010 January 07
|
||||
#
|
||||
# The author disclaims copyright to this source code. In place of
|
||||
# a legal notice, here is a blessing:
|
||||
#
|
||||
# May you do good and not evil.
|
||||
# May you find forgiveness for yourself and forgive others.
|
||||
# May you share freely, never taking more than you give.
|
||||
#
|
||||
#*************************************************************************
|
||||
#
|
||||
# The tests in this file test the FTS3 auxillary functions offsets(),
|
||||
# snippet() and matchinfo() work. At time of writing, running this file
|
||||
# provides full coverage of fts3_snippet.c.
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
set testprefix fts3snippet
|
||||
|
||||
# If SQLITE_ENABLE_FTS3 is not defined, omit this file.
|
||||
ifcapable !fts3 { finish_test ; return }
|
||||
source $testdir/fts3_common.tcl
|
||||
|
||||
set sqlite_fts3_enable_parentheses 1
|
||||
set DO_MALLOC_TEST 0
|
||||
|
||||
# Transform the list $L to its "normal" form. So that it can be compared to
|
||||
# another list with the same set of elements using [string compare].
|
||||
#
|
||||
proc normalize {L} {
|
||||
set ret [list]
|
||||
foreach l $L {lappend ret $l}
|
||||
return $ret
|
||||
}
|
||||
|
||||
proc do_offsets_test {name expr args} {
|
||||
set result [list]
|
||||
foreach a $args {
|
||||
lappend result [normalize $a]
|
||||
}
|
||||
do_select_test $name {
|
||||
SELECT offsets(ft) FROM ft WHERE ft MATCH $expr
|
||||
} $result
|
||||
}
|
||||
|
||||
# Document text used by a few tests. Contains the English names of all
|
||||
# integers between 1 and 300.
|
||||
#
|
||||
set numbers [normalize {
|
||||
one two three four five six seven eight nine ten eleven twelve thirteen
|
||||
fourteen fifteen sixteen seventeen eighteen nineteen twenty twentyone
|
||||
twentytwo twentythree twentyfour twentyfive twentysix twentyseven
|
||||
twentyeight twentynine thirty thirtyone thirtytwo thirtythree thirtyfour
|
||||
thirtyfive thirtysix thirtyseven thirtyeight thirtynine forty fortyone
|
||||
fortytwo fortythree fortyfour fortyfive fortysix fortyseven fortyeight
|
||||
fortynine fifty fiftyone fiftytwo fiftythree fiftyfour fiftyfive fiftysix
|
||||
fiftyseven fiftyeight fiftynine sixty sixtyone sixtytwo sixtythree sixtyfour
|
||||
sixtyfive sixtysix sixtyseven sixtyeight sixtynine seventy seventyone
|
||||
seventytwo seventythree seventyfour seventyfive seventysix seventyseven
|
||||
seventyeight seventynine eighty eightyone eightytwo eightythree eightyfour
|
||||
eightyfive eightysix eightyseven eightyeight eightynine ninety ninetyone
|
||||
ninetytwo ninetythree ninetyfour ninetyfive ninetysix ninetyseven
|
||||
ninetyeight ninetynine onehundred onehundredone onehundredtwo
|
||||
onehundredthree onehundredfour onehundredfive onehundredsix onehundredseven
|
||||
onehundredeight onehundrednine onehundredten onehundredeleven
|
||||
onehundredtwelve onehundredthirteen onehundredfourteen onehundredfifteen
|
||||
onehundredsixteen onehundredseventeen onehundredeighteen onehundrednineteen
|
||||
onehundredtwenty onehundredtwentyone onehundredtwentytwo
|
||||
onehundredtwentythree onehundredtwentyfour onehundredtwentyfive
|
||||
onehundredtwentysix onehundredtwentyseven onehundredtwentyeight
|
||||
onehundredtwentynine onehundredthirty onehundredthirtyone
|
||||
onehundredthirtytwo onehundredthirtythree onehundredthirtyfour
|
||||
onehundredthirtyfive onehundredthirtysix onehundredthirtyseven
|
||||
onehundredthirtyeight onehundredthirtynine onehundredforty
|
||||
onehundredfortyone onehundredfortytwo onehundredfortythree
|
||||
onehundredfortyfour onehundredfortyfive onehundredfortysix
|
||||
onehundredfortyseven onehundredfortyeight onehundredfortynine
|
||||
onehundredfifty onehundredfiftyone onehundredfiftytwo onehundredfiftythree
|
||||
onehundredfiftyfour onehundredfiftyfive onehundredfiftysix
|
||||
onehundredfiftyseven onehundredfiftyeight onehundredfiftynine
|
||||
onehundredsixty onehundredsixtyone onehundredsixtytwo onehundredsixtythree
|
||||
onehundredsixtyfour onehundredsixtyfive onehundredsixtysix
|
||||
onehundredsixtyseven onehundredsixtyeight onehundredsixtynine
|
||||
onehundredseventy onehundredseventyone onehundredseventytwo
|
||||
onehundredseventythree onehundredseventyfour onehundredseventyfive
|
||||
onehundredseventysix onehundredseventyseven onehundredseventyeight
|
||||
onehundredseventynine onehundredeighty onehundredeightyone
|
||||
onehundredeightytwo onehundredeightythree onehundredeightyfour
|
||||
onehundredeightyfive onehundredeightysix onehundredeightyseven
|
||||
onehundredeightyeight onehundredeightynine onehundredninety
|
||||
onehundredninetyone onehundredninetytwo onehundredninetythree
|
||||
onehundredninetyfour onehundredninetyfive onehundredninetysix
|
||||
onehundredninetyseven onehundredninetyeight onehundredninetynine twohundred
|
||||
twohundredone twohundredtwo twohundredthree twohundredfour twohundredfive
|
||||
twohundredsix twohundredseven twohundredeight twohundrednine twohundredten
|
||||
twohundredeleven twohundredtwelve twohundredthirteen twohundredfourteen
|
||||
twohundredfifteen twohundredsixteen twohundredseventeen twohundredeighteen
|
||||
twohundrednineteen twohundredtwenty twohundredtwentyone twohundredtwentytwo
|
||||
twohundredtwentythree twohundredtwentyfour twohundredtwentyfive
|
||||
twohundredtwentysix twohundredtwentyseven twohundredtwentyeight
|
||||
twohundredtwentynine twohundredthirty twohundredthirtyone
|
||||
twohundredthirtytwo twohundredthirtythree twohundredthirtyfour
|
||||
twohundredthirtyfive twohundredthirtysix twohundredthirtyseven
|
||||
twohundredthirtyeight twohundredthirtynine twohundredforty
|
||||
twohundredfortyone twohundredfortytwo twohundredfortythree
|
||||
twohundredfortyfour twohundredfortyfive twohundredfortysix
|
||||
twohundredfortyseven twohundredfortyeight twohundredfortynine
|
||||
twohundredfifty twohundredfiftyone twohundredfiftytwo twohundredfiftythree
|
||||
twohundredfiftyfour twohundredfiftyfive twohundredfiftysix
|
||||
twohundredfiftyseven twohundredfiftyeight twohundredfiftynine
|
||||
twohundredsixty twohundredsixtyone twohundredsixtytwo twohundredsixtythree
|
||||
twohundredsixtyfour twohundredsixtyfive twohundredsixtysix
|
||||
twohundredsixtyseven twohundredsixtyeight twohundredsixtynine
|
||||
twohundredseventy twohundredseventyone twohundredseventytwo
|
||||
twohundredseventythree twohundredseventyfour twohundredseventyfive
|
||||
twohundredseventysix twohundredseventyseven twohundredseventyeight
|
||||
twohundredseventynine twohundredeighty twohundredeightyone
|
||||
twohundredeightytwo twohundredeightythree twohundredeightyfour
|
||||
twohundredeightyfive twohundredeightysix twohundredeightyseven
|
||||
twohundredeightyeight twohundredeightynine twohundredninety
|
||||
twohundredninetyone twohundredninetytwo twohundredninetythree
|
||||
twohundredninetyfour twohundredninetyfive twohundredninetysix
|
||||
twohundredninetyseven twohundredninetyeight twohundredninetynine
|
||||
threehundred
|
||||
}]
|
||||
|
||||
foreach {DO_MALLOC_TEST enc} {
|
||||
0 utf8
|
||||
1 utf8
|
||||
1 utf16
|
||||
} {
|
||||
|
||||
db close
|
||||
forcedelete test.db
|
||||
sqlite3 db test.db
|
||||
sqlite3_db_config_lookaside db 0 0 0
|
||||
db eval "PRAGMA encoding = \"$enc\""
|
||||
|
||||
# Set variable $T to the test name prefix for this iteration of the loop.
|
||||
#
|
||||
set T "fts3snippet-1.$enc"
|
||||
|
||||
##########################################################################
|
||||
# Test the offset function.
|
||||
#
|
||||
do_test $T.1.1 {
|
||||
execsql {
|
||||
CREATE VIRTUAL TABLE ft USING fts3;
|
||||
INSERT INTO ft VALUES('xxx xxx xxx xxx');
|
||||
}
|
||||
} {}
|
||||
do_offsets_test $T.1.2 {xxx} {0 0 0 3 0 0 4 3 0 0 8 3 0 0 12 3}
|
||||
do_offsets_test $T.1.3 {"xxx xxx"} {
|
||||
0 0 0 3 0 0 4 3 0 1 4 3 0 0 8 3
|
||||
0 1 8 3 0 1 12 3
|
||||
}
|
||||
do_offsets_test $T.1.4 {"xxx xxx" xxx} {
|
||||
0 0 0 3 0 2 0 3 0 0 4 3 0 1 4 3
|
||||
0 2 4 3 0 0 8 3 0 1 8 3 0 2 8 3
|
||||
0 1 12 3 0 2 12 3
|
||||
}
|
||||
do_offsets_test $T.1.5 {xxx "xxx xxx"} {
|
||||
0 0 0 3 0 1 0 3 0 0 4 3 0 1 4 3
|
||||
0 2 4 3 0 0 8 3 0 1 8 3 0 2 8 3
|
||||
0 0 12 3 0 2 12 3
|
||||
}
|
||||
|
||||
do_test $T.2.1 {
|
||||
set v1 [lrange $numbers 0 99]
|
||||
execsql {
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3(a, b);
|
||||
INSERT INTO ft VALUES($v1, $numbers);
|
||||
INSERT INTO ft VALUES($v1, NULL);
|
||||
}
|
||||
} {}
|
||||
|
||||
set off [string first "twohundred " $numbers]
|
||||
do_offsets_test $T.2.1 {twohundred} [list 1 0 $off 10]
|
||||
|
||||
set off [string first "onehundred " $numbers]
|
||||
do_offsets_test $T.2.2 {onehundred} \
|
||||
[list 0 0 $off 10 1 0 $off 10] [list 0 0 $off 10]
|
||||
|
||||
# Test a corruption case:
|
||||
sqlite3_db_config db DEFENSIVE 0
|
||||
execsql { UPDATE ft_content SET c1b = 'hello world' WHERE c1b = $numbers }
|
||||
do_error_test $T.2.3 {
|
||||
SELECT offsets(ft) FROM ft WHERE ft MATCH 'onehundred'
|
||||
} {database disk image is malformed}
|
||||
|
||||
##########################################################################
|
||||
# Test the snippet function.
|
||||
#
|
||||
proc do_snippet_test {name expr iCol nTok args} {
|
||||
set res [list]
|
||||
foreach a $args { lappend res [string trim $a] }
|
||||
do_select_test $name {
|
||||
SELECT snippet(ft,'{','}','...',$iCol,$nTok) FROM ft WHERE ft MATCH $expr
|
||||
} $res
|
||||
}
|
||||
do_test $T.3.1 {
|
||||
execsql {
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3;
|
||||
INSERT INTO ft VALUES('one two three four five six seven eight nine ten');
|
||||
}
|
||||
} {}
|
||||
do_snippet_test $T.3.2 one 0 5 "{one} two three four five..."
|
||||
do_snippet_test $T.3.3 two 0 5 "one {two} three four five..."
|
||||
do_snippet_test $T.3.4 three 0 5 "one two {three} four five..."
|
||||
do_snippet_test $T.3.5 four 0 5 "...two three {four} five six..."
|
||||
do_snippet_test $T.3.6 five 0 5 "...three four {five} six seven..."
|
||||
do_snippet_test $T.3.7 six 0 5 "...four five {six} seven eight..."
|
||||
do_snippet_test $T.3.8 seven 0 5 "...five six {seven} eight nine..."
|
||||
do_snippet_test $T.3.9 eight 0 5 "...six seven {eight} nine ten"
|
||||
do_snippet_test $T.3.10 nine 0 5 "...six seven eight {nine} ten"
|
||||
do_snippet_test $T.3.11 ten 0 5 "...six seven eight nine {ten}"
|
||||
|
||||
do_test $T.4.1 {
|
||||
execsql {
|
||||
INSERT INTO ft VALUES(
|
||||
'one two three four five '
|
||||
|| 'six seven eight nine ten '
|
||||
|| 'eleven twelve thirteen fourteen fifteen '
|
||||
|| 'sixteen seventeen eighteen nineteen twenty '
|
||||
|| 'one two three four five '
|
||||
|| 'six seven eight nine ten '
|
||||
|| 'eleven twelve thirteen fourteen fifteen '
|
||||
|| 'sixteen seventeen eighteen nineteen twenty'
|
||||
);
|
||||
}
|
||||
} {}
|
||||
|
||||
do_snippet_test $T.4.2 {one nine} 0 5 {
|
||||
{one} two three...eight {nine} ten
|
||||
} {
|
||||
{one} two three...eight {nine} ten...
|
||||
}
|
||||
|
||||
do_snippet_test $T.4.3 {one nine} 0 -5 {
|
||||
{one} two three four five...six seven eight {nine} ten
|
||||
} {
|
||||
{one} two three four five...seven eight {nine} ten eleven...
|
||||
}
|
||||
do_snippet_test $T.4.3 {one nineteen} 0 -5 {
|
||||
...eighteen {nineteen} twenty {one} two...
|
||||
}
|
||||
do_snippet_test $T.4.4 {two nineteen} 0 -5 {
|
||||
...eighteen {nineteen} twenty one {two}...
|
||||
}
|
||||
do_snippet_test $T.4.5 {three nineteen} 0 -5 {
|
||||
...{nineteen} twenty one two {three}...
|
||||
}
|
||||
|
||||
do_snippet_test $T.4.6 {four nineteen} 0 -5 {
|
||||
...two three {four} five six...seventeen eighteen {nineteen} twenty one...
|
||||
}
|
||||
do_snippet_test $T.4.7 {four NEAR nineteen} 0 -5 {
|
||||
...seventeen eighteen {nineteen} twenty one...two three {four} five six...
|
||||
}
|
||||
|
||||
do_snippet_test $T.4.8 {four nineteen} 0 5 {
|
||||
...three {four} five...eighteen {nineteen} twenty...
|
||||
}
|
||||
do_snippet_test $T.4.9 {four NEAR nineteen} 0 5 {
|
||||
...eighteen {nineteen} twenty...three {four} five...
|
||||
}
|
||||
do_snippet_test $T.4.10 {four NEAR nineteen} 0 -5 {
|
||||
...seventeen eighteen {nineteen} twenty one...two three {four} five six...
|
||||
}
|
||||
do_snippet_test $T.4.11 {four NOT (nineteen twentyone)} 0 5 {
|
||||
...two three {four} five six...
|
||||
} {
|
||||
...two three {four} five six...
|
||||
}
|
||||
do_snippet_test $T.4.12 {four OR nineteen NEAR twentyone} 0 5 {
|
||||
...two three {four} five six...
|
||||
} {
|
||||
...two three {four} five six...
|
||||
}
|
||||
|
||||
do_test $T.5.1 {
|
||||
execsql {
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3(a, b, c);
|
||||
INSERT INTO ft VALUES(
|
||||
'one two three four five',
|
||||
'four five six seven eight',
|
||||
'seven eight nine ten eleven'
|
||||
);
|
||||
}
|
||||
} {}
|
||||
|
||||
do_snippet_test $T.5.2 {five} -1 3 {...three four {five}}
|
||||
do_snippet_test $T.5.3 {five} 0 3 {...three four {five}}
|
||||
do_snippet_test $T.5.4 {five} 1 3 {four {five} six...}
|
||||
do_snippet_test $T.5.5 {five} 2 3 {seven eight nine...}
|
||||
|
||||
do_test $T.5.6 {
|
||||
execsql { UPDATE ft SET b = NULL }
|
||||
} {}
|
||||
|
||||
do_snippet_test $T.5.7 {five} -1 3 {...three four {five}}
|
||||
do_snippet_test $T.5.8 {five} 0 3 {...three four {five}}
|
||||
do_snippet_test $T.5.9 {five} 1 3 {}
|
||||
do_snippet_test $T.5.10 {five} 2 3 {seven eight nine...}
|
||||
|
||||
do_snippet_test $T.5.11 {one "seven eight nine"} -1 -3 {
|
||||
{one} two three...{seven} {eight} {nine}...
|
||||
}
|
||||
|
||||
do_test $T.6.1 {
|
||||
execsql {
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3(x);
|
||||
INSERT INTO ft VALUES($numbers);
|
||||
}
|
||||
} {}
|
||||
do_snippet_test $T.6.2 {
|
||||
one fifty onehundred onehundredfifty twohundredfifty threehundred
|
||||
} -1 4 {
|
||||
{one}...{fifty}...{onehundred}...{onehundredfifty}...
|
||||
}
|
||||
do_snippet_test $T.6.3 {
|
||||
one fifty onehundred onehundredfifty twohundredfifty threehundred
|
||||
} -1 -4 {
|
||||
{one} two three four...fortyeight fortynine {fifty} fiftyone...ninetyeight ninetynine {onehundred} onehundredone...onehundredfortyeight onehundredfortynine {onehundredfifty} onehundredfiftyone...
|
||||
}
|
||||
|
||||
do_test $T.7.1 {
|
||||
execsql {
|
||||
BEGIN;
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3(x);
|
||||
}
|
||||
set testresults [list]
|
||||
for {set i 1} {$i < 150} {incr i} {
|
||||
set commas [string repeat , $i]
|
||||
execsql {INSERT INTO ft VALUES('one' || $commas || 'two')}
|
||||
lappend testresults "{one}$commas{two}"
|
||||
}
|
||||
execsql COMMIT
|
||||
} {}
|
||||
eval [list do_snippet_test $T.7.2 {one two} -1 3] $testresults
|
||||
|
||||
##########################################################################
|
||||
# Test the matchinfo function.
|
||||
#
|
||||
proc mit {blob} {
|
||||
set scan(littleEndian) i*
|
||||
set scan(bigEndian) I*
|
||||
binary scan $blob $scan($::tcl_platform(byteOrder)) r
|
||||
return $r
|
||||
}
|
||||
db func mit mit
|
||||
proc do_matchinfo_test {name expr args} {
|
||||
set res [list]
|
||||
foreach a $args { lappend res [normalize $a] }
|
||||
do_select_test $name {
|
||||
SELECT mit(matchinfo(ft)) FROM ft WHERE ft MATCH $expr
|
||||
} $res
|
||||
}
|
||||
do_test $T.8.1 {
|
||||
set ten {one two three four five six seven eight nine ten}
|
||||
execsql {
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3;
|
||||
INSERT INTO ft VALUES($ten);
|
||||
INSERT INTO ft VALUES($ten || ' ' || $ten);
|
||||
}
|
||||
} {}
|
||||
|
||||
do_matchinfo_test $T.8.2 "one" {1 1 1 3 2} {1 1 2 3 2}
|
||||
do_matchinfo_test $T.8.3 "one NEAR/3 ten" {2 1 1 1 1 1 1 1}
|
||||
do_matchinfo_test $T.8.4 "five NEAR/4 ten" \
|
||||
{2 1 1 3 2 1 3 2} {2 1 2 3 2 2 3 2}
|
||||
do_matchinfo_test $T.8.5 "six NEAR/3 ten NEAR/3 two" \
|
||||
{3 1 1 1 1 1 1 1 1 1 1}
|
||||
do_matchinfo_test $T.8.6 "five NEAR/4 ten NEAR/3 two" \
|
||||
{3 1 2 2 1 1 1 1 1 1 1}
|
||||
|
||||
do_test $T.9.1 {
|
||||
execsql {
|
||||
DROP TABLE IF EXISTS ft;
|
||||
CREATE VIRTUAL TABLE ft USING fts3(x, y);
|
||||
}
|
||||
foreach n {1 2 3} {
|
||||
set v1 [lrange $numbers 0 [expr $n*100]]
|
||||
set v2 [string trim [string repeat "$numbers " $n]]
|
||||
set docid [expr $n * 1000000]
|
||||
execsql { INSERT INTO ft(docid, x, y) VALUES($docid, $v1, $v2) }
|
||||
}
|
||||
} {}
|
||||
do_matchinfo_test $T.9.2 {two*} \
|
||||
{ 1 2 1 105 3 101 606 3} \
|
||||
{ 1 2 3 105 3 202 606 3} \
|
||||
{ 1 2 101 105 3 303 606 3}
|
||||
|
||||
do_matchinfo_test $T.9.4 {"one* two*"} \
|
||||
{ 1 2 1 5 3 2 12 3} \
|
||||
{ 1 2 2 5 3 4 12 3} \
|
||||
{ 1 2 2 5 3 6 12 3}
|
||||
|
||||
do_matchinfo_test $T.9.5 {twohundredfifty} \
|
||||
{ 1 2 0 1 1 1 6 3} \
|
||||
{ 1 2 0 1 1 2 6 3} \
|
||||
{ 1 2 1 1 1 3 6 3}
|
||||
|
||||
do_matchinfo_test $T.9.6 {"threehundred one"} \
|
||||
{ 1 2 0 0 0 1 3 2} \
|
||||
{ 1 2 0 0 0 2 3 2}
|
||||
|
||||
do_matchinfo_test $T.9.7 {one OR fivehundred} \
|
||||
{ 2 2 1 3 3 1 6 3 0 0 0 0 0 0 } \
|
||||
{ 2 2 1 3 3 2 6 3 0 0 0 0 0 0 } \
|
||||
{ 2 2 1 3 3 3 6 3 0 0 0 0 0 0 }
|
||||
|
||||
do_matchinfo_test $T.9.8 {two OR "threehundred one"} \
|
||||
{ 2 2 1 3 3 1 6 3 0 0 0 0 3 2 } \
|
||||
{ 2 2 1 3 3 2 6 3 0 0 0 1 3 2 } \
|
||||
{ 2 2 1 3 3 3 6 3 0 0 0 2 3 2 }
|
||||
|
||||
do_select_test $T.9.9 {
|
||||
SELECT mit(matchinfo(ft)), mit(matchinfo(ft))
|
||||
FROM ft WHERE ft MATCH 'two OR "threehundred one"'
|
||||
} [normalize {
|
||||
{2 2 1 3 3 1 6 3 0 0 0 0 3 2}
|
||||
{2 2 1 3 3 1 6 3 0 0 0 0 3 2}
|
||||
{2 2 1 3 3 2 6 3 0 0 0 1 3 2}
|
||||
{2 2 1 3 3 2 6 3 0 0 0 1 3 2}
|
||||
{2 2 1 3 3 3 6 3 0 0 0 2 3 2}
|
||||
{2 2 1 3 3 3 6 3 0 0 0 2 3 2}
|
||||
}]
|
||||
|
||||
# EVIDENCE-OF: R-40630-02268 If used within a SELECT that uses the
|
||||
# "query by rowid" or "linear scan" strategies, then the snippet and
|
||||
# offsets both return an empty string, and the matchinfo function
|
||||
# returns a blob value zero bytes in size.
|
||||
#
|
||||
set r 1000000 ;# A rowid that exists in table ft
|
||||
do_select_test $T.10.0 { SELECT rowid FROM ft WHERE rowid = $r } $r
|
||||
do_select_test $T.10.1 {
|
||||
SELECT length(offsets(ft)), typeof(offsets(ft)) FROM ft;
|
||||
} {0 text 0 text 0 text}
|
||||
do_select_test $T.10.2 {
|
||||
SELECT length(offsets(ft)), typeof(offsets(ft)) FROM ft WHERE rowid = $r
|
||||
} {0 text}
|
||||
do_select_test $T.10.3 {
|
||||
SELECT length(snippet(ft)), typeof(snippet(ft)) FROM ft;
|
||||
} {0 text 0 text 0 text}
|
||||
do_select_test $T.10.4 {
|
||||
SELECT length(snippet(ft)), typeof(snippet(ft)) FROM ft WHERE rowid = $r;
|
||||
} {0 text}
|
||||
do_select_test $T.10.5 {
|
||||
SELECT length(matchinfo(ft)), typeof(matchinfo(ft)) FROM ft;
|
||||
} {0 blob 0 blob 0 blob}
|
||||
do_select_test $T.10.6 {
|
||||
SELECT length(matchinfo(ft)), typeof(matchinfo(ft)) FROM ft WHERE rowid = $r
|
||||
} {0 blob}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Test an interaction between the snippet() function and OR clauses.
|
||||
#
|
||||
do_execsql_test 2.1 {
|
||||
CREATE VIRTUAL TABLE t2 USING fts4;
|
||||
INSERT INTO t2 VALUES('one two three four five');
|
||||
INSERT INTO t2 VALUES('two three four five one');
|
||||
INSERT INTO t2 VALUES('three four five one two');
|
||||
INSERT INTO t2 VALUES('four five one two three');
|
||||
INSERT INTO t2 VALUES('five one two three four');
|
||||
}
|
||||
|
||||
do_execsql_test 2.2 {
|
||||
SELECT snippet(t2, '[', ']') FROM t2 WHERE t2 MATCH 'one OR (four AND six)'
|
||||
} {
|
||||
{[one] two three [four] five}
|
||||
{two three [four] five [one]}
|
||||
{three [four] five [one] two}
|
||||
{[four] five [one] two three}
|
||||
{five [one] two three [four]}
|
||||
}
|
||||
|
||||
do_execsql_test 2.3 {
|
||||
SELECT snippet(t2, '[', ']') FROM t2
|
||||
WHERE t2 MATCH 'one OR (four AND six)'
|
||||
ORDER BY docid DESC
|
||||
} {
|
||||
{five [one] two three [four]}
|
||||
{[four] five [one] two three}
|
||||
{three [four] five [one] two}
|
||||
{two three [four] five [one]}
|
||||
{[one] two three [four] five}
|
||||
}
|
||||
|
||||
do_execsql_test 2.4 {
|
||||
INSERT INTO t2 VALUES('six');
|
||||
}
|
||||
|
||||
do_execsql_test 2.5 {
|
||||
SELECT snippet(t2, '[', ']') FROM t2 WHERE t2 MATCH 'one OR (four AND six)'
|
||||
} {
|
||||
{[one] two three [four] five}
|
||||
{two three [four] five [one]}
|
||||
{three [four] five [one] two}
|
||||
{[four] five [one] two three}
|
||||
{five [one] two three [four]}
|
||||
}
|
||||
|
||||
do_execsql_test 2.6 {
|
||||
SELECT snippet(t2, '[', ']') FROM t2
|
||||
WHERE t2 MATCH 'one OR (four AND six)'
|
||||
ORDER BY docid DESC
|
||||
} {
|
||||
{five [one] two three [four]}
|
||||
{[four] five [one] two three}
|
||||
{three [four] five [one] two}
|
||||
{two three [four] five [one]}
|
||||
{[one] two three [four] five}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
do_execsql_test 3 {
|
||||
CREATE VIRTUAL TABLE t3 USING fts4;
|
||||
INSERT INTO t3 VALUES('[one two three]');
|
||||
}
|
||||
do_execsql_test 3.1 {
|
||||
SELECT snippet(t3) FROM t3 WHERE t3 MATCH 'one';
|
||||
} {{[<b>one</b> two three]}}
|
||||
do_execsql_test 3.2 {
|
||||
SELECT snippet(t3) FROM t3 WHERE t3 MATCH 'two';
|
||||
} {{[one <b>two</b> three]}}
|
||||
do_execsql_test 3.3 {
|
||||
SELECT snippet(t3) FROM t3 WHERE t3 MATCH 'three';
|
||||
} {{[one two <b>three</b>]}}
|
||||
do_execsql_test 3.4 {
|
||||
SELECT snippet(t3) FROM t3 WHERE t3 MATCH 'one OR two OR three';
|
||||
} {{[<b>one</b> <b>two</b> <b>three</b>]}}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Request a snippet 0 tokens in size. This is always an empty string.
|
||||
do_execsql_test 4.1 {
|
||||
CREATE VIRTUAL TABLE t4 USING fts4;
|
||||
INSERT INTO t4 VALUES('a b c d');
|
||||
SELECT snippet(t4, '[', ']', '...', 0, 0) FROM t4 WHERE t4 MATCH 'b';
|
||||
} {{}}
|
||||
|
||||
do_test 4.2 {
|
||||
set x35 [string trim [string repeat "x " 35]]
|
||||
execsql "INSERT INTO t4 VALUES('$x35 E $x35 F $x35 G $x35');"
|
||||
llength [db one {
|
||||
SELECT snippet(t4, '', '', '', 0, 64) FROM t4 WHERE t4 MATCH 'E'
|
||||
}]
|
||||
} {64}
|
||||
|
||||
do_test 4.3 {
|
||||
llength [db one {
|
||||
SELECT snippet(t4, '', '', '', 0, 150) FROM t4 WHERE t4 MATCH 'E'
|
||||
}]
|
||||
} {64}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Request a snippet from a query with more than 64 phrases.
|
||||
#
|
||||
do_execsql_test 5.0 {
|
||||
CREATE VIRTUAL TABLE t5 USING fts3(x);
|
||||
INSERT INTO t5 VALUES('a1 a2 a3');
|
||||
INSERT INTO t5 VALUES('a4 a5 a6');
|
||||
INSERT INTO t5 VALUES('a70 a71 a72');
|
||||
}
|
||||
|
||||
do_execsql_test 5.1 {
|
||||
SELECT snippet(t5, '[', ']') FROM t5 WHERE t5 MATCH
|
||||
'a1 OR a2 OR a3 OR a4 OR a5 OR a6 OR a7 OR a8 OR a9 OR a10 OR ' ||
|
||||
'a11 OR a12 OR a13 OR a14 OR a15 OR a16 OR a17 OR a18 OR a19 OR a10 OR ' ||
|
||||
'a21 OR a22 OR a23 OR a24 OR a25 OR a26 OR a27 OR a28 OR a29 OR a20 OR ' ||
|
||||
'a31 OR a32 OR a33 OR a34 OR a35 OR a36 OR a37 OR a38 OR a39 OR a30 OR ' ||
|
||||
'a41 OR a42 OR a43 OR a44 OR a45 OR a46 OR a47 OR a48 OR a49 OR a40 OR ' ||
|
||||
'a51 OR a52 OR a53 OR a54 OR a55 OR a56 OR a57 OR a58 OR a59 OR a50 OR ' ||
|
||||
'a61 OR a62 OR a63 OR a64 OR a65 OR a66 OR a67 OR a68 OR a69 OR a60 OR ' ||
|
||||
'a71 OR a72 OR a73 OR a74 OR a75 OR a76 OR a77 OR a78 OR a79 OR a70'
|
||||
} {
|
||||
{[a1] [a2] [a3]}
|
||||
{[a4] [a5] [a6]}
|
||||
{[a70] [a71] [a72]}
|
||||
}
|
||||
|
||||
set sqlite_fts3_enable_parentheses 0
|
||||
finish_test
|
Reference in New Issue
Block a user