sqlite tests map - AnaNek/tarantool GitHub Wiki

SQLite Test Map

  1. Use branch 'sql'
  2. Build tarantool by
    cmake .
    make

How to run tests

python test-run.py tcl/select1 //run select1.test.lua
python test-run.py select1 select3 where3 //run select1.test.lua, select3.test.lua, where3.test.lua
python test-run.py tcl/select* //run all tcl/select tests

How to add tests

Run "./prepare_tcltest my_test" where my_test is in "third_party/sqlite/test
Run your test: python test-run.py tcl/my_test

How to work from console

  1. Run TARANTOOL_HOME/src/tarantool
  2. In console:
    box.cfg{log_level=7}
    //or any log level that you want r = require('sql')
    c = r.connect('my_table') //here you can write any name, it is not using now
    c:execute('create table t1(a int primary key, b int, c int, d int);')
    c:execute('INSERT INTO t1 VALUES(1,2,3,4);')
    c:execute('INSERT INTO t1 VALUES(2,3,4,5);')
    c:execute('INSERT INTO t1 VALUES(3,4,5,6);')
    c:execute('INSERT INTO t1 VALUES(4,5,6,7);')
    c:execute('INSERT INTO t1 VALUES(5,6,7,8);')
    c:execute('CREATE INDEX t1b ON t1(b); CREATE INDEX t1c ON t1(c);')
    c:execute('SELECT a FROM t1 WHERE b=3 OR c=6')

That is in c:execute(...) method you can execute sql queries.
For explicit access to any index in sql query (for example in 'indexed by' expression) you must use name in following format:
<space_id><index_id><index_name>
For example:
c:execute('create table t1 (a primary key, b)')
c:execute('create index idx1 on t1(b)')
c:execute('drop index "527_1_idx1"') //it is working if id of space 't1' is 527 and id of index 'idx1' is one. You can check this in spaces _space and _index.

Tests coverage

~36504 from 37706 unique tests (~97%) (finished)

Must be okay at all: ~5357
Okay at all: ~19762
Useful coverage: ~78%

8_3_names

Okay Must be okay Can't be okay
0 0 19

affinity2

Okay Must be okay Can't be okay
11 0 0

aggerror, aggnested

Okay Must be okay Can't be okay
15 7 0

alias

Okay Must be okay Can't be okay
0 0 0

alter1 - alter4, altermalloc

Okay Must be okay Can't be okay
34 100 127

amatch1

Okay Must be okay Can't be okay
0 0 8

analyze1 - analyzeF

Okay Must be okay Can't be okay
3 386 56

async1 - async5

Okay Must be okay Can't be okay
0 0 47

atof1

Okay Must be okay Can't be okay
2    |      0       |      0

attach1 - attach4, attachmalloc

Okay Must be okay Can't be okay
0  |      0       |      207

auth1 - auth3

Okay Must be okay Can't be okay
0  |      0       |      365

autoinc

Okay Must be okay Can't be okay
0 49 29

autoindex1 - autoindex5

Okay Must be okay Can't be okay
9  |      15      |      5

autovacuum, autovacuum_ioerr, avtrans

Okay Must be okay Can't be okay
0  |      0       |      190

backcompat

Okay Must be okay Can't be okay
0  |      0       |      52

backup1 - backup5, backup_ioerr, backup_malloc

Okay Must be okay Can't be okay
0  |      0       |      149

badutf1, badutf2

Okay Must be okay Can't be okay
80 0 0

between

Okay Must be okay Can't be okay
12 0 0

bigfile1, bigfile2

Okay Must be okay Can't be okay
0 0 19

bigrow1

Okay Must be okay Can't be okay
61 3 0

bigsort1

Okay Must be okay Can't be okay
0 0 2

bind, bindxfer

Okay Must be okay Can't be okay
98 16 0

bitvec

Okay Must be okay Can't be okay
181 0 0

blob

Okay Must be okay Can't be okay
21 3 0

boundary1 - boundary4

Okay Must be okay Can't be okay
6367 195 0

btree01, btree02, btreefaultsim

