0
0
mirror of https://github.com/tursodatabase/libsql.git synced 2025-06-14 03:03:01 +00:00

restructure repository

This commit is contained in:
ad hoc
2023-10-16 13:57:56 +02:00
parent 6f5d54374d
commit bf899d0b9a
2318 changed files with 0 additions and 5564 deletions
ext
libsql-sqlite3
.gitignoreCODE_OF_CONDUCT.mdDockerfile-wasm-udfLIBSQL_VERSIONLICENSE.mdMakefile.inMakefile.linux-gccMakefile.mscREADME-SQLite.mdVERSIONaclocal.m4
art
autoconf
config.guessconfig.subconfigureconfigure.ac
contrib
doc
ext
README.md
async
crr
expert
fts3
fts5
extract_api_docs.tclfts5Int.hfts5_aux.cfts5_buffer.cfts5_config.cfts5_expr.cfts5_hash.cfts5_index.cfts5_main.cfts5_storage.cfts5_tcl.cfts5_test_mi.cfts5_test_tok.cfts5_tokenize.cfts5_unicode2.cfts5_varint.cfts5_vocab.cmkportersteps.tcl
test
fts5_common.tclfts5aa.testfts5ab.testfts5ac.testfts5ad.testfts5ae.testfts5af.testfts5ag.testfts5ah.testfts5ai.testfts5aj.testfts5ak.testfts5al.testfts5alter.testfts5auto.testfts5aux.testfts5auxdata.testfts5bigid.testfts5bigpl.testfts5bigtok.testfts5cat.testfts5circref.testfts5colset.testfts5columnsize.testfts5config.testfts5conflict.testfts5connect.testfts5content.testfts5contentless.testfts5contentless2.testfts5contentless3.testfts5contentless4.testfts5contentless5.testfts5corrupt.testfts5corrupt2.testfts5corrupt3.testfts5corrupt4.testfts5corrupt5.testfts5corrupt6.testfts5corrupt7.testfts5delete.testfts5detail.testfts5determin.testfts5dlidx.testfts5doclist.testfts5ea.testfts5eb.testfts5fault1.testfts5fault2.testfts5fault3.testfts5fault4.testfts5fault5.testfts5fault6.testfts5fault7.testfts5fault8.testfts5fault9.testfts5faultA.testfts5faultB.testfts5faultD.testfts5faultE.testfts5faultF.testfts5first.testfts5full.testfts5fuzz1.testfts5hash.testfts5integrity.testfts5interrupt.testfts5lastrowid.testfts5leftjoin.testfts5limits.testfts5matchinfo.testfts5merge.testfts5merge2.testfts5misc.testfts5multi.testfts5multiclient.testfts5near.testfts5onepass.testfts5optimize.testfts5optimize2.testfts5phrase.testfts5plan.testfts5porter.testfts5porter2.testfts5prefix.testfts5prefix2.testfts5query.testfts5rank.testfts5rebuild.testfts5restart.testfts5rowid.testfts5savepoint.testfts5secure.testfts5secure2.testfts5secure3.testfts5secure4.testfts5secure5.testfts5secure6.testfts5securefault.testfts5simple.testfts5simple2.testfts5simple3.testfts5synonym.testfts5synonym2.testfts5tok1.testfts5tok2.testfts5tokenizer.testfts5trigram.testfts5ubsan.testfts5umlaut.testfts5unicode.testfts5unicode2.testfts5unicode3.testfts5unicode4.testfts5unindexed.testfts5update.testfts5version.testfts5vocab.testfts5vocab2.test
tool
icu
jni
lsm1
misc
rbu
recover
repair
rtree
session
udf
userauth
vwal
wasm
install-shlibsql.pc.inltmain.shmagic.txtmain.mkmanifestmanifest.uuid
mptest
spec.templatesqlite.pc.insqlite3.1sqlite3.pc.insqlite_cfg.h.in
src
test
8_3_names.testaffinity2.testaffinity3.testaggerror.testaggfault.testaggnested.testalias.testall.testalter.testalter2.testalter3.testalter4.testalterauth.testalterauth2.testaltercol.testaltercorrupt.testalterdropcol.testalterdropcol2.testalterfault.testalterlegacy.testaltermalloc.testaltermalloc2.testaltermalloc3.testalterqf.testaltertab.testaltertab2.testaltertab3.testaltertrig.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.testbasexx1.testbc_common.tclbestindex1.testbestindex2.testbestindex3.testbestindex4.testbestindex5.testbestindex6.testbestindex7.testbestindex8.testbestindex9.testbestindexA.testbetween.testbigfile.testbigfile2.testbigmmap.testbigrow.testbigsort.testbind.testbind2.testbindxfer.testbitvec.testblob.testbloom1.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.testchanges2.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.testdate3.testdbdata.testdbfuzz.cdbfuzz001.testdbfuzz2-seed1.dbdbfuzz2.cdbpage.testdbpagefault.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.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.testfp-speed-1.cfpconv1.testfts-9fd058691.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.testfts3dropmod.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.testfunc8.testfuzz-oss1.testfuzz.testfuzz2.testfuzz3.testfuzz4.testfuzz_common.tclfuzz_malloc.testfuzzcheck.cfuzzdata1.dbfuzzdata2.dbfuzzdata3.dbfuzzdata4.dbfuzzdata5.dbfuzzdata6.dbfuzzdata7.dbfuzzdata8.dbfuzzer1.testfuzzer2.testfuzzerfault.testfuzzinvariants.cgcfault.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.testjoin7.testjoin8.testjoin9.testjoinA.testjoinB.testjoinC.testjoinD.testjoinE.testjoinF.testjoinH.testjournal1.testjournal2.testjournal3.testjrnlmode.testjrnlmode2.testjrnlmode3.test
json
json101.testjson102.testjson103.testjson104.testjson105.testjson501.testjson502.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.testmemdb2.testmemjournal.testmemjournal2.testmemleak.testmemsubsys1.testmemsubsys2.testmerge1.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.testpendingrace.testpercentile.testpermutations.testpg_common.tclpragma.testpragma2.testpragma3.testpragma4.testpragma5.testpragmafault.testprefixes.testprintf.testprintf2.testprogress.testptrchng.testpushdown.testqueryonly.testquick.testquickcheck.testquota-glob.testquota.testquota2.testquote.testrandexpr1.tclrandexpr1.testrbu.testrdonly.testrecover.testregexp1.testregexp2.testreindex.testreleasetest_data.tclresetdb.testresolver01.testreturning1.testreturningfault.testrollback.testrollback2.testrollbackfault.testround1.testrowallock.testrowhash.testrowid.testrowvalue.testrowvalue2.testrowvalue3.testrowvalue4.testrowvalue5.testrowvalue6.testrowvalue7.testrowvalue8.testrowvalue9.testrowvalueA.testrowvaluefault.testrowvaluevtab.testrtree.testrun-wordcount.sh
rust_suite
savepoint.testsavepoint2.testsavepoint4.testsavepoint5.testsavepoint6.testsavepoint7.testsavepointfault.testscanstatus.testscanstatus2.testschema.testschema2.testschema3.testschema4.testschema5.testschema6.testschemafault.testsecuredel.testsecuredel2.testseekscan1.testselect1.testselect2.testselect3.testselect4.testselect5.testselect6.testselect7.testselect8.testselect9.testselectA.testselectB.testselectC.testselectD.testselectE.testselectF.testselectG.testselectH.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.tcltestrunner.tcltestrunner_data.tclthread001.testthread002.testthread003.testthread004.testthread005.testthread1.testthread2.testthread3.testthread_common.tclthreadtest1.cthreadtest2.cthreadtest3.cthreadtest4.cthreadtest5.ctime-wordcount.shtimediff1.testtkt-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-99378177930f87bd.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.testunhex.testunionall.testunionall2.testunionallfault.testunionvtab.testunionvtabfault.testunique.testunique2.testunixexcl.testunordered.testupdate.testupdate2.testupfrom1.tclupfrom1.testupfrom2.testupfrom3.testupfrom4.testupfromfault.testupsert1.testupsert2.testupsert3.testupsert4.testupsert5.testupsertfault.testuri.testuri2.testuserauth01.testutf16align.testvacuum-into.testvacuum.testvacuum2.testvacuum3.testvacuum4.testvacuum5.testvacuum6.testvacuummem.testvarint.testveryquick.testview.testview2.testview3.testvt02.cvtab1.testvtab2.testvtab3.testvtab4.testvtab5.testvtab6.testvtab7.testvtab8.testvtab9.testvtabA.testvtabB.testvtabC.testvtabD.testvtabE.testvtabF.testvtabH.testvtabI.testvtabJ.testvtabK.testvtab_alter.testvtab_err.testvtab_shared.testvtabdistinct.testvtabdrop.testvtabrhs1.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.testwalseh1.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.testwidetab1.testwin32heap.testwin32lock.testwin32longpath.testwin32nolock.testwindow1.testwindow2.tclwindow2.testwindow3.tclwindow3.testwindow4.tclwindow4.testwindow5.testwindow6.testwindow7.tclwindow7.testwindow8.tclwindow8.testwindow9.testwindowA.testwindowB.testwindowC.testwindowD.testwindowE.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
tool
vsixtest
libsql
src
tool

