/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠB loom berg ĠFinance ĠL . P . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . bloom berg . se le kt Ċ Ċ import Ġjava . sql . SQLException Ċ Ċ @ Suppress (" Det ek t . Long Parameter List ", Ġ" Det ek t . Too Many Functions ") Ċ open Ġclass ĠSQLite ( ĊĠĠĠ Ġprivate Ġval Ġsqlite : ĠExternal SQLite Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġbind Blob ( statement : ĠLong , Ġindex : ĠInt , Ġblob : ĠByteArray ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Blob ( statement , Ġindex , Ġblob , Ġblob . size ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbind Double ( statement : ĠLong , Ġindex : ĠInt , Ġvalue : ĠDouble ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Double ( statement , Ġindex , Ġvalue ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbind Int ( statement : ĠLong , Ġindex : ĠInt , Ġvalue : ĠInt ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Int ( statement , Ġindex , Ġvalue ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbind Int 6 4 ( statement : ĠLong , Ġindex : ĠInt , Ġvalue : ĠLong ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Int 6 4 ( statement , Ġindex , Ġvalue ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbind Null ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Null ( statement , Ġindex ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbind Parameter Count ( statement : ĠLong ) Ġ= Ġsqlite . bind Parameter Count ( statement ) ĊĊĠĠĠ Ġfun Ġbind Text ( statement : ĠLong , Ġindex : ĠInt , Ġvalue : ĠString ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Text ( statement , Ġindex , Ġvalue ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbind Zero Blob ( ĊĠĠĠĠĠĠĠ Ġstatement : ĠLong , ĊĠĠĠĠĠĠĠ Ġindex : ĠInt , ĊĠĠĠĠĠĠĠ Ġlength : ĠInt ĊĠĠĠ Ġ) Ġ= Ġcheck Bind SQL Code ( ĊĠĠĠĠĠĠĠ Ġstatement , ĊĠĠĠĠĠĠĠ Ġsqlite . bind Zero Blob ( statement , Ġindex , Ġlength ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġblob Bytes ( blob : ĠLong ) Ġ= Ġsqlite . blob Bytes ( blob ) ĊĊĠĠĠ Ġfun Ġblob Close ( blob : ĠLong ) Ġ= Ġcheck SQL Code ( sqlite . blob Close ( blob )) ĊĊĠĠĠ Ġfun Ġblob Open ( ĊĠĠĠĠĠĠĠ Ġdb : ĠLong , ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġtable : ĠString , ĊĠĠĠĠĠĠĠ Ġcolumn : ĠString , ĊĠĠĠĠĠĠĠ Ġrow : ĠLong , ĊĠĠĠĠĠĠĠ Ġflags : ĠInt , ĊĠĠĠĠĠĠĠ Ġholder : ĠLong Array ĊĠĠĠ Ġ) Ġ= Ġcheck Connection SQL Code ( ĊĠĠĠĠĠĠĠ Ġdb , ĊĠĠĠĠĠĠĠ Ġsqlite . blob Open ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠ Ġfun Ġblob Read ( ĊĠĠĠĠĠĠĠ Ġblob : ĠLong , ĊĠĠĠĠĠĠĠ Ġoffset : ĠInt , ĊĠĠĠĠĠĠĠ Ġdestination : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġdestination Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġlength : ĠInt ĊĠĠĠ Ġ) Ġ= Ġcheck SQL Code ( sqlite . blob Read ( ĊĠĠĠĠĠĠĠ Ġblob , ĊĠĠĠĠĠĠĠ Ġoffset , ĊĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠ Ġdestination Offset , ĊĠĠĠĠĠĠĠ Ġlength ĊĠĠĠ Ġ)) ĊĊĠĠĠ Ġfun Ġblob Re open ( ĊĠĠĠĠĠĠĠ Ġblob : ĠLong , ĊĠĠĠĠĠĠĠ Ġrow : ĠLong ĊĠĠĠ Ġ) Ġ= Ġcheck SQL Code ( sqlite . blob Re open ( blob , Ġrow )) ĊĊĠĠĠ Ġfun Ġblob Write ( ĊĠĠĠĠĠĠĠ Ġblob : ĠLong , ĊĠĠĠĠĠĠĠ Ġoffset : ĠInt , ĊĠĠĠĠĠĠĠ Ġsource : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġsource Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġlength : ĠInt ĊĠĠĠ Ġ) Ġ= Ġcheck SQL Code ( sqlite . blob Write ( ĊĠĠĠĠĠĠĠ Ġblob , ĊĠĠĠĠĠĠĠ Ġoffset , ĊĠĠĠĠĠĠĠ Ġsource , ĊĠĠĠĠĠĠĠ Ġsource Offset , ĊĠĠĠĠĠĠĠ Ġlength ĊĠĠĠ Ġ)) ĊĊĠĠĠ Ġfun Ġbusy Timeout ( db : ĠLong , Ġmillis : ĠInt ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . busy Timeout ( db , Ġmillis )) ĊĊĠĠĠ Ġfun Ġchanges ( db : ĠLong ) Ġ= Ġsqlite . changes ( db ) ĊĊĠĠĠ Ġfun Ġclear Bindings ( statement : ĠLong ) Ġ= Ġcheck SQL Code ( sqlite . clear Bindings ( statement )) ĊĊĠĠĠ Ġfun Ġclose V 2 ( db : ĠLong ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . close V 2 ( db )) ĊĊĠĠĠ Ġfun Ġcolumn Blob ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Blob ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġcolumn Count ( statement : ĠLong ) Ġ= Ġsqlite . column Count ( statement ) ĊĊĠĠĠ Ġfun Ġcolumn Double ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Double ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġcolumn Int ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Int ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġcolumn Int 6 4 ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Int 6 4 ( statement , Ġindex ) ĊĊĠĠĠ Ġfun ĠcolumnName ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . columnName ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġcolumn Text ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Text ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġcolumn Type ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Type ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġcolumn Value ( statement : ĠLong , Ġindex : ĠInt ) Ġ= Ġsqlite . column Value ( statement , Ġindex ) ĊĊĠĠĠ Ġfun Ġdatabase Handle ( statement : ĠLong ) Ġ= Ġsqlite . database Handle ( statement ) ĊĊĠĠĠ Ġfun Ġdatabase ReadOnly ( db : ĠLong , Ġname : ĠString ) Ġ= Ġsqlite . database ReadOnly ( db , Ġname ) ĊĊĠĠĠ Ġfun Ġdatabase Release Memory ( db : ĠLong ) Ġ= Ġsqlite . database Release Memory ( db ) ĊĊĠĠĠ Ġfun Ġdatabase Status ( ĊĠĠĠĠĠĠĠ Ġdb : ĠLong , ĊĠĠĠĠĠĠĠ Ġoptions : ĠInt , ĊĠĠĠĠĠĠĠ Ġreset : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġholder : ĠInt Array ĊĠĠĠ Ġ) Ġ= Ġsqlite . database Status ( db , Ġoptions , Ġreset , Ġholder ) ĊĊĠĠĠ Ġfun ĠerrorCode ( db : ĠLong ) Ġ= Ġsqlite . errorCode ( db ) ĊĊĠĠĠ Ġfun ĠerrorMessage ( db : ĠLong ) Ġ= Ġsqlite . errorMessage ( db ) ĊĊĠĠĠ Ġfun Ġexec ( db : ĠLong , Ġquery : ĠString ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . exec ( db , Ġquery )) ĊĊĠĠĠ Ġfun Ġexpanded Sql ( statement : ĠLong ) Ġ= Ġsqlite . expanded Sql ( statement ) ĊĊĠĠĠ Ġfun Ġextended ErrorCode ( db : ĠLong ) Ġ= Ġsqlite . extended ErrorCode ( db ) ĊĊĠĠĠ Ġfun Ġextended Result Codes ( db : ĠLong , Ġon Off : ĠInt ) Ġ= Ġsqlite . extended Result Codes ( db , Ġon Off ) ĊĊĠĠĠ Ġfun Ġfinalize ( statement : ĠLong ) Ġ= Ġcheck Statement SQL Code ( statement , Ġsqlite . finalize ( statement )) ĊĊĠĠĠ Ġfun Ġget Auto commit ( db : ĠLong ) Ġ= Ġsqlite . get Auto commit ( db ) ĊĊĠĠĠ Ġfun Ġhard Heap Limit 6 4 () Ġ= Ġsqlite . hard Heap Limit 6 4 () ĊĊĠĠĠ Ġfun Ġkey ( db : ĠLong , Ġkey : ĠByteArray ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . key ( db , Ġkey , Ġkey . size )) ĊĊĠĠĠ Ġfun Ġkey Convention ally ( db : ĠLong , Ġkey : ĠByteArray ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . key Convention ally ( db , Ġkey , Ġkey . size )) ĊĊĠĠĠ Ġfun Ġkeyword Count () Ġ= Ġsqlite . keyword Count () ĊĊĠĠĠ Ġfun Ġlast Insert Row Id ( db : ĠLong ) Ġ= Ġsqlite . last Insert Row Id ( db ) ĊĊĠĠĠ Ġfun Ġmemory Used () Ġ= Ġsqlite . memory Used () ĊĊĠĠĠ Ġfun Ġopen V 2 ( ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġflags : ĠInt , ĊĠĠĠĠĠĠĠ Ġdb Holder : ĠLong Array ĊĠĠĠ Ġ) Ġ= Ġcheck SQL Code ( sqlite . open V 2 ( path , Ġflags , Ġdb Holder )) ĊĊĠĠĠ Ġfun Ġprepare V 2 ( ĊĠĠĠĠĠĠĠ Ġdb : ĠLong , ĊĠĠĠĠĠĠĠ Ġsql : ĠString , ĊĠĠĠĠĠĠĠ Ġstatement Holder : ĠLong Array ĊĠĠĠ Ġ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . prepare V 2 ( db , Ġsql , Ġsql . length , Ġstatement Holder )) ĊĊĠĠĠ Ġfun Ġraw Key ( db : ĠLong , Ġkey : ĠByteArray ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . raw Key ( db , Ġkey , Ġkey . size )) ĊĊĠĠĠ Ġfun Ġre key ( db : ĠLong , Ġkey : ĠByteArray ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . re key ( db , Ġkey , Ġkey . size )) ĊĊĠĠĠ Ġfun Ġrelease Memory ( bytes : ĠInt ) Ġ= Ġsqlite . release Memory ( bytes ) ĊĊĠĠĠ Ġfun Ġreset ( statement : ĠLong ) Ġ= Ġcheck Statement SQL Code ( statement , Ġsqlite . reset ( statement )) ĊĊĠĠĠ Ġfun Ġreset And Clear Bindings ( statement : ĠLong ) Ġ= Ġcheck Statement SQL Code ( statement , Ġsqlite . reset And Clear Bindings ( statement )) ĊĊĠĠĠ Ġfun Ġsoft Heap Limit 6 4 () Ġ= Ġsqlite . soft Heap Limit 6 4 () ĊĊĠĠĠ Ġfun Ġsql ( statement : ĠLong ) Ġ= Ġsqlite . sql ( statement ) ĊĊĠĠĠ Ġfun Ġstatement Busy ( statement : ĠLong ) Ġ= Ġsqlite . statement Busy ( statement ) ĊĊĠĠĠ Ġfun Ġstatement ReadOnly ( statement : ĠLong ) Ġ= Ġsqlite . statement ReadOnly ( statement ) ĊĊĠĠĠ Ġfun Ġstatement Status ( ĊĠĠĠĠĠĠĠ Ġstatement : ĠLong , ĊĠĠĠĠĠĠĠ Ġoptions : ĠInt , ĊĠĠĠĠĠĠĠ Ġreset : ĠBoolean ĊĠĠĠ Ġ) Ġ= Ġsqlite . statement Status ( statement , Ġoptions , Ġreset ) ĊĊĠĠĠ Ġfun Ġstep ( statement : ĠLong ) Ġ= Ġcheck Step SQL Code ( statement , Ġsqlite . step ( statement )) ĊĊĠĠĠ Ġfun Ġstep Without Throw ing ( statement : ĠLong ) Ġ= Ġsqlite . step ( statement ) ĊĊĠĠĠ Ġfun Ġthread safe () Ġ= Ġsqlite . thread safe () ĊĊĠĠĠ Ġfun Ġtotal Changes ( db : ĠLong ) Ġ= Ġsqlite . total Changes ( db ) ĊĊĠĠĠ Ġfun Ġtrace V 2 ( db : ĠLong , Ġflag : ĠInt ) Ġ= Ġsqlite . trace V 2 ( db , Ġflag ) ĊĊĠĠĠ Ġfun Ġtransaction State ( db : ĠLong ) Ġ= Ġsqlite . transaction State ( db ) ĊĊĠĠĠ Ġfun Ġvalue Dup ( value : ĠLong ) Ġ= Ġsqlite . value Dup ( value ) ĊĊĠĠĠ Ġfun Ġvalue Free ( value : ĠLong ) Ġ= Ġsqlite . value Free ( value ) ĊĊĠĠĠ Ġfun Ġvalue From Bind ( value : ĠLong ) Ġ= Ġsqlite . value From Bind ( value ) ĊĊĠĠĠ Ġfun Ġw al Auto Checkpoint ( db : ĠLong , Ġpages : ĠInt ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . wal Auto Checkpoint ( db , Ġpages )) ĊĊĠĠĠ Ġfun Ġw al Checkpoint V 2 ( ĊĠĠĠĠĠĠĠ Ġdb : ĠLong , ĊĠĠĠĠĠĠĠ Ġname : ĠString ?, ĊĠĠĠĠĠĠĠ Ġmode : ĠInt ĊĠĠĠ Ġ) Ġ= Ġcheck Connection SQL Code ( db , Ġsqlite . wal Checkpoint V 2 ( db , Ġname , Ġmode )) ĊĊĠĠĠ Ġopen Ġfun Ġthrow SQLException ( ĊĠĠĠĠĠĠĠ Ġcode : ĠSQL Code , ĊĠĠĠĠĠĠĠ Ġextended Code : ĠSQL Code , ĊĠĠĠĠĠĠĠ Ġmessage : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠNothing Ġ= Ġthrow ĠSQLException (" Code : Ġ$ code ; ĠExtended : Ġ$ extended Code ; ĠMessage : Ġ$ message ; ĠContext : Ġ$ context ") ĊĊĠĠĠ Ġfun Ġthrow SQLException ( db : ĠLong , Ġcontext : ĠString ? Ġ= Ġnull ): ĠNothing Ġ= ĊĠĠĠĠĠĠĠ Ġthrow SQLException ( errorCode ( db ), Ġextended ErrorCode ( db ), ĠerrorMessage ( db ), Ġcontext ) ĊĊĠĠĠ Ġprivate Ġfun Ġcheck SQL Code ( code : ĠSQL Code ): ĠSQL Code Ġ= Ġwhen Ġ( code ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSQL _ OK Ġ-> Ġcode ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow SQLException ( code , Ġ- 1 , Ġ" Error Ġinformation Ġnot Ġaccessible .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Connection SQL Code ( db : ĠLong , Ġcode : ĠSQL Code ): ĠSQL Code Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( SQL _ OK Ġ== Ġcode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcode ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow SQLException ( db ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Statement SQL Code ( statement : ĠLong , Ġcode : ĠSQL Code ): ĠSQL Code Ġ= Ġif Ġ( SQL _ OK Ġ== Ġcode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcode ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow SQLException ( database Handle ( statement )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Bind SQL Code ( statement : ĠLong , Ġcode : ĠSQL Code ): ĠSQL Code Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( SQL _ OK Ġ== Ġcode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcode ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow SQLException ( database Handle ( statement )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Step SQL Code ( statement : ĠLong , Ġcode : ĠSQL Code ): ĠSQL Code Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( SQL _ ROW Ġ== Ġcode Ġ|| ĠSQL _ DONE Ġ== Ġcode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcode ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow SQLException ( database Handle ( statement )) ĊĠĠĠ Ġ} Ċ } Ċ