Okay Must be okay Can't be okay
0 0 12

busy

Okay Must be okay Can't be okay
7 2 0

cache

Okay Must be okay Can't be okay
138 52 0

capi1 - capi3

Okay Must be okay Can't be okay
0 0 470

cast

Okay Must be okay Can't be okay
93 0 0

check

Okay Must be okay Can't be okay
0 71 0

close

Okay Must be okay Can't be okay
11 0 0

closure01

Okay Must be okay Can't be okay
0 0 18

coalesce

Okay Must be okay Can't be okay
10 0 0

collate1 - collateA, colmeta

Okay Must be okay Can't be okay
0 506 0

colname

Okay Must be okay Can't be okay
26 12 14

conflict, conflict2, conflict3

Okay Must be okay Can't be okay
0 190 0

contrib01

Okay Must be okay Can't be okay
4 0 0

corrupt, corrupt2 - corruptJ

Okay Must be okay Can't be okay
0 0 244

cost

Okay Must be okay Can't be okay
0 0 12

count

Okay Must be okay Can't be okay
21 0 10

coveridxscan

Okay Must be okay Can't be okay
3 0 10

crash, crash2 - crash8, crashM

Okay Must be okay Can't be okay
0 0 97

createtab

Okay Must be okay Can't be okay
0  |      0       |      19

cse

Okay Must be okay Can't be okay
119 0 0

ctime

Okay Must be okay Can't be okay
0  |      0       |      28

date

Okay Must be okay Can't be okay
291 0 0

dbstatus, dbstatus2

Okay Must be okay Can't be okay
0  |      0       |      30

default

Okay Must be okay Can't be okay
0  |      13      |      0

delete, delete2 - delete4

Okay Must be okay Can't be okay
15 3 64

descidx1 - descidx3

Okay Must be okay Can't be okay
0  |      93       |      0

diskfull

Okay Must be okay Can't be okay
0  |      0       |      5

distinct, distinctagg

Okay Must be okay Can't be okay
29 36 2

e_blobbytes, e_blobclose, e_blobopen, e_blobwrite

Okay Must be okay Can't be okay
0  |      0       |      138

e_changes

Okay Must be okay Can't be okay
0 27 0

e_createtable

Okay Must be okay Can't be okay
25 63 73

e_delete

Okay Must be okay Can't be okay
6 13 7

e_droptrigger

Okay Must be okay Can't be okay
0 12 0

e_dropview

Okay Must be okay Can't be okay
0 38 0

e_expr

Okay Must be okay Can't be okay
406 1 0

e_fkey

Okay Must be okay Can't be okay
0 359 0

e_fts3

Okay Must be okay Can't be okay
0 0 188

e_insert

Okay Must be okay Can't be okay
0 23 0

e_reindex

Okay Must be okay Can't be okay
0 0 113

e_resolve

Okay Must be okay Can't be okay
0 0 29

e_select1, e_select2

Okay Must be okay Can't be okay
163 18 4

e_totalchanges

Okay Must be okay Can't be okay
0 28 0

e_update

Okay Must be okay Can't be okay
0 0 39

e_uri

Okay Must be okay Can't be okay
0 0 18

e_vacuum

Okay Must be okay Can't be okay
0 0 40

e_wal, e_walauto, e_walckpt, e_walhook

Okay Must be okay Can't be okay
0 0 122

enc1 - enc4

Okay Must be okay Can't be okay
41 3 63

eqp

Okay Must be okay Can't be okay
51 26 1

errmsg

Okay Must be okay Can't be okay
8 4 0

eval

Okay Must be okay Can't be okay
4 5 0

exclusive, exclusive2

Okay Must be okay Can't be okay
0 0 80

exec

Okay Must be okay Can't be okay
3 0 1

exists

Okay Must be okay Can't be okay
0 18 0

expr

Okay Must be okay Can't be okay
0 536 0

extension01

Okay Must be okay Can't be okay
0 0 1

extraquick

Okay Must be okay Can't be okay
0 0 0

fallocate

Okay Must be okay Can't be okay
0 0 16