@ -0,0 +1,96 @@
/*
** 2014-09-08
**
** 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.
**
*************************************************************************
**
** This file contains the application interface definitions for the
** user-authentication extension feature.
**
** To compile with the user-authentication feature, append this file to
** end of an SQLite amalgamation header file ("sqlite3.h"), then add
** the SQLITE_USER_AUTHENTICATION compile-time option. See the
** user-auth.txt file in the same source directory as this file for
** additional information.
*/
#ifdef SQLITE_USER_AUTHENTICATION
#ifdef __cplusplus
extern "C" {
#endif
/*
** If a database contains the SQLITE_USER table, then the
** sqlite3_user_authenticate() interface must be invoked with an
** appropriate username and password prior to enable read and write
** access to the database.
**
** Return SQLITE_OK on success or SQLITE_ERROR if the username/password
** combination is incorrect or unknown.
**
** If the SQLITE_USER table is not present in the database file, then
** this interface is a harmless no-op returnning SQLITE_OK.
*/
int sqlite3_user_authenticate(
sqlite3 *db, /* The database connection */
const char *zUsername, /* Username */
const char *aPW, /* Password or credentials */
int nPW /* Number of bytes in aPW[] */
);
/*
** The sqlite3_user_add() interface can be used (by an admin user only)
** to create a new user. When called on a no-authentication-required
** database, this routine converts the database into an authentication-
** required database, automatically makes the added user an
** administrator, and logs in the current connection as that user.
** The sqlite3_user_add() interface only works for the "main" database, not
** for any ATTACH-ed databases. Any call to sqlite3_user_add() by a
** non-admin user results in an error.
*/
int sqlite3_user_add(
sqlite3 *db, /* Database connection */
const char *zUsername, /* Username to be added */
const char *aPW, /* Password or credentials */
int nPW, /* Number of bytes in aPW[] */
int isAdmin /* True to give new user admin privilege */
);
/*
** The sqlite3_user_change() interface can be used to change a users
** login credentials or admin privilege. Any user can change their own
** login credentials. Only an admin user can change another users login
** credentials or admin privilege setting. No user may change their own
** admin privilege setting.
*/
int sqlite3_user_change(
sqlite3 *db, /* Database connection */
const char *zUsername, /* Username to change */
const char *aPW, /* New password or credentials */
int nPW, /* Number of bytes in aPW[] */
int isAdmin /* Modified admin privilege for the user */
);
/*
** The sqlite3_user_delete() interface can be used (by an admin user only)
** to delete a user. The currently logged-in user cannot be deleted,
** which guarantees that there is always an admin user and hence that
** the database cannot be converted into a no-authentication-required
** database.
*/
int sqlite3_user_delete(
sqlite3 *db, /* Database connection */
const char *zUsername /* Username to remove */
);
#ifdef __cplusplus
} /* end of the 'extern "C"' block */
#endif
#endif /* SQLITE_USER_AUTHENTICATION */