filectrl, filefmt

Okay Must be okay Can't be okay
0 0 32

fkey1 - fkey8, fkeymalloc

Okay Must be okay Can't be okay
0 515 7

format4

Okay Must be okay Can't be okay
0 0 3

fts*

Okay Must be okay Can't be okay
0 0 1922

full

Okay Must be okay Can't be okay
0 0 0

func - func5

Okay Must be okay Can't be okay
562 45 6

fuzz1 - fuzz3, fuzz-oss1, fuzzer1, fuzzerfault

Okay Must be okay Can't be okay
0 76 83

hexlit

Okay Must be okay Can't be okay
5 0 0

hook

Okay Must be okay Can't be okay
0 0 32

icu

Okay Must be okay Can't be okay
0 10 0

in1 - in5

Okay Must be okay Can't be okay
194 18 11

incrblob - incrblob4, incrblob_err,fault,vacuum_ioerr,corrupt,vacuum,vacuum2,vacuum3

Okay Must be okay Can't be okay
0 0 339

index1 - index7, indexedby, indexexpr, indexfault

Okay Must be okay Can't be okay
169 77 126

init

Okay Must be okay Can't be okay
0 0 9

insert1 - insert5

Okay Must be okay Can't be okay
38 112 10

instr

Okay Must be okay Can't be okay
66 0 0

intarray

Okay Must be okay Can't be okay
0 0 9

interrupt

Okay Must be okay Can't be okay
0 0 16

intpkey

Okay Must be okay Can't be okay
48 21 24

io

Okay Must be okay Can't be okay
0 0 52

ioerr - ioerr6

Okay Must be okay Can't be okay
0 0 49

join - join6

Okay Must be okay Can't be okay
262 6 9

journal1 - journal3, jrnlmode - jrnl3

Okay Must be okay Can't be okay
0 0 149

json101, json102

Okay Must be okay Can't be okay
0 0 102

keyword1

Okay Must be okay Can't be okay
117 0 0

lastinsert, laststmtchanges

Okay Must be okay Can't be okay
0 0 61

like - like3

Okay Must be okay Can't be okay
354 76 0

limit

Okay Must be okay Can't be okay
101 3 18

loadext - loadext2

Okay Must be okay Can't be okay
0 0 42

lock - lock7

Okay Must be okay Can't be okay
0 0 127

lookaside

Okay Must be okay Can't be okay
0 0 20

main

Okay Must be okay Can't be okay
0 0 98

malloc, malloc3 - mallocL, mallocAll

Okay Must be okay Can't be okay
0 0 217

manydb

Okay Must be okay Can't be okay
0 0 3

mem5

Okay Must be okay Can't be okay
0 0 4

memdb

Okay Must be okay Can't be okay
0 0 33

memleak, memsubsys1, memsubsys2

Okay Must be okay Can't be okay
0 0 59

minmax - minmax4

Okay Must be okay Can't be okay
181 25 27

misc - misc8

Okay Must be okay Can't be okay
126 67 84

misuse

Okay Must be okay Can't be okay
0 0 24

mmap1 - mmap3, mmapfault

Okay Must be okay Can't be okay
0 0 37

multiplex - multiplex4

Okay Must be okay Can't be okay
0 0 153

mutex1, mutex2

Okay Must be okay Can't be okay
0 0 34

nan

Okay Must be okay Can't be okay
43 0 4

nolock

Okay Must be okay Can't be okay
0 0 18

notify1 - notify3

Okay Must be okay Can't be okay
0 0 89

notnull

Okay Must be okay Can't be okay
0 69 0

null

Okay Must be okay Can't be okay
36 2 3

numcast

Okay Must be okay Can't be okay
3 0 0

offset1

Okay Must be okay Can't be okay
23 0 0

openv2

Okay Must be okay Can't be okay
0 0 6

oserror

Okay Must be okay Can't be okay
0 0 8

ovfl

Okay Must be okay Can't be okay
0 0 2

pager1 - pager4, pagerfault - pagerfault3, pageropt, pagesize

Okay Must be okay Can't be okay
0 0 439

parser1

Okay Must be okay Can't be okay
0 0 7

pcache, pcache2

Okay Must be okay Can't be okay
0 0 20

percentile

Okay Must be okay Can't be okay
0 0 24

permutations

Okay Must be okay Can't be okay
0 0 0

pragma - pragma3

Okay Must be okay Can't be okay
0 0 257

printf, printf2

Okay Must be okay Can't be okay
1216 0 0

progress

Okay Must be okay Can't be okay
0 0 11

ptrchng

Okay Must be okay Can't be okay
30 0 0

queryonly

Okay Must be okay Can't be okay
0 0 15

quick

Okay Must be okay Can't be okay
0 0 0

quota-glob

Okay Must be okay Can't be okay
2 0 0

quota, quota2

Okay Must be okay Can't be okay
0 0 142

quote

Okay Must be okay Can't be okay
0 13 0

randexpr1

Okay Must be okay Can't be okay
2601 0 0

rbu

Okay Must be okay Can't be okay
0 0 0

rdonly

Okay Must be okay Can't be okay
0 0 2

regexp

Okay Must be okay Can't be okay
45 0 0

reindex

Okay Must be okay Can't be okay
0 0 19

resolver01

Okay Must be okay Can't be okay
26 1 0

rollback, rollback2, rollbackfault

Okay Must be okay Can't be okay
0 21 0

rowalloc

Okay Must be okay Can't be okay
0 0 6

rowhash

Okay Must be okay Can't be okay
0 0 7

rowid

Okay Must be okay Can't be okay
0 0 128

rtree

Okay Must be okay Can't be okay
0 0 0

savepoint - savepoint7

Okay Must be okay Can't be okay
0 151 3

scanstatus

Okay Must be okay Can't be okay
0 63 0

schema - schema5

Okay Must be okay Can't be okay
0 0 121

securedel, securedel2

Okay Must be okay Can't be okay
0 0 19

select1 - selectG

Okay Must be okay Can't be okay
822 180 14

server1

Okay Must be okay Can't be okay
0 0 18

shared - shared4, shared6 - sharedB, shared_err, sharedlock

Okay Must be okay Can't be okay
0 0 265

shell1 - shell5

Okay Must be okay Can't be okay
0 0 247

shortread1

Okay Must be okay Can't be okay
0 0 4

shrink

Okay Must be okay Can't be okay
0 0 3

sidedelete

Okay Must be okay Can't be okay
0 5 0

skipscan1 - skipscan3

Okay Must be okay Can't be okay
0 77 0

soak

Okay Must be okay Can't be okay
0 0 0

softheap1

Okay Must be okay Can't be okay
0 0 7

sort - sort5, sortfault

Okay Must be okay Can't be okay
67 35 0

speed1 - speed4, speed4p, speed4pexplain

Okay Must be okay Can't be okay
0 114 2

spellfix, spellfix2

Okay Must be okay Can't be okay
0 0 55

sqldiff1

Okay Must be okay Can't be okay
0 0 2

sqllimits1

Okay Must be okay Can't be okay
0 0 125

stat, statfault

Okay Must be okay Can't be okay
0 0 16

stmt

Okay Must be okay Can't be okay
0 0 10

subquery, subquery2

Okay Must be okay Can't be okay
82 0 0

subselect

Okay Must be okay Can't be okay
27 0 0

substr

Okay Must be okay Can't be okay
53 5 0

subtype1

Okay Must be okay Can't be okay
4 0 0

superlock

Okay Must be okay Can't be okay
0 0 56

sync

Okay Must be okay Can't be okay
0 0 4

syscall, sysfault

Okay Must be okay Can't be okay
0 0 34

tabfunc01

Okay Must be okay Can't be okay
0 0 20

table

Okay Must be okay Can't be okay
43 16 37

tableapi

Okay Must be okay Can't be okay
27 0 2

tableopts

Okay Must be okay Can't be okay
0 0 10

tclsqlite

Okay Must be okay Can't be okay
0 0 93

tempdb

Okay Must be okay Can't be okay
0 0 5

temptable

Okay Must be okay Can't be okay
0 0 65

temptrigger

Okay Must be okay Can't be okay
0 28 0

thread001 - thread005, thread1, thread2

Okay Must be okay Can't be okay
0 0 75

tkt*

Okay Must be okay Can't be okay
692 133 260

tokenize

Okay Must be okay Can't be okay
14 0 0

tpch01

Okay Must be okay Can't be okay
0 0 4

trace, trace2

Okay Must be okay Can't be okay
0 0 38

trans - trans3

Okay Must be okay Can't be okay
0 0 153

transitive1

Okay Must be okay Can't be okay
17 12 0

trigger1 - triggerE

Okay Must be okay Can't be okay
129 282 46

types - types3

Okay Must be okay Can't be okay
187 56 7

unique, unique2

Okay Must be okay Can't be okay
20 23 6

unixexcl

Okay Must be okay Can't be okay
0 0 18

unordered

Okay Must be okay Can't be okay
0 0 2

update

Okay Must be okay Can't be okay
101 21 1

uri

Okay Must be okay Can't be okay
0 0 20

userauth01

Okay Must be okay Can't be okay
0 0 43

utf16align

Okay Must be okay Can't be okay
0 0 5

vacuum - vacuum4

Okay Must be okay Can't be okay
0 0 97

varint

Okay Must be okay Can't be okay
1 0 0

veryquick

Okay Must be okay Can't be okay
0 0 0

vtab1 - vtabF, vtab_alter, vtab_err, vtab_shared

Okay Must be okay Can't be okay
0 0 443

wal - wal9, wal64k, walback, walbig, walblock, walcksum, walcrash - walcrash3, walfault, walhook, walmode, walnoshm, walpersist, walro, walshared, walslow, walthread

Okay Must be okay Can't be okay
0 0 780

where - whereK, wherelimit, where8m

Okay Must be okay Can't be okay
2543 140 123

wild001

Okay Must be okay Can't be okay
0 0 1

win32heap, win32lock, win32longpath

Okay Must be okay Can't be okay
0 0 28

with1, with2, withM

Okay Must be okay Can't be okay
125 5 16

without_rowid1 - without_rowid6

Okay Must be okay Can't be okay
0 0 426

zeroblob, zerodamage

Okay Must be okay Can't be okay
0 0 58

view

Okay Must be okay Can't be okay
50 39 4

Found errors

  1. create table as select is not supported. Need to edit parser for allowing to set primary key at the end of create table as select.
  2. segfault on very long "select union select union select union ..." in function sqlite3Select.
  3. tarantool can't save COLLATE.
  4. CONSTRAINT not supported
  5. Incorrect view column names (view-3.3.3)
  6. Check count of column on select (view-3.3.6)
  7. No query solution on select (view 3.4)
  8. Nocase don't (view-11.1)
  9. Do not work temp views (view-14.1)
  10. Smth do not clear with DROP TABLE and DROP VIEW (view-18.1)
  11. Inserting in tables with names 'tbooking' and 'parent1' sometimes fails and only not in lldb.
  12. OR optimization is not applied for 'WHERE ..=.. OR ..=..' where all columns are indexed.
  13. Very strange error in whereB.sqlite.test - segfault on third CREATE INDEX t2b .... Debug shows that its SIndex->pTable is corrupted.
  14. integrity_check - segfaults
  15. BEGIN, COMMIT, ROLLBACK are not supported
  16. ALTER is not supported
  17. DEFAULT values is not supported
  18. CHECK is not supported
  19. INSERT OR IGNORE/REPLACE/FAIL/ABORT/ROLLBACK/BEGIN/COMMIT are not supported
  20. sqlite3_changes not working
  21. "PRAGMA threads" is not supported
  22. NULL in PRIMARY KEY
  23. REPLACE is not supported
  24. 'no query solution' on some views
  25. NULL op NULL must be always NULL
  26. FOREIGN KEY is not supported
⚠️ **GitHub.com Fallback** ⚠️