@@ -656,11 +656,11 @@
656 656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
657 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
658 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
659 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION "3.7.9"
660 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION_NUMBER 3007009
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2011-10-11 20:41:54 b94a80a832777f0e639f6a81fcfe169bf970a8c0"
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2011-10-15 00:16:30 39408702a989f907261c298bf0947f3e68bd10fe"
662 662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
663 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
664 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
665 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version, sqlite3_sourceid
666 666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -3351,11 +3351,12 @@
3351 3351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** zSql string ends at either the first '\000' or '\u0000' character or
3352 3352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the nByte-th byte, whichever comes first. If the caller knows
3353 3353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that the supplied string is nul-terminated, then there is a small
3354 3354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** performance advantage to be gained by passing an nByte parameter that
3355 3355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is equal to the number of bytes in the input string <i>including</i>
3356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the nul-terminator bytes.
3356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the nul-terminator bytes as this saves SQLite from having to
3357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** make a copy of the input string.
3357 3358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3358 3359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^If pzTail is not NULL then *pzTail is made to point to the first byte
3359 3360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** past the end of the first SQL statement in zSql. These routines only
3360 3361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** compile the first statement in zSql, so *pzTail is left pointing to
3361 3362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** what remains uncompiled.
@@ -3572,10 +3573,17 @@
3572 3573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(In those routines that have a fourth argument, its value is the
3573 3574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** number of bytes in the parameter. To be clear: the value is the
3574 3575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** number of <u>bytes</u> in the value, not the number of characters.)^
3575 3576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^If the fourth parameter is negative, the length of the string is
3576 3577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the number of bytes up to the first zero terminator.
3578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If a non-negative fourth parameter is provided to sqlite3_bind_text()
3579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or sqlite3_bind_text16() then that parameter must be the byte offset
3580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** where the NUL terminator would occur assuming the string were NUL
3581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** terminated. If any NUL characters occur at byte offsets less than
3582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the value of the fourth parameter then the resulting string value will
3583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** contain embedded NULs. The result of expressions involving strings
3584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with embedded NULs is undefined.
3577 3585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3578 3586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The fifth argument to sqlite3_bind_blob(), sqlite3_bind_text(), and
3579 3587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_bind_text16() is a destructor used to dispose of the BLOB or
3580 3588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** string after SQLite has finished with it. ^The destructor is called
3581 3589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to dispose of the BLOB or string even if the call to sqlite3_bind_blob(),
@@ -4590,11 +4598,16 @@
4590 4598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is negative, then SQLite takes result text from the 2nd parameter
4591 4599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** through the first zero character.
4592 4600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^If the 3rd parameter to the sqlite3_result_text* interfaces
4593 4601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is non-negative, then as many bytes (not characters) of the text
4594 4602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointed to by the 2nd parameter are taken as the application-defined
4595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function result.
4603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function result. If the 3rd parameter is non-negative, then it
4604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** must be the byte offset into the string where the NUL terminator would
4605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** appear if the string where NUL terminated. If any NUL characters occur
4606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the string at a byte offset that is less than the value of the 3rd
4607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** parameter, then the resulting string will contain embedded NULs and the
4608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** result of expressions operating on strings with embedded NULs is undefined.
4596 4609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^If the 4th parameter to the sqlite3_result_text* interfaces
4597 4610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** or sqlite3_result_blob is a non-NULL pointer, then SQLite calls that
4598 4611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** function as the destructor on the text or BLOB result when it has
4599 4612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** finished using that result.
4600 4613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^If the 4th parameter to the sqlite3_result_text* interfaces or to
@@ -9315,18 +9328,21 @@
9315 9328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
9316 9329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If this is a no-op implementation, implement everything as macros.
9317 9330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
9318 9331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3_mutex_alloc(X) ((sqlite3_mutex*)8)
9319 9332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3_mutex_free(X)
9320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define sqlite3_mutex_enter(X)
9333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define sqlite3_mutex_enter(X)
9321 9334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3_mutex_try(X) SQLITE_OK
9322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define sqlite3_mutex_leave(X)
9335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define sqlite3_mutex_leave(X)
9323 9336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3_mutex_held(X) ((void)(X),1)
9324 9337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3_mutex_notheld(X) ((void)(X),1)
9325 9338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3MutexAlloc(X) ((sqlite3_mutex*)8)
9326 9339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3MutexInit() SQLITE_OK
9327 9340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define sqlite3MutexEnd()
9341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MUTEX_LOGIC(X)
9342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
9343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MUTEX_LOGIC(X) X
9328 9344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* defined(SQLITE_MUTEX_OMIT) */
9329 9345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9330 9346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of mutex.h ***********************************************/
9331 9347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Continuing where we left off in sqliteInt.h ******************/
9332 9348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -11754,19 +11770,21 @@
11754 11770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabInSync(db) 0
11755 11771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabLock(X)
11756 11772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabUnlock(X)
11757 11773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabUnlockList(X)
11758 11774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabSavepoint(X, Y, Z) SQLITE_OK
11775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define sqlite3GetVTable(X,Y) ((VTable*)0)
11759 11776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
11760 11777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabClear(sqlite3 *db, Table*);
11761 11778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabSync(sqlite3 *db, char **);
11762 11779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabRollback(sqlite3 *db);
11763 11780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabCommit(sqlite3 *db);
11764 11781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabLock(VTable *);
11765 11782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabUnlock(VTable *);
11766 11783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabUnlockList(sqlite3*);
11767 11784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3VtabSavepoint(sqlite3 *, int, int);
11785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE VTable *sqlite3GetVTable(sqlite3*, Table*);
11768 11786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define sqlite3VtabInSync(db) ((db)->nVTrans>0 && (db)->aVTrans==0)
11769 11787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
11770 11788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabMakeWritable(Parse*,Table*);
11771 11789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabBeginParse(Parse*, Token*, Token*, Token*);
11772 11790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VtabFinishParse(Parse*, Token*);
@@ -11782,11 +11800,10 @@
11782 11800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3TransferBindings(sqlite3_stmt *, sqlite3_stmt *);
11783 11801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3Reprepare(Vdbe*);
11784 11802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3ExprListCheckLength(Parse*, ExprList*, const char*);
11785 11803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE CollSeq *sqlite3BinaryCompareCollSeq(Parse *, Expr *, Expr *);
11786 11804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3TempInMemory(const sqlite3*);
11787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE VTable *sqlite3GetVTable(sqlite3*, Table*);
11788 11805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE const char *sqlite3JournalModename(int);
11789 11806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3Checkpoint(sqlite3*, int, int, int*, int*);
11790 11807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3WalDefaultHook(void*,sqlite3*,const char*,int);
11791 11808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
11792 11809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Declarations for functions in fkey.c. All of these are replaced by
@@ -13558,16 +13575,22 @@
13558 13575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13559 13576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
13560 13577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13561 13578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13562 13579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Set the time to the current time reported by the VFS
13580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Set the time to the current time reported by the VFS.
13581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
13582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return the number of errors.
13564 13583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
13565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void setDateTimeToCurrent(sqlite3_context *context, DateTime *p){
13584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int setDateTimeToCurrent(sqlite3_context *context, DateTime *p){
13566 13585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = sqlite3_context_db_handle(context);
13567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3OsCurrentTimeInt64(db->pVfs, &p->iJD);
13568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->validJD = 1;
13586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3OsCurrentTimeInt64(db->pVfs, &p->iJD)==SQLITE_OK ){
13587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->validJD = 1;
13588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
13589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
13590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
13591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
13569 13592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
13570 13593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13571 13594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
13572 13595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Attempt to parse the given string into a Julian Day Number. Return
13573 13596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the number of errors.
@@ -13593,12 +13616,11 @@
13593 13616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( parseYyyyMmDd(zDate,p)==0 ){
13594 13617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
13595 13618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( parseHhMmSs(zDate, p)==0 ){
13596 13619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
13597 13620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( sqlite3StrICmp(zDate,"now")==0){
13598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- setDateTimeToCurrent(context, p);
13599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
13621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return setDateTimeToCurrent(context, p);
13600 13622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( sqlite3AtoF(zDate, &r, sqlite3Strlen30(zDate), SQLITE_UTF8) ){
13601 13623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->iJD = (sqlite3_int64)(r*86400000.0 + 0.5);
13602 13624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->validJD = 1;
13603 13625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
13604 13626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -14021,12 +14043,13 @@
14021 14043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
14022 14044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *z;
14023 14045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int eType;
14024 14046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(p, 0, sizeof(*p));
14025 14047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc==0 ){
14026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- setDateTimeToCurrent(context, p);
14027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( (eType = sqlite3_value_type(argv[0]))==SQLITE_FLOAT
14048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return setDateTimeToCurrent(context, p);
14049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
14050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (eType = sqlite3_value_type(argv[0]))==SQLITE_FLOAT
14028 14051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| eType==SQLITE_INTEGER ){
14029 14052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->iJD = (sqlite3_int64)(sqlite3_value_double(argv[0])*86400000.0 + 0.5);
14030 14053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->validJD = 1;
14031 14054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
14032 14055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = sqlite3_value_text(argv[0]);
@@ -14334,35 +14357,32 @@
14334 14357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
14335 14358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
time_t t;
14336 14359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zFormat = (char *)sqlite3_user_data(context);
14337 14360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db;
14338 14361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iT;
14362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct tm *pTm;
14363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct tm sNow;
14339 14364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zBuf[20];
14340 14365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14341 14366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(argc);
14342 14367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(argv);
14343 14368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14344 14369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db = sqlite3_context_db_handle(context);
14345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3OsCurrentTimeInt64(db->pVfs, &iT);
14370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3OsCurrentTimeInt64(db->pVfs, &iT) ) return;
14346 14371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t = iT/1000 - 10000*(sqlite3_int64)21086676;
14347 14372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef HAVE_GMTIME_R
14348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
14349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct tm sNow;
14350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- gmtime_r(&t, &sNow);
14373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTm = gmtime_r(&t, &sNow);
14374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
14375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
14376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTm = gmtime(&t);
14377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTm ) memcpy(&sNow, pTm, sizeof(sNow));
14378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
14379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
14380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTm ){
14351 14381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
strftime(zBuf, 20, zFormat, &sNow);
14352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
14353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
14354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
14355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct tm *pTm;
14356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
14357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pTm = gmtime(&t);
14358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- strftime(zBuf, 20, zFormat, pTm);
14359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
14360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
14361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
14362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
14363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_result_text(context, zBuf, -1, SQLITE_TRANSIENT);
14382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(context, zBuf, -1, SQLITE_TRANSIENT);
14383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
14364 14384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
14365 14385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
14366 14386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
14367 14387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
14368 14388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This function registered all of the above C functions as SQL
@@ -14693,16 +14713,16 @@
14693 14713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Register a VFS with the system. It is harmless to register the same
14694 14714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** VFS multiple times. The new VFS becomes the default if makeDflt is
14695 14715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** true.
14696 14716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
14697 14717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_vfs_register(sqlite3_vfs *pVfs, int makeDflt){
14698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutex = 0;
14718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC(sqlite3_mutex *mutex;)
14699 14719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_AUTOINIT
14700 14720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = sqlite3_initialize();
14701 14721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ) return rc;
14702 14722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
14703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
14723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); )
14704 14724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(mutex);
14705 14725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vfsUnlink(pVfs);
14706 14726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( makeDflt || vfsList==0 ){
14707 14727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pVfs->pNext = vfsList;
14708 14728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vfsList = pVfs;
@@ -18946,52 +18966,14 @@
18946 18966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an historical reference. Most of the "enhancements" have been backed
18947 18967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** out so that the functionality is now the same as standard printf().
18948 18968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
18949 18969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**************************************************************************
18950 18970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
18951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following modules is an enhanced replacement for the "printf" subroutines
18952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** found in the standard C library. The following enhancements are
18953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** supported:
18954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** + Additional functions. The standard set of "printf" functions
18956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** includes printf, fprintf, sprintf, vprintf, vfprintf, and
18957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** vsprintf. This module adds the following:
18958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * snprintf -- Works like sprintf, but has an extra argument
18960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** which is the size of the buffer written to.
18961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * mprintf -- Similar to sprintf. Writes output to memory
18963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** obtained from malloc.
18964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * xprintf -- Calls a function to dispose of output.
18966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * nprintf -- No output, but returns the number of characters
18968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that would have been output by printf.
18969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * A v- version (ex: vsnprintf) of every function is also
18971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** supplied.
18972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** + A few extensions to the formatting notation are supported:
18974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * The "=" flag (similar to "-") causes the output to be
18976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be centered in the appropriately sized field.
18977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * The %b field outputs an integer in binary notation.
18979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * The %c field now accepts a precision. The character output
18981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is repeated by the number of times the precision specifies.
18982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** * The %' field works like %c, but takes as its character the
18984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** next character of the format string, instead of the next
18985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argument. For example, printf("%.78'-") prints 78 minus
18986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** signs, the same as printf("%.78c",'-').
18987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** + When compiled using GCC on a SPARC, this version of printf is
18989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** faster than the library printf for SUN OS 4.1.
18990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** + All functions are fully reentrant.
18992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
18971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This file contains code for a set of "printf"-like routines. These
18972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** routines format strings much like the printf() from the standard C
18973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** library, though the implementation here has enhancements to support
18974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLlite.
18993 18975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
18994 18976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18995 18977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
18996 18978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Conversion types fall into various categories as defined by the
18997 18979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** following enumeration.
@@ -19125,43 +19107,19 @@
19125 19107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19126 19108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19127 19109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19128 19110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
19129 19111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On machines with a small stack size, you can redefine the
19130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_PRINT_BUF_SIZE to be less than 350.
19112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_PRINT_BUF_SIZE to be something smaller, if desired.
19131 19113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
19132 19114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_PRINT_BUF_SIZE
19133 19115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_PRINT_BUF_SIZE 70
19134 19116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
19135 19117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define etBUFSIZE SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */
19136 19118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19137 19119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
19138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The root program. All variations call this core.
19139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
19140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** INPUTS:
19141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** func This is a pointer to a function taking three arguments
19142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 1. A pointer to anything. Same as the "arg" parameter.
19143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2. A pointer to the list of characters to be output
19144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (Note, this list is NOT null terminated.)
19145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 3. An integer number of characters to be output.
19146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (Note: This number might be zero.)
19147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
19148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** arg This is the pointer to anything which will be passed as the
19149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** first argument to "func". Use it for whatever you like.
19150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
19151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fmt This is the format string, as in the usual print.
19152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
19153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ap This is a pointer to a list of arguments. Same as in
19154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** vfprint.
19155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
19156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** OUTPUTS:
19157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The return value is the total number of characters sent to
19158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the function "func". Returns -1 on a error.
19159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
19160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Note that the order in which automatic variables are declared below
19161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** seems to make a big difference in determining how fast this beast
19162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** will run.
19120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Render a string given by "fmt" into the StrAccum object.
19163 19121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
19164 19122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VXPrintf(
19165 19123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
StrAccum *pAccum, /* Accumulate results here */
19166 19124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int useExtended, /* Allow extended %-conversions */
19167 19125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *fmt, /* Format string */
@@ -19180,28 +19138,27 @@
19180 19138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte flag_altform2; /* True if "!" flag is present */
19181 19139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte flag_zeropad; /* True if field width constant starts with zero */
19182 19140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte flag_long; /* True if "l" flag is present */
19183 19141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte flag_longlong; /* True if the "ll" flag is present */
19184 19142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte done; /* Loop termination flag */
19143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ etByte xtype = 0; /* Conversion paradigm */
19144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */
19185 19145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite_uint64 longvalue; /* Value for integer types */
19186 19146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LONGDOUBLE_TYPE realvalue; /* Value for real types */
19187 19147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const et_info *infop; /* Pointer to the appropriate info structure */
19188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char buf[etBUFSIZE]; /* Conversion buffer */
19189 19148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zOut; /* Rendering buffer */
19190 19149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nOut; /* Size of the rendering buffer */
19191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */
19192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- etByte xtype = 0; /* Conversion paradigm */
19193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zExtra; /* Extra memory used for etTCLESCAPE conversions */
19150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zExtra; /* Malloced memory used by some conversion */
19194 19151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_FLOATING_POINT
19195 19152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int exp, e2; /* exponent of real numbers */
19153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nsd; /* Number of significant digits returned */
19196 19154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rounder; /* Used for rounding floating point values */
19197 19155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte flag_dp; /* True if decimal point should be shown */
19198 19156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
etByte flag_rtz; /* True if trailing zeros should be removed */
19199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nsd; /* Number of significant digits returned */
19200 19157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
19158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char buf[etBUFSIZE]; /* Conversion buffer */
19201 19159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- length = 0;
19203 19160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt = 0;
19204 19161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(; (c=(*fmt))!=0; ++fmt){
19205 19162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( c!='%' ){
19206 19163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int amt;
19207 19164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt = (char *)fmt;
@@ -19692,10 +19649,11 @@
19692 19649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->tooBig | p->mallocFailed ){
19693 19650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase(p->tooBig);
19694 19651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase(p->mallocFailed);
19695 19652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
19696 19653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->zText!=0 || p->nChar==0 );
19697 19655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( N<0 ){
19698 19656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
N = sqlite3Strlen30(z);
19699 19657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19700 19658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( N==0 || NEVER(z==0) ){
19701 19659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
@@ -19723,19 +19681,20 @@
19723 19681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zNew = sqlite3DbRealloc(p->db, zOld, p->nAlloc);
19724 19682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
19725 19683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zNew = sqlite3_realloc(zOld, p->nAlloc);
19726 19684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19727 19685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zNew ){
19728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zOld==0 ) memcpy(zNew, p->zText, p->nChar);
19686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zOld==0 && p->nChar>0 ) memcpy(zNew, p->zText, p->nChar);
19729 19687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zText = zNew;
19730 19688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
19731 19689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->mallocFailed = 1;
19732 19690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3StrAccumReset(p);
19733 19691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
19734 19692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19735 19693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19736 19694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->zText );
19737 19696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(&p->zText[p->nChar], z, N);
19738 19697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nChar += N;
19739 19698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19740 19699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19741 19700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -25172,11 +25131,11 @@
25172 25131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
25173 25132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
25174 25133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
25175 25134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
25176 25135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
25177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
25136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(SQLITE_TEST) && defined(SQLITE_DEBUG)
25178 25137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
25179 25138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Helper function for printing out trace information from debugging
25180 25139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** binaries. This returns the string represetation of the supplied
25181 25140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** integer lock-type.
25182 25141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -26007,18 +25966,18 @@
26007 25966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** locking a random byte from a range, concurrent SHARED locks may exist
26008 25967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** even if the locking primitive used is always a write-lock.
26009 25968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
26010 25969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK;
26011 25970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unixFile *pFile = (unixFile*)id;
26012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unixInodeInfo *pInode = pFile->pInode;
25971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unixInodeInfo *pInode;
26013 25972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct flock lock;
26014 25973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tErrno = 0;
26015 25974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26016 25975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFile );
26017 25976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("LOCK %d %s was %s(%s,%d) pid=%d (unix)\n", pFile->h,
26018 25977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
azFileLock(eFileLock), azFileLock(pFile->eFileLock),
26019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- azFileLock(pInode->eFileLock), pInode->nShared , getpid()));
25978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ azFileLock(pFile->pInode->eFileLock), pFile->pInode->nShared , getpid()));
26020 25979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26021 25980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If there is already a lock of this type or more restrictive on the
26022 25981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unixFile, do nothing. Don't use the end_lock: exit path, as
26023 25982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unixEnterMutex() hasn't been called yet.
26024 25983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -26218,11 +26177,10 @@
26218 26177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int posixUnlock(sqlite3_file *id, int eFileLock, int handleNFSUnlock){
26219 26178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unixFile *pFile = (unixFile*)id;
26220 26179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unixInodeInfo *pInode;
26221 26180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct flock lock;
26222 26181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK;
26223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int h;
26224 26182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26225 26183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pFile );
26226 26184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("UNLOCK %d %d was %d(%d,%d) pid=%d (unix)\n", pFile->h, eFileLock,
26227 26185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFile->eFileLock, pFile->pInode->eFileLock, pFile->pInode->nShared,
26228 26186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
getpid()));
@@ -26230,18 +26188,14 @@
26230 26188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( eFileLock<=SHARED_LOCK );
26231 26189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pFile->eFileLock<=eFileLock ){
26232 26190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
26233 26191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
26234 26192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unixEnterMutex();
26235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- h = pFile->h;
26236 26193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInode = pFile->pInode;
26237 26194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pInode->nShared!=0 );
26238 26195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pFile->eFileLock>SHARED_LOCK ){
26239 26196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pInode->eFileLock==pFile->eFileLock );
26240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOErrorBenign(1);
26241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( h=(-1) )
26242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOErrorBenign(0);
26243 26197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26244 26198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
26245 26199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* When reducing a lock such that other processes can start
26246 26200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** reading the database file again, make sure that the
26247 26201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** transaction counter was updated if any part of the database
@@ -26248,15 +26202,10 @@
26248 26202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** file changed. If the transaction counter is not updated,
26249 26203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** other connections to the same file might not realize that
26250 26204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the file has changed and hence might not know to flush their
26251 26205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** cache. The use of a stale cache can lead to database corruption.
26252 26206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
26253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if 0
26254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile->inNormalWrite==0
26255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || pFile->dbUpdate==0
26256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || pFile->transCntrChng==1 );
26257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
26258 26207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFile->inNormalWrite = 0;
26259 26208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
26260 26209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26261 26210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* downgrading to a shared lock on NFS involves clearing the write lock
26262 26211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** before establishing the readlock - to avoid a race condition we downgrade
@@ -26354,13 +26303,10 @@
26354 26303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInode->nShared--;
26355 26304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pInode->nShared==0 ){
26356 26305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lock.l_type = F_UNLCK;
26357 26306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lock.l_whence = SEEK_SET;
26358 26307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lock.l_start = lock.l_len = 0L;
26359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOErrorBenign(1);
26360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( h=(-1) )
26361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOErrorBenign(0);
26362 26308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( unixFileLock(pFile, &lock)==0 ){
26363 26309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pInode->eFileLock = NO_LOCK;
26364 26310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
26365 26311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_IOERR_UNLOCK;
26366 26312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pFile->lastErrno = errno;
@@ -29191,10 +29137,13 @@
29191 29137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( zFilename==0 || zFilename[0]=='/'
29192 29138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| pVfs->pAppData==(void*)&autolockIoFinder );
29193 29139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
29194 29140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( zFilename==0 || zFilename[0]=='/' );
29195 29141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
29142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
29143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* No locking occurs in temporary files */
29144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( zFilename!=0 || noLock );
29196 29145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
29197 29146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
OSTRACE(("OPEN %-3d %s\n", h, zFilename));
29198 29147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->h = h;
29199 29148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->zPath = zFilename;
29200 29149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( memcmp(pVfs->zName,"unix-excl",10)==0 ){
@@ -29293,10 +29242,11 @@
29293 29242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Dotfile locking uses the file path so it needs to be included in
29294 29243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the dotlockLockingContext
29295 29244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
29296 29245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zLockFile;
29297 29246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nFilename;
29247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( zFilename!=0 );
29298 29248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nFilename = (int)strlen(zFilename) + 6;
29299 29249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLockFile = (char *)sqlite3_malloc(nFilename);
29300 29250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zLockFile==0 ){
29301 29251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
29302 29252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -30072,14 +30022,16 @@
30072 30022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the current time and date as a Julian Day number times 86_400_000. In
30073 30023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** other words, write into *piNow the number of milliseconds since the Julian
30074 30024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** epoch of noon in Greenwich on November 24, 4714 B.C according to the
30075 30025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** proleptic Gregorian calendar.
30076 30026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
30077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** On success, return 0. Return 1 if the time and date cannot be found.
30027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** On success, return SQLITE_OK. Return SQLITE_ERROR if the time and date
30028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cannot be found.
30078 30029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
30079 30030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int unixCurrentTimeInt64(sqlite3_vfs *NotUsed, sqlite3_int64 *piNow){
30080 30031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const sqlite3_int64 unixEpoch = 24405875*(sqlite3_int64)8640000;
30032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK;
30081 30033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(NO_GETTOD)
30082 30034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
time_t t;
30083 30035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
time(&t);
30084 30036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*piNow = ((sqlite3_int64)t)*1000 + unixEpoch;
30085 30037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#elif OS_VXWORKS
@@ -30086,34 +30038,38 @@
30086 30038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct timespec sNow;
30087 30039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
clock_gettime(CLOCK_REALTIME, &sNow);
30088 30040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*piNow = unixEpoch + 1000*(sqlite3_int64)sNow.tv_sec + sNow.tv_nsec/1000000;
30089 30041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
30090 30042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct timeval sNow;
30091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- gettimeofday(&sNow, 0);
30092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *piNow = unixEpoch + 1000*(sqlite3_int64)sNow.tv_sec + sNow.tv_usec/1000;
30043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( gettimeofday(&sNow, 0)==0 ){
30044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *piNow = unixEpoch + 1000*(sqlite3_int64)sNow.tv_sec + sNow.tv_usec/1000;
30045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
30046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_ERROR;
30047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
30093 30048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
30094 30049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
30095 30050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_TEST
30096 30051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3_current_time ){
30097 30052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*piNow = 1000*(sqlite3_int64)sqlite3_current_time + unixEpoch;
30098 30053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
30099 30054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
30100 30055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(NotUsed);
30101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
30056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
30102 30057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
30103 30058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
30104 30059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
30105 30060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Find the current time (in Universal Coordinated Time). Write the
30106 30061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** current time and date as a Julian Day number into *prNow and
30107 30062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** return 0. Return 1 if the time and date cannot be found.
30108 30063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
30109 30064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int unixCurrentTime(sqlite3_vfs *NotUsed, double *prNow){
30110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_int64 i;
30065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_int64 i = 0;
30066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc;
30111 30067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(NotUsed);
30112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unixCurrentTimeInt64(0, &i);
30068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = unixCurrentTimeInt64(0, &i);
30113 30069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*prNow = i/86400000.0;
30114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
30070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
30115 30071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
30116 30072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
30117 30073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
30118 30074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** We added the xGetLastError() method with the intention of providing
30119 30075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** better low-level error messages when operating-system problems come up
@@ -34612,11 +34568,11 @@
34612 34568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34613 34569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void winDlError(sqlite3_vfs *pVfs, int nBuf, char *zBufOut){
34614 34570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(pVfs);
34615 34571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
getLastErrorMsg(nBuf, zBufOut);
34616 34572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void (*winDlSym(sqlite3_vfs *pVfs, void *pHandle, const char *zSymbol))(void){
34573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void (*winDlSym(sqlite3_vfs *pVfs, void *pHandle, const char *zSymbol))(void){
34618 34574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(pVfs);
34619 34575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_OS_WINCE
34620 34576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The GetProcAddressA() routine is only available on wince. */
34621 34577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (void(*)(void))GetProcAddressA((HANDLE)pHandle, zSymbol);
34622 34578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
@@ -34623,11 +34579,11 @@
34623 34579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* All other windows platforms expect GetProcAddress() to take
34624 34580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an Ansi string regardless of the _UNICODE setting */
34625 34581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (void(*)(void))GetProcAddress((HANDLE)pHandle, zSymbol);
34626 34582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
34627 34583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void winDlClose(sqlite3_vfs *pVfs, void *pHandle){
34584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void winDlClose(sqlite3_vfs *pVfs, void *pHandle){
34629 34585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(pVfs);
34630 34586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FreeLibrary((HANDLE)pHandle);
34631 34587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34632 34588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else /* if SQLITE_OMIT_LOAD_EXTENSION is defined: */
34633 34589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define winDlOpen 0
@@ -34697,11 +34653,12 @@
34697 34653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the current time and date as a Julian Day number times 86_400_000. In
34698 34654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** other words, write into *piNow the number of milliseconds since the Julian
34699 34655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** epoch of noon in Greenwich on November 24, 4714 B.C according to the
34700 34656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** proleptic Gregorian calendar.
34701 34657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
34702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** On success, return 0. Return 1 if the time and date cannot be found.
34658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** On success, return SQLITE_OK. Return SQLITE_ERROR if the time and date
34659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cannot be found.
34703 34660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34704 34661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int winCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *piNow){
34705 34662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* FILETIME structure is a 64-bit value representing the number of
34706 34663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
100-nanosecond intervals since January 1, 1601 (= JD 2305813.5).
34707 34664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -34717,11 +34674,11 @@
34717 34674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_OS_WINCE
34718 34675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SYSTEMTIME time;
34719 34676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
GetSystemTime(&time);
34720 34677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* if SystemTimeToFileTime() fails, it returns zero. */
34721 34678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if (!SystemTimeToFileTime(&time,&ft)){
34722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
34679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_ERROR;
34723 34680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34724 34681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
34725 34682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
GetSystemTimeAsFileTime( &ft );
34726 34683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
34727 34684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -34733,19 +34690,19 @@
34733 34690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3_current_time ){
34734 34691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*piNow = 1000*(sqlite3_int64)sqlite3_current_time + unixEpoch;
34735 34692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34736 34693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
34737 34694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(pVfs);
34738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
34695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_OK;
34739 34696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
34740 34697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34741 34698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
34742 34699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Find the current time (in Universal Coordinated Time). Write the
34743 34700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** current time and date as a Julian Day number into *prNow and
34744 34701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** return 0. Return 1 if the time and date cannot be found.
34745 34702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int winCurrentTime(sqlite3_vfs *pVfs, double *prNow){
34703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int winCurrentTime(sqlite3_vfs *pVfs, double *prNow){
34747 34704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
34748 34705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 i;
34749 34706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = winCurrentTimeInt64(pVfs, &i);
34750 34707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !rc ){
34751 34708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*prNow = i/86400000.0;
@@ -40068,11 +40025,10 @@
40068 40025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
needPagerReset = 0;
40069 40026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
40070 40027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = pager_playback_one_page(pPager,&pPager->journalOff,0,1,0);
40071 40028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
40072 40029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_DONE ){
40073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_OK;
40074 40030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPager->journalOff = szJ;
40075 40031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
40076 40032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( rc==SQLITE_IOERR_SHORT_READ ){
40077 40033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the journal has been truncated, simply stop reading and
40078 40034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** processing the journal. This might happen if the journal was
@@ -40330,10 +40286,11 @@
40330 40286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(SQLITE_DEBUG) || defined(SQLITE_CHECK_PAGES)
40331 40287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
PgHdr *p; /* For looping over pages */
40332 40288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
40333 40289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
40334 40290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pPager->pWal );
40291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pList );
40335 40292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_DEBUG
40336 40293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the page list is in accending order */
40337 40294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(p=pList; p && p->pDirty; p=p->pDirty){
40338 40295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->pgno < p->pDirty->pgno );
40339 40296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -46566,11 +46523,11 @@
46566 46523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
46567 46524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iRead ){
46568 46525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int sz;
46569 46526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 iOffset;
46570 46527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sz = pWal->hdr.szPage;
46571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sz = (pWal->hdr.szPage&0xfe00) + ((pWal->hdr.szPage&0x0001)<<16);
46528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sz = (sz&0xfe00) + ((sz&0x0001)<<16);
46572 46529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( sz<=32768 );
46573 46530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
testcase( sz>=65536 );
46574 46531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iOffset = walFrameOffset(iRead, sz) + WAL_FRAME_HDRSIZE;
46575 46532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pInWal = 1;
46576 46533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* testcase( IS_BIG_INT(iOffset) ); // requires a 4GiB WAL */
@@ -49879,21 +49836,23 @@
49879 49836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
49880 49837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( isMemdb==0 && isTempDb==0 ){
49881 49838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( vfsFlags & SQLITE_OPEN_SHAREDCACHE ){
49882 49839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nFullPathname = pVfs->mxPathname+1;
49883 49840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zFullPathname = sqlite3Malloc(nFullPathname);
49884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutexShared;
49841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( sqlite3_mutex *mutexShared; )
49885 49842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->sharable = 1;
49886 49843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !zFullPathname ){
49887 49844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(p);
49888 49845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_NOMEM;
49889 49846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
49890 49847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsFullPathname(pVfs, zFilename, nFullPathname, zFullPathname);
49848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if SQLITE_THREADSAFE
49891 49849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mutexOpen = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_OPEN);
49892 49850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(mutexOpen);
49893 49851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mutexShared = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
49894 49852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(mutexShared);
49853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
49895 49854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(pBt=GLOBAL(BtShared*,sqlite3SharedCacheList); pBt; pBt=pBt->pNext){
49896 49855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pBt->nRef>0 );
49897 49856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0==strcmp(zFullPathname, sqlite3PagerFilename(pBt->pPager))
49898 49857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& sqlite3PagerVfs(pBt->pPager)==pVfs ){
49899 49858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iDb;
@@ -49995,13 +49954,13 @@
49995 49954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
49996 49955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_OMIT_SHARED_CACHE) && !defined(SQLITE_OMIT_DISKIO)
49997 49956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Add the new BtShared object to the linked list sharable BtShareds.
49998 49957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
49999 49958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->sharable ){
50000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutexShared;
49959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( sqlite3_mutex *mutexShared; )
50001 49960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->nRef = 1;
50002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mutexShared = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
49961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( mutexShared = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);)
50003 49962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_THREADSAFE && sqlite3GlobalConfig.bCoreMutex ){
50004 49963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->mutex = sqlite3MutexAlloc(SQLITE_MUTEX_FAST);
50005 49964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt->mutex==0 ){
50006 49965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
50007 49966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->mallocFailed = 0;
@@ -50079,16 +50038,16 @@
50079 50038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** true if the BtShared.nRef counter reaches zero and return
50080 50039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** false if it is still positive.
50081 50040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
50082 50041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int removeFromSharingList(BtShared *pBt){
50083 50042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_SHARED_CACHE
50084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *pMaster;
50043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( sqlite3_mutex *pMaster; )
50085 50044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
BtShared *pList;
50086 50045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int removed = 0;
50087 50046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
50088 50047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_mutex_notheld(pBt->mutex) );
50089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pMaster = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
50048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( pMaster = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); )
50090 50049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(pMaster);
50091 50050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pBt->nRef--;
50092 50051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt->nRef<=0 ){
50093 50052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( GLOBAL(BtShared*,sqlite3SharedCacheList)==pBt ){
50094 50053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
GLOBAL(BtShared*,sqlite3SharedCacheList) = pBt->pNext;
@@ -52698,11 +52657,10 @@
52698 52657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
52699 52658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
52700 52659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( c==0 ){
52701 52660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPage->intKey && !pPage->leaf ){
52702 52661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lwr = idx;
52703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- upr = lwr - 1;
52704 52662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
52705 52663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
52706 52664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pRes = 0;
52707 52665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_OK;
52708 52666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto moveto_finish;
@@ -52716,11 +52674,11 @@
52716 52674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( lwr>upr ){
52717 52675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
52718 52676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
52719 52677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCur->aiIdx[pCur->iPage] = (u16)(idx = (lwr+upr)/2);
52720 52678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
52721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( lwr==upr+1 );
52679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( lwr==upr+1 || (pPage->intKey && !pPage->leaf) );
52722 52680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pPage->isInit );
52723 52681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pPage->leaf ){
52724 52682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
chldPg = 0;
52725 52683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( lwr>=pPage->nCell ){
52726 52684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
chldPg = get4byte(&pPage->aData[pPage->hdrOffset+8]);
@@ -52981,10 +52939,12 @@
52981 52939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
52982 52940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc ){
52983 52941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTrunk = 0;
52984 52942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto end_allocate_page;
52985 52943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
52944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pTrunk!=0 );
52945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pTrunk->aData!=0 );
52986 52946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
52987 52947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
k = get4byte(&pTrunk->aData[4]); /* # of leaves on this trunk page */
52988 52948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( k==0 && !searchList ){
52989 52949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The trunk has no leaves and the list is not being searched.
52990 52950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** So extract the trunk page itself and use it as the newly
@@ -54108,17 +54068,19 @@
54108 54068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This is safe because dropping a cell only overwrites the first
54109 54069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** four bytes of it, and this function does not need the first
54110 54070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** four bytes of the divider cell. So the pointer is safe to use
54111 54071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** later on.
54112 54072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
54113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Unless SQLite is compiled in secure-delete mode. In this case,
54073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** But not if we are in secure-delete mode. In secure-delete mode,
54114 54074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the dropCell() routine will overwrite the entire cell with zeroes.
54115 54075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** In this case, temporarily copy the cell into the aOvflSpace[]
54116 54076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** buffer. It will be copied out again as soon as the aSpace[] buffer
54117 54077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is allocated. */
54118 54078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pBt->secureDelete ){
54119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iOff = SQLITE_PTR_TO_INT(apDiv[i]) - SQLITE_PTR_TO_INT(pParent->aData);
54079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iOff;
54080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
54081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iOff = SQLITE_PTR_TO_INT(apDiv[i]) - SQLITE_PTR_TO_INT(pParent->aData);
54120 54082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (iOff+szNew[i])>(int)pBt->usableSize ){
54121 54083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_CORRUPT_BKPT;
54122 54084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(apOld, 0, (i+1)*sizeof(MemPage*));
54123 54085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto balance_cleanup;
54124 54086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -54534,10 +54496,11 @@
54534 54496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isDivider = 0;
54535 54497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( i==iNextOld ){
54536 54498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Cell i is the cell immediately following the last cell on old
54537 54499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sibling page j. If the siblings are not leaf pages of an
54538 54500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** intkey b-tree, then cell i was a divider cell. */
54501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( j+1 < ArraySize(apCopy) );
54539 54502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pOld = apCopy[++j];
54540 54503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iNextOld = i + !leafData + pOld->nCell + pOld->nOverflow;
54541 54504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pOld->nOverflow ){
54542 54505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nOverflow = pOld->nOverflow;
54543 54506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iOverflow = i + !leafData + pOld->aOvfl[0].idx;
@@ -56876,18 +56839,18 @@
56876 56839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
56877 56840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Release all resources associated with an sqlite3_backup* handle.
56878 56841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
56879 56842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_backup_finish(sqlite3_backup *p){
56880 56843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_backup **pp; /* Ptr to head of pagers backup list */
56881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutex; /* Mutex to protect source database */
56844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( sqlite3_mutex *mutex; ) /* Mutex to protect source database */
56882 56845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc; /* Value to return */
56883 56846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
56884 56847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Enter the mutexes */
56885 56848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p==0 ) return SQLITE_OK;
56886 56849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(p->pSrcDb->mutex);
56887 56850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeEnter(p->pSrc);
56888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mutex = p->pSrcDb->mutex;
56851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( mutex = p->pSrcDb->mutex; )
56889 56852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pDestDb ){
56890 56853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(p->pDestDb->mutex);
56891 56854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
56892 56855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
56893 56856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Detach this backup from the source pager. */
@@ -58983,34 +58946,33 @@
58983 58946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Change the comment on the the most recently coded instruction. Or
58984 58947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** insert a No-op and add the comment to that new instruction. This
58985 58948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** makes the code easier to read during debugging. None of this happens
58986 58949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in a production build.
58987 58950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
58988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE void sqlite3VdbeComment(Vdbe *p, const char *zFormat, ...){
58989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- va_list ap;
58990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !p ) return;
58951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void vdbeVComment(Vdbe *p, const char *zFormat, va_list ap){
58991 58952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->nOp>0 || p->aOp==0 );
58992 58953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( p->aOp==0 || p->aOp[p->nOp-1].zComment==0 || p->db->mallocFailed );
58993 58954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nOp ){
58994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char **pz = &p->aOp[p->nOp-1].zComment;
58955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->aOp );
58956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3DbFree(p->db, p->aOp[p->nOp-1].zComment);
58957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aOp[p->nOp-1].zComment = sqlite3VMPrintf(p->db, zFormat, ap);
58958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
58959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
58960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3VdbeComment(Vdbe *p, const char *zFormat, ...){
58961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ va_list ap;
58962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
58995 58963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
va_start(ap, zFormat);
58996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(p->db, *pz);
58997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pz = sqlite3VMPrintf(p->db, zFormat, ap);
58964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vdbeVComment(p, zFormat, ap);
58998 58965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
va_end(ap);
58999 58966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59000 58967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59001 58968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe *p, const char *zFormat, ...){
59002 58969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
va_list ap;
59003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !p ) return;
59004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3VdbeAddOp0(p, OP_Noop);
59005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->nOp>0 || p->aOp==0 );
59006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->aOp==0 || p->aOp[p->nOp-1].zComment==0 || p->db->mallocFailed );
59007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->nOp ){
59008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char **pz = &p->aOp[p->nOp-1].zComment;
58970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p ){
58971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3VdbeAddOp0(p, OP_Noop);
59009 58972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
va_start(ap, zFormat);
59010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3DbFree(p->db, *pz);
59011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pz = sqlite3VMPrintf(p->db, zFormat, ap);
58973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vdbeVComment(p, zFormat, ap);
59012 58974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
va_end(ap);
59013 58975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59014 58976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59015 58977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* NDEBUG */
59016 58978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -61266,11 +61228,11 @@
61266 61228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** than 2GiB are support - anything large must be database corruption.
61267 61229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Any corruption is detected in sqlite3BtreeParseCellPtr(), though, so
61268 61230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** this code can safely assume that nCellKey is 32-bits
61269 61231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
61270 61232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3BtreeCursorIsValid(pCur) );
61271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeKeySize(pCur, &nCellKey);
61233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VVA_ONLY(rc =) sqlite3BtreeKeySize(pCur, &nCellKey);
61272 61234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK ); /* pCur is always valid so KeySize cannot fail */
61273 61235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (nCellKey & SQLITE_MAX_U32)==(u64)nCellKey );
61274 61236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
61275 61237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Read in the complete content of the index entry */
61276 61238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(&m, 0, sizeof(m));
@@ -61341,11 +61303,11 @@
61341 61303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
61342 61304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
BtCursor *pCur = pC->pCursor;
61343 61305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Mem m;
61344 61306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
61345 61307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3BtreeCursorIsValid(pCur) );
61346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeKeySize(pCur, &nCellKey);
61308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VVA_ONLY(rc =) sqlite3BtreeKeySize(pCur, &nCellKey);
61347 61309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK ); /* pCur is always valid so KeySize cannot fail */
61348 61310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* nCellKey will always be between 0 and 0xffffffff because of the say
61349 61311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */
61350 61312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nCellKey<=0 || nCellKey>0x7fffffff ){
61351 61313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*res = 0;
@@ -65617,20 +65579,20 @@
65617 65579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( u.am.pC->cacheStatus==p->cacheCtr ){
65618 65580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.am.payloadSize = u.am.pC->payloadSize;
65619 65581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.am.zRec = (char*)u.am.pC->aRow;
65620 65582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( u.am.pC->isIndex ){
65621 65583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3BtreeCursorIsValid(u.am.pCrsr) );
65622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeKeySize(u.am.pCrsr, &u.am.payloadSize64);
65584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VVA_ONLY(rc =) sqlite3BtreeKeySize(u.am.pCrsr, &u.am.payloadSize64);
65623 65585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK ); /* True because of CursorMoveto() call above */
65624 65586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* sqlite3BtreeParseCellPtr() uses getVarint32() to extract the
65625 65587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** payload size, so it is impossible for u.am.payloadSize64 to be
65626 65588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** larger than 32 bits. */
65627 65589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( (u.am.payloadSize64 & SQLITE_MAX_U32)==(u64)u.am.payloadSize64 );
65628 65590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.am.payloadSize = (u32)u.am.payloadSize64;
65629 65591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
65630 65592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3BtreeCursorIsValid(u.am.pCrsr) );
65631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeDataSize(u.am.pCrsr, &u.am.payloadSize);
65593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VVA_ONLY(rc =) sqlite3BtreeDataSize(u.am.pCrsr, &u.am.payloadSize);
65632 65594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK ); /* DataSize() cannot fail */
65633 65595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
65634 65596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( ALWAYS(u.am.pC->pseudoTableReg>0) ){
65635 65597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.am.pReg = &aMem[u.am.pC->pseudoTableReg];
65636 65598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.am.pReg->flags & MEM_Blob );
@@ -67678,18 +67640,18 @@
67678 67640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VdbeCursorMoveto(u.bk.pC);
67679 67641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( NEVER(rc!=SQLITE_OK) ) goto abort_due_to_error;
67680 67642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
67681 67643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.bk.pC->isIndex ){
67682 67644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( !u.bk.pC->isTable );
67683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeKeySize(u.bk.pCrsr, &u.bk.n64);
67645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VVA_ONLY(rc =) sqlite3BtreeKeySize(u.bk.pCrsr, &u.bk.n64);
67684 67646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK ); /* True because of CursorMoveto() call above */
67685 67647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.bk.n64>db->aLimit[SQLITE_LIMIT_LENGTH] ){
67686 67648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto too_big;
67687 67649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67688 67650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.bk.n = (u32)u.bk.n64;
67689 67651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
67690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3BtreeDataSize(u.bk.pCrsr, &u.bk.n);
67652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VVA_ONLY(rc =) sqlite3BtreeDataSize(u.bk.pCrsr, &u.bk.n);
67691 67653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( rc==SQLITE_OK ); /* DataSize() cannot fail */
67692 67654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u.bk.n>(u32)db->aLimit[SQLITE_LIMIT_LENGTH] ){
67693 67655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto too_big;
67694 67656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67695 67657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -73322,11 +73284,12 @@
73322 73284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->flags |= EP_IntValue;
73323 73285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->u.iValue = iValue;
73324 73286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
73325 73287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int c;
73326 73288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->u.zToken = (char*)&pNew[1];
73327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(pNew->u.zToken, pToken->z, pToken->n);
73289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pToken->z!=0 || pToken->n==0 );
73290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pToken->n ) memcpy(pNew->u.zToken, pToken->z, pToken->n);
73328 73291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->u.zToken[pToken->n] = 0;
73329 73292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( dequote && nExtra>=3
73330 73293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& ((c = pToken->z[0])=='\'' || c=='"' || c=='[' || c=='`') ){
73331 73294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Dequote(pNew->u.zToken);
73332 73295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( c=='"' ) pNew->flags |= EP_DblQuoted;
@@ -74361,15 +74324,23 @@
74361 74324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ephemeral table.
74362 74325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
74363 74326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = (ExprHasProperty(pX, EP_xIsSelect) ? pX->x.pSelect : 0);
74364 74327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ALWAYS(pParse->nErr==0) && isCandidateForInOpt(p) ){
74365 74328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pParse->db; /* Database connection */
74366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Expr *pExpr = p->pEList->a[0].pExpr; /* Expression <column> */
74367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iCol = pExpr->iColumn; /* Index of column <column> */
74368 74329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v = sqlite3GetVdbe(pParse); /* Virtual machine being coded */
74369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Table *pTab = p->pSrc->a[0].pTab; /* Table <table>. */
74330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Table *pTab; /* Table <table>. */
74331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Expr *pExpr; /* Expression <column> */
74332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCol; /* Index of column <column> */
74370 74333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iDb; /* Database idx for pTab */
74334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
74335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p ); /* Because of isCandidateForInOpt(p) */
74336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->pEList!=0 ); /* Because of isCandidateForInOpt(p) */
74337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->pEList->a[0].pExpr!=0 ); /* Because of isCandidateForInOpt(p) */
74338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->pSrc!=0 ); /* Because of isCandidateForInOpt(p) */
74339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTab = p->pSrc->a[0].pTab;
74340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pExpr = p->pEList->a[0].pExpr;
74341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iCol = pExpr->iColumn;
74371 74342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74372 74343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Code an OP_VerifyCookie and OP_TableLock for <table>. */
74373 74344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
74374 74345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CodeVerifySchema(pParse, iDb);
74375 74346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName);
@@ -76372,11 +76343,11 @@
76372 76343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !ExprHasProperty(pB, EP_IntValue) || pA->u.iValue!=pB->u.iValue ){
76373 76344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 2;
76374 76345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76375 76346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pA->op!=TK_COLUMN && pA->u.zToken ){
76376 76347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ExprHasProperty(pB, EP_IntValue) || NEVER(pB->u.zToken==0) ) return 2;
76377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3StrICmp(pA->u.zToken,pB->u.zToken)!=0 ){
76348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strcmp(pA->u.zToken,pB->u.zToken)!=0 ){
76378 76349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 2;
76379 76350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76380 76351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76381 76352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pA->flags & EP_ExpCollate)!=(pB->flags & EP_ExpCollate) ) return 1;
76382 76353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (pA->flags & EP_ExpCollate)!=0 && pA->pColl!=pB->pColl ) return 2;
@@ -81778,17 +81749,19 @@
81778 81749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
81779 81750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){
81780 81751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab = pIndex->pTable; /* The table that is indexed */
81781 81752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTab = pParse->nTab++; /* Btree cursor used for pTab */
81782 81753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iIdx = pParse->nTab++; /* Btree cursor used for pIndex */
81783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iSorter = iTab; /* Cursor opened by OpenSorter (if in use) */
81754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iSorter; /* Cursor opened by OpenSorter (if in use) */
81784 81755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addr1; /* Address of top of loop */
81785 81756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int addr2; /* Address to jump to for next iteration */
81786 81757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tnum; /* Root page of index */
81787 81758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v; /* Generate code into this virtual machine */
81788 81759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKey; /* KeyInfo for index */
81760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_OMIT_MERGE_SORT
81789 81761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regIdxKey; /* Registers containing the index key */
81762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
81790 81763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int regRecord; /* Register holding assemblied index record */
81791 81764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = pParse->db; /* The database connection */
81792 81765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iDb = sqlite3SchemaToIndex(db, pIndex->pSchema);
81793 81766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
81794 81767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_AUTHORIZATION
@@ -81818,21 +81791,22 @@
81818 81791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
81819 81792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_MERGE_SORT
81820 81793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Open the sorter cursor if we are to use one. */
81821 81794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iSorter = pParse->nTab++;
81822 81795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_SorterOpen, iSorter, 0, 0, (char*)pKey, P4_KEYINFO);
81796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
81797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iSorter = iTab;
81823 81798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
81824 81799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
81825 81800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Open the table. Loop through all rows of the table, inserting index
81826 81801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** records into the sorter. */
81827 81802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OpenTable(pParse, iTab, iDb, pTab, OP_OpenRead);
81828 81803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr1 = sqlite3VdbeAddOp2(v, OP_Rewind, iTab, 0);
81829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- addr2 = addr1 + 1;
81830 81804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
regRecord = sqlite3GetTempReg(pParse);
81831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- regIdxKey = sqlite3GenerateIndexKey(pParse, pIndex, iTab, regRecord, 1);
81832 81805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
81833 81806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_MERGE_SORT
81807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3GenerateIndexKey(pParse, pIndex, iTab, regRecord, 1);
81834 81808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_SorterInsert, iSorter, regRecord);
81835 81809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Next, iTab, addr1+1);
81836 81810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr1);
81837 81811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
addr1 = sqlite3VdbeAddOp2(v, OP_SorterSort, iSorter, 0);
81838 81812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIndex->onError!=OE_None ){
@@ -81848,10 +81822,12 @@
81848 81822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81849 81823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_SorterData, iSorter, regRecord);
81850 81824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_IdxInsert, iIdx, regRecord, 1);
81851 81825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);
81852 81826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
81827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regIdxKey = sqlite3GenerateIndexKey(pParse, pIndex, iTab, regRecord, 1);
81828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ addr2 = addr1 + 1;
81853 81829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIndex->onError!=OE_None ){
81854 81830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const int regRowid = regIdxKey + pIndex->nColumn;
81855 81831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const int j2 = sqlite3VdbeCurrentAddr(v) + 2;
81856 81832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void * const pRegKey = SQLITE_INT_TO_PTR(regIdxKey);
81857 81833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -81945,10 +81921,11 @@
81945 81921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** before looking up the table.
81946 81922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
81947 81923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pName1 && pName2 );
81948 81924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName);
81949 81925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iDb<0 ) goto exit_create_index;
81926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pName && pName->z );
81950 81927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
81951 81928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TEMPDB
81952 81929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the index name was unqualified, check if the the table
81953 81930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is a temp table. If so, set the database to 1. Do not do this
81954 81931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** if initialising a database schema.
@@ -81972,10 +81949,11 @@
81972 81949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTblName->a[0].zDatabase);
81973 81950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pTab || db->mallocFailed ) goto exit_create_index;
81974 81951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db->aDb[iDb].pSchema==pTab->pSchema );
81975 81952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
81976 81953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pName==0 );
81954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pStart==0 );
81977 81955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab = pParse->pNewTable;
81978 81956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pTab ) goto exit_create_index;
81979 81957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
81980 81958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
81981 81959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pDb = &db->aDb[iDb];
@@ -82014,10 +81992,11 @@
82014 81992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** own name.
82015 81993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
82016 81994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pName ){
82017 81995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = sqlite3NameFromToken(db, pName);
82018 81996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zName==0 ) goto exit_create_index;
81997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pName->z!=0 );
82019 81998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){
82020 81999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto exit_create_index;
82021 82000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
82022 82001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !db->init.busy ){
82023 82002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3FindTable(db, zName, 0)!=0 ){
@@ -82869,17 +82848,14 @@
82869 82848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
82870 82849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
82871 82850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Commit a transaction
82872 82851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
82873 82852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3CommitTransaction(Parse *pParse){
82874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db;
82875 82853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v;
82876 82854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
82877 82855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse!=0 );
82878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db = pParse->db;
82879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( db!=0 );
82880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* if( db->aDb[0].pBt==0 ) return; */
82856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pParse->db!=0 );
82881 82857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "COMMIT", 0, 0) ){
82882 82858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
82883 82859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
82884 82860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = sqlite3GetVdbe(pParse);
82885 82861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( v ){
@@ -82889,17 +82865,14 @@
82889 82865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
82890 82866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
82891 82867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Rollback a transaction
82892 82868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
82893 82869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3RollbackTransaction(Parse *pParse){
82894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3 *db;
82895 82870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v;
82896 82871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
82897 82872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse!=0 );
82898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db = pParse->db;
82899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( db!=0 );
82900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* if( db->aDb[0].pBt==0 ) return; */
82873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pParse->db!=0 );
82901 82874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "ROLLBACK", 0, 0) ){
82902 82875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
82903 82876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
82904 82877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = sqlite3GetVdbe(pParse);
82905 82878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( v ){
@@ -84701,20 +84674,19 @@
84701 84674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the call to _bytes() does not invalidate the _text() pointer */
84702 84675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( z2==(char*)sqlite3_value_text(argv[0]) );
84703 84676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z2 ){
84704 84677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z1 = contextMalloc(context, ((i64)n)+1);
84705 84678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z1 ){
84706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(z1, z2, n+1);
84707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; z1[i]; i++){
84708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- z1[i] = (char)sqlite3Toupper(z1[i]);
84679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<n; i++){
84680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z1[i] = (char)sqlite3Toupper(z2[i]);
84709 84681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_result_text(context, z1, -1, sqlite3_free);
84682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(context, z1, n, sqlite3_free);
84711 84683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84712 84684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84713 84685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84714 84686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void lowerFunc(sqlite3_context *context, int argc, sqlite3_value **argv){
84715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 *z1;
84687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *z1;
84716 84688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z2;
84717 84689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, n;
84718 84690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(argc);
84719 84691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z2 = (char*)sqlite3_value_text(argv[0]);
84720 84692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = sqlite3_value_bytes(argv[0]);
@@ -84721,15 +84693,14 @@
84721 84693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Verify that the call to _bytes() does not invalidate the _text() pointer */
84722 84694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( z2==(char*)sqlite3_value_text(argv[0]) );
84723 84695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z2 ){
84724 84696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z1 = contextMalloc(context, ((i64)n)+1);
84725 84697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z1 ){
84726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(z1, z2, n+1);
84727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; z1[i]; i++){
84728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- z1[i] = sqlite3Tolower(z1[i]);
84698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<n; i++){
84699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z1[i] = sqlite3Tolower(z2[i]);
84729 84700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_result_text(context, (char *)z1, -1, sqlite3_free);
84701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(context, z1, n, sqlite3_free);
84731 84702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84732 84703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84733 84704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84734 84705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
84735 84706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -87102,10 +87073,11 @@
87102 87073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3SelectDelete(db, pSelect);
87103 87074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->mallocFailed==1 ){
87104 87075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fkTriggerDelete(db, pTrigger);
87105 87076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
87106 87077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pStep!=0 );
87107 87079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87108 87080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( action ){
87109 87081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case OE_Restrict:
87110 87082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStep->op = TK_SELECT;
87111 87083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
@@ -90025,11 +89997,11 @@
90025 89997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_vfs *pVfs = db->pVfs;
90026 89998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *handle;
90027 89999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int (*xInit)(sqlite3*,char**,const sqlite3_api_routines*);
90028 90000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zErrmsg = 0;
90029 90001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void **aHandle;
90030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int nMsg = 300;
90002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nMsg = 300 + sqlite3Strlen30(zFile);
90031 90003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
90032 90004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pzErrMsg ) *pzErrMsg = 0;
90033 90005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
90034 90006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Ticket #1863. To avoid a creating security problems for older
90035 90007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** applications that relink against newer versions of SQLite, the
@@ -90062,10 +90034,11 @@
90062 90034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
90063 90035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
xInit = (int(*)(sqlite3*,char**,const sqlite3_api_routines*))
90064 90036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsDlSym(pVfs, handle, zProc);
90065 90037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( xInit==0 ){
90066 90038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pzErrMsg ){
90039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nMsg += sqlite3Strlen30(zProc);
90067 90040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pzErrMsg = zErrmsg = sqlite3_malloc(nMsg);
90068 90041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zErrmsg ){
90069 90042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(nMsg, zErrmsg,
90070 90043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"no entry point [%s] in shared library [%s]", zProc,zFile);
90071 90044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3OsDlError(pVfs, nMsg-1, zErrmsg);
@@ -90747,11 +90720,11 @@
90747 90720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
90748 90721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iReg;
90749 90722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ReadSchema(pParse) ) goto pragma_out;
90750 90723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CodeVerifySchema(pParse, iDb);
90751 90724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iReg = ++pParse->nMem;
90752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zLeft[0]=='p' ){
90725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3Tolower(zLeft[0])=='p' ){
90753 90726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Pagecount, iDb, iReg);
90754 90727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
90755 90728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp3(v, OP_MaxPgcnt, iDb, iReg, sqlite3Atoi(zRight));
90756 90729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
90757 90730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_ResultRow, iReg, 1);
@@ -91360,11 +91333,11 @@
91360 91333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_IfNeg, 1, 0, 0}, /* 1 */
91361 91334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_String8, 0, 3, 0}, /* 2 */
91362 91335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ OP_ResultRow, 3, 1, 0},
91363 91336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
91364 91337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isQuick = (zLeft[0]=='q');
91338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isQuick = (sqlite3Tolower(zLeft[0])=='q');
91366 91339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91367 91340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Initialize the VDBE program */
91368 91341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3ReadSchema(pParse) ) goto pragma_out;
91369 91342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pParse->nMem = 6;
91370 91343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeSetNumCols(v, 1);
@@ -93942,11 +93915,14 @@
93942 93915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the column contains an "AS <name>" phrase, use <name> as the name */
93943 93916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = sqlite3DbStrDup(db, zName);
93944 93917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
93945 93918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Expr *pColExpr = p; /* The expression that is the result column name */
93946 93919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Table *pTab; /* Table associated with this expression */
93947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( pColExpr->op==TK_DOT ) pColExpr = pColExpr->pRight;
93920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( pColExpr->op==TK_DOT ){
93921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pColExpr = pColExpr->pRight;
93922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( pColExpr!=0 );
93923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
93948 93924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pColExpr->op==TK_COLUMN && ALWAYS(pColExpr->pTab!=0) ){
93949 93925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* For columns use the column name name */
93950 93926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCol = pColExpr->iColumn;
93951 93927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTab = pColExpr->pTab;
93952 93928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iCol<0 ) iCol = pTab->iPKey;
@@ -98940,10 +98916,11 @@
98940 98916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
98941 98917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98942 98918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98943 98919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98944 98920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
98921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( aRegIdx );
98945 98922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( openAll || aRegIdx[i]>0 ){
98946 98923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
KeyInfo *pKey = sqlite3IndexKeyinfo(pParse, pIdx);
98947 98924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp4(v, OP_OpenWrite, iCur+i+1, pIdx->tnum, iDb,
98948 98925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(char*)pKey, P4_KEYINFO_HANDOFF);
98949 98926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pParse->nTab>iCur+i+1 );
@@ -99113,10 +99090,11 @@
99113 99090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Goto, 0, addr);
99114 99091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeJumpHere(v, addr);
99115 99092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
99116 99093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Close all tables */
99117 99094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
99095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( aRegIdx );
99118 99096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( openAll || aRegIdx[i]>0 ){
99119 99097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Close, iCur+i+1, 0);
99120 99098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99121 99099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99122 99100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VdbeAddOp2(v, OP_Close, iCur, 0);
@@ -103144,11 +103122,10 @@
103144 103122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( roundUp==0 || roundUp==1 );
103145 103123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pIdx->nSample>0 );
103146 103124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pVal==0 ) return SQLITE_ERROR;
103147 103125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = pIdx->aiRowEst[0];
103148 103126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aSample = pIdx->aSample;
103149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- i = 0;
103150 103127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eType = sqlite3_value_type(pVal);
103151 103128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
103152 103129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( eType==SQLITE_INTEGER ){
103153 103130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
v = sqlite3_value_int64(pVal);
103154 103131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r = (i64)v;
@@ -105564,11 +105541,12 @@
105564 105541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( bestJ>=0 );
105565 105542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( notReady & getMask(pMaskSet, pTabList->a[bestJ].iCursor) );
105566 105543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WHERETRACE(("*** Optimizer selects table %d for loop %d"
105567 105544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" with cost=%g and nRow=%g\n",
105568 105545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bestJ, pLevel-pWInfo->a, bestPlan.rCost, bestPlan.plan.nRow));
105569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (bestPlan.plan.wsFlags & WHERE_ORDERBY)!=0 ){
105546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The ALWAYS() that follows was added to hush up clang scan-build */
105547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (bestPlan.plan.wsFlags & WHERE_ORDERBY)!=0 && ALWAYS(ppOrderBy) ){
105570 105548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*ppOrderBy = 0;
105571 105549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105572 105550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (bestPlan.plan.wsFlags & WHERE_DISTINCT)!=0 ){
105573 105551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pWInfo->eDistinct==0 );
105574 105552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pWInfo->eDistinct = WHERE_DISTINCT_ORDERED;
@@ -109180,11 +109158,13 @@
109180 109158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserTOKENTYPE yyminor /* The value for the token */
109181 109159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserARG_PDECL /* Optional %extra_argument parameter */
109182 109160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
109183 109161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
YYMINORTYPE yyminorunion;
109184 109162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yyact; /* The parser action. */
109163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
109185 109164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yyendofinput; /* True if we are at the end of input */
109165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
109186 109166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef YYERRORSYMBOL
109187 109167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int yyerrorhit = 0; /* True if yymajor has invoked an error */
109188 109168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
109189 109169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyParser *yypParser; /* The parser */
109190 109170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -109203,11 +109183,13 @@
109203 109183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yypParser->yyerrcnt = -1;
109204 109184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yypParser->yystack[0].stateno = 0;
109205 109185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yypParser->yystack[0].major = 0;
109206 109186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
109207 109187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyminorunion.yy0 = yyminor;
109188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
109208 109189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyendofinput = (yymajor==0);
109190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
109209 109191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3ParserARG_STORE;
109210 109192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109211 109193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef NDEBUG
109212 109194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yyTraceFILE ){
109213 109195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
@@ -109215,11 +109197,10 @@
109215 109197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
109216 109198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109217 109199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do{
109218 109200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
109219 109201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( yyact<YYNSTATE ){
109220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( !yyendofinput ); /* Impossible to shift the $ token */
109221 109202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yy_shift(yypParser,yyact,yymajor,&yyminorunion);
109222 109203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yypParser->yyerrcnt--;
109223 109204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yymajor = YYNOCODE;
109224 109205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( yyact < YYNSTATE + YYNRULE ){
109225 109206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
yy_reduce(yypParser,yyact-YYNSTATE);
@@ -110607,11 +110588,11 @@
110607 110588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
110608 110589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * Recursive calls to this routine from thread X return immediately
110609 110590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** without blocking.
110610 110591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
110611 110592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_initialize(void){
110612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *pMaster; /* The main static mutex */
110593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( sqlite3_mutex *pMaster; ) /* The main static mutex */
110613 110594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc; /* Result code */
110614 110595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
110615 110596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_OMIT_WSD
110616 110597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_wsd_init(4096, 24);
110617 110598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
@@ -110641,11 +110622,11 @@
110641 110622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This operation is protected by the STATIC_MASTER mutex. Note that
110642 110623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** MutexAlloc() is called for a static mutex prior to initializing the
110643 110624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** malloc subsystem - this implies that the allocation of a static
110644 110625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** mutex must not require support from the malloc subsystem.
110645 110626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
110646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pMaster = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
110627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MUTEX_LOGIC( pMaster = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); )
110647 110628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(pMaster);
110648 110629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3GlobalConfig.isMutexInit = 1;
110649 110630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3GlobalConfig.isMallocInit ){
110650 110631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3MallocInit();
110651 110632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -111715,17 +111696,17 @@
111715 111696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db,
111716 111697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName,
111717 111698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg
111718 111699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
111719 111700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nName = sqlite3Strlen30(zName);
111720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc;
111701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK;
111721 111702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(db->mutex);
111722 111703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3FindFunction(db, zName, nName, nArg, SQLITE_UTF8, 0)==0 ){
111723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3CreateFunc(db, zName, nArg, SQLITE_UTF8,
111724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, sqlite3InvalidFunction, 0, 0, 0);
111704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3CreateFunc(db, zName, nArg, SQLITE_UTF8,
111705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 0, sqlite3InvalidFunction, 0, 0, 0);
111725 111706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3ApiExit(db, SQLITE_OK);
111707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3ApiExit(db, rc);
111727 111708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(db->mutex);
111728 111709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
111729 111710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111730 111711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
111731 111712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifndef SQLITE_OMIT_TRACE
@@ -112783,10 +112764,11 @@
112783 112764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db ){
112784 112765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db->mutex!=0 || isThreadsafe==0 || sqlite3GlobalConfig.bFullMutex==0 );
112785 112766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(db->mutex);
112786 112767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112787 112768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_errcode(db);
112769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( db!=0 || rc==SQLITE_NOMEM );
112788 112770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_NOMEM ){
112789 112771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_close(db);
112790 112772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db = 0;
112791 112773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( rc!=SQLITE_OK ){
112792 112774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->magic = SQLITE_MAGIC_SICK;
@@ -114511,10 +114493,17 @@
114511 114493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
114512 114494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define TESTONLY(X)
114513 114495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
114514 114496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114515 114497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* SQLITE_AMALGAMATION */
114498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
114499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
114500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3Fts3Corrupt(void);
114501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define FTS_CORRUPT_VTAB sqlite3Fts3Corrupt()
114502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
114503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # define FTS_CORRUPT_VTAB SQLITE_CORRUPT_VTAB
114504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
114516 114505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114517 114506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Fts3Table Fts3Table;
114518 114507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Fts3Cursor Fts3Cursor;
114519 114508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Fts3Expr Fts3Expr;
114520 114509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct Fts3Phrase Fts3Phrase;
@@ -115012,11 +115001,11 @@
115012 115001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **pp,
115013 115002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *pStart,
115014 115003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 *pVal
115015 115004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
115016 115005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iVal;
115017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *p = *pp;
115006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *p;
115018 115007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
115019 115008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Pointer p now points at the first byte past the varint we are
115020 115009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** interested in. So, unless the doclist is corrupt, the 0x80 bit is
115021 115010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** clear on character p[-1]. */
115022 115011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(p = (*pp)-2; p>=pStart && *p&0x80; p--);
@@ -115413,11 +115402,11 @@
115413 115402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the output value undefined. Otherwise SQLITE_OK is returned.
115414 115403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
115415 115404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This function is used when parsing the "prefix=" FTS4 parameter.
115416 115405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
115417 115406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int fts3GobbleInt(const char **pp, int *pnOut){
115418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *p = *pp; /* Iterator pointer */
115407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *p; /* Iterator pointer */
115419 115408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nInt = 0; /* Output value */
115420 115409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
115421 115410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(p=*pp; p[0]>='0' && p[0]<='9'; p++){
115422 115411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nInt = nInt * 10 + (p[0] - '0');
115423 115412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -115912,11 +115901,11 @@
115912 115901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
115913 115902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If no row was found and no error has occured, then the %_content
115914 115903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** table is missing a row that is present in the full-text index.
115915 115904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The data structures are corrupt.
115916 115905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
115917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_CORRUPT_VTAB;
115906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = FTS_CORRUPT_VTAB;
115918 115907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115919 115908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCsr->isEof = 1;
115920 115909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pContext ){
115921 115910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_error_code(pContext, rc);
115922 115911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -115972,11 +115961,11 @@
115972 115961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** nNode bytes of content (see sqlite3Fts3ReadBlock() for details).
115973 115962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
115974 115963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCsr += sqlite3Fts3GetVarint(zCsr, &iChild);
115975 115964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCsr += sqlite3Fts3GetVarint(zCsr, &iChild);
115976 115965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zCsr>zEnd ){
115977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_CORRUPT_VTAB;
115966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return FTS_CORRUPT_VTAB;
115978 115967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115979 115968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
115980 115969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( zCsr<zEnd && (piFirst || piLast) ){
115981 115970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cmp; /* memcmp() result */
115982 115971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nSuffix; /* Size of term suffix */
@@ -115990,11 +115979,11 @@
115990 115979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115991 115980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isFirstTerm = 0;
115992 115981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCsr += sqlite3Fts3GetVarint32(zCsr, &nSuffix);
115993 115982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
115994 115983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nPrefix<0 || nSuffix<0 || &zCsr[nSuffix]>zEnd ){
115995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_CORRUPT_VTAB;
115984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = FTS_CORRUPT_VTAB;
115996 115985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto finish_scan;
115997 115986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115998 115987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nPrefix+nSuffix>nAlloc ){
115999 115988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zNew;
116000 115989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nAlloc = (nPrefix+nSuffix) * 2;
@@ -116003,10 +115992,11 @@
116003 115992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
116004 115993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto finish_scan;
116005 115994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
116006 115995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBuffer = zNew;
116007 115996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( zBuffer );
116008 115998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(&zBuffer[nPrefix], zCsr, nSuffix);
116009 115999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nBuffer = nPrefix + nSuffix;
116010 116000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCsr += nSuffix;
116011 116001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
116012 116002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Compare the term we are searching for with the term just loaded from
@@ -117439,11 +117429,11 @@
117439 117429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** moves *ppPoslist so that it instead points to the first byte of the
117440 117430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** same position list.
117441 117431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
117442 117432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void fts3ReversePoslist(char *pStart, char **ppPoslist){
117443 117433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *p = &(*ppPoslist)[-2];
117444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char c;
117434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char c = 0;
117445 117435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
117446 117436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( p>pStart && (c=*p--)==0 );
117447 117437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( p>pStart && (*p & 0x80) | c ){
117448 117438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
c = *p--;
117449 117439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -118433,11 +118423,11 @@
118433 118423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( a<pEnd ){
118434 118424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
a += sqlite3Fts3GetVarint(a, &nByte);
118435 118425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118436 118426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nDoc==0 || nByte==0 ){
118437 118427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_reset(pStmt);
118438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_CORRUPT_VTAB;
118428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return FTS_CORRUPT_VTAB;
118439 118429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118440 118430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
118441 118431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCsr->nDoc = nDoc;
118442 118432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCsr->nRowAvg = (int)(((nByte / nDoc) + p->nPgsz) / p->nPgsz);
118443 118433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( pCsr->nRowAvg>0 );
@@ -118909,12 +118899,15 @@
118909 118899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118910 118900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
118911 118901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
aPoslist = pExpr->pRight->pPhrase->doclist.pList;
118912 118902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nToken = pExpr->pRight->pPhrase->nToken;
118913 118903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(p=pExpr->pLeft; p && res; p=p->pLeft){
118914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nNear = p->pParent->nNear;
118915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Fts3Phrase *pPhrase = (
118904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nNear;
118905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Fts3Phrase *pPhrase;
118906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->pParent && p->pParent->pLeft==p );
118907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nNear = p->pParent->nNear;
118908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pPhrase = (
118916 118909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->eType==FTSQUERY_NEAR ? p->pRight->pPhrase : p->pPhrase
118917 118910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
118918 118911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
res = fts3EvalNearTrim(nNear, aTmp, &aPoslist, &nToken, pPhrase);
118919 118912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118920 118913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -119400,10 +119393,19 @@
119400 119393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pPhrase->aToken[i].pSegcsr = 0;
119401 119394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119402 119395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119403 119396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119404 119397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
119398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
119399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return SQLITE_CORRUPT_VTAB.
119400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
119401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef SQLITE_DEBUG
119402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE int sqlite3Fts3Corrupt(){
119403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_CORRUPT_VTAB;
119404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
119405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
119406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
119405 119407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !SQLITE_CORE
119406 119408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
119407 119409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Initialize API pointer table, if required.
119408 119410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
119409 119411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_extension_init(
@@ -120197,12 +120199,16 @@
120197 120199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPhrase = (Fts3Phrase *)&p[1];
120198 120200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPhrase->iColumn = pParse->iDefaultCol;
120199 120201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPhrase->nToken = nToken;
120200 120202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
120201 120203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBuf = (char *)&p->pPhrase->aToken[nToken];
120202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(zBuf, zTemp, nTemp);
120203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(zTemp);
120204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zTemp ){
120205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(zBuf, zTemp, nTemp);
120206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(zTemp);
120207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
120208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( nTemp==0 );
120209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
120204 120210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
120205 120211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(jj=0; jj<p->pPhrase->nToken; jj++){
120206 120212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPhrase->aToken[jj].z = zBuf;
120207 120213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBuf += p->pPhrase->aToken[jj].n;
120208 120214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -122957,11 +122963,11 @@
122957 122963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_bind_int64(pStmt, 1, iDocid);
122958 122964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
122959 122965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_step(pStmt);
122960 122966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_ROW || sqlite3_column_type(pStmt, 0)!=SQLITE_BLOB ){
122961 122967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_reset(pStmt);
122962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ) rc = SQLITE_CORRUPT_VTAB;
122968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK ) rc = FTS_CORRUPT_VTAB;
122963 122969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStmt = 0;
122964 122970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
122965 122971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_OK;
122966 122972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
122967 122973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -123761,11 +123767,11 @@
123761 123767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNext += sqlite3Fts3GetVarint32(pNext, &nPrefix);
123762 123768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNext += sqlite3Fts3GetVarint32(pNext, &nSuffix);
123763 123769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nPrefix<0 || nSuffix<=0
123764 123770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| &pNext[nSuffix]>&pReader->aNode[pReader->nNode]
123765 123771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
123766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_CORRUPT_VTAB;
123772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return FTS_CORRUPT_VTAB;
123767 123773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
123768 123774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
123769 123775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nPrefix+nSuffix>pReader->nTermAlloc ){
123770 123776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nNew = (nPrefix+nSuffix)*2;
123771 123777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zNew = sqlite3_realloc(pReader->zTerm, nNew);
@@ -123791,11 +123797,11 @@
123791 123797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of these statements is untrue, then the data structure is corrupt.
123792 123798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
123793 123799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( &pReader->aDoclist[pReader->nDoclist]>&pReader->aNode[pReader->nNode]
123794 123800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])
123795 123801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
123796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_CORRUPT_VTAB;
123802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return FTS_CORRUPT_VTAB;
123797 123803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
123798 123804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
123799 123805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
123800 123806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
123801 123807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -125745,11 +125751,10 @@
125745 125751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite_int64 *pRowid /* OUT: The affected (or effected) rowid */
125746 125752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
125747 125753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Fts3Table *p = (Fts3Table *)pVtab;
125748 125754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = SQLITE_OK; /* Return Code */
125749 125755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isRemove = 0; /* True for an UPDATE or DELETE */
125750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_int64 iRemove = 0; /* Rowid removed by UPDATE or DELETE */
125751 125756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 *aSzIns = 0; /* Sizes of inserted documents */
125752 125757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 *aSzDel; /* Sizes of deleted documents */
125753 125758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nChng = 0; /* Net change in number of documents */
125754 125759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bInsertDone = 0;
125755 125760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -125828,23 +125833,23 @@
125828 125833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this is a DELETE or UPDATE operation, remove the old record. */
125829 125834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3_value_type(apVal[0])!=SQLITE_NULL ){
125830 125835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_value_type(apVal[0])==SQLITE_INTEGER );
125831 125836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts3DeleteByRowid(p, apVal[0], &nChng, aSzDel);
125832 125837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isRemove = 1;
125833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iRemove = sqlite3_value_int64(apVal[0]);
125834 125838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125835 125839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125836 125840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If this is an INSERT or UPDATE operation, insert the new record. */
125837 125841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nArg>1 && rc==SQLITE_OK ){
125838 125842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bInsertDone==0 ){
125839 125843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts3InsertData(p, apVal, pRowid);
125840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_CONSTRAINT ) rc = SQLITE_CORRUPT_VTAB;
125844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_CONSTRAINT ) rc = FTS_CORRUPT_VTAB;
125841 125845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK && (!isRemove || *pRowid!=iRemove) ){
125846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc==SQLITE_OK && (!isRemove || *pRowid!=p->iPrevDocid ) ){
125843 125847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts3PendingTermsDocid(p, *pRowid);
125844 125848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125845 125849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_OK ){
125850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( p->iPrevDocid==*pRowid );
125846 125851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts3InsertTerms(p, apVal, aSzIns);
125847 125852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125848 125853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->bHasDocsize ){
125849 125854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fts3InsertDocsize(&rc, p, aSzIns);
125850 125855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -126734,11 +126739,11 @@
126734 126739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStmt = *ppStmt;
126735 126740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3_data_count(pStmt)==1 );
126736 126741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126737 126742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
a = sqlite3_column_blob(pStmt, 0);
126738 126743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
a += sqlite3Fts3GetVarint(a, &nDoc);
126739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( nDoc==0 ) return SQLITE_CORRUPT_VTAB;
126744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nDoc==0 ) return FTS_CORRUPT_VTAB;
126740 126745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pnDoc = (u32)nDoc;
126741 126746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126742 126747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( paLen ) *paLen = a;
126743 126748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
126744 126749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -127313,11 +127318,11 @@
127313 127318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(sizeof(aBuffer), aBuffer,
127314 127319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"%d %d %d %d ", iCol, pTerm-sCtx.aTerm, iStart, iEnd-iStart
127315 127320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
127316 127321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = fts3StringAppend(&res, aBuffer, -1);
127317 127322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( rc==SQLITE_DONE ){
127318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_CORRUPT_VTAB;
127323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = FTS_CORRUPT_VTAB;
127319 127324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127320 127325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127321 127326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
127322 127327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_DONE ){
127323 127328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_OK;
@@ -128654,11 +128659,12 @@
128654 128659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCsr->nConstraint = argc;
128655 128660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pCsr->aConstraint ){
128656 128661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_NOMEM;
128657 128662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
128658 128663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(pCsr->aConstraint, 0, sizeof(RtreeConstraint)*argc);
128659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (idxStr==0 && argc==0) || (int)strlen(idxStr)==argc*2 );
128664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (idxStr==0 && argc==0)
128665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (idxStr && (int)strlen(idxStr)==argc*2) );
128660 128666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(ii=0; ii<argc; ii++){
128661 128667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
RtreeConstraint *p = &pCsr->aConstraint[ii];
128662 128668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->op = idxStr[ii*2];
128663 128669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->iCoord = idxStr[ii*2+1]-'a';
128664 128670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->op==RTREE_MATCH ){
@@ -128955,11 +128961,14 @@
128955 128961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCell;
128956 128962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iBest = 0;
128957 128963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128958 128964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
float fMinGrowth = 0.0;
128959 128965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
float fMinArea = 0.0;
128966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if VARIANT_RSTARTREE_CHOOSESUBTREE
128960 128967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
float fMinOverlap = 0.0;
128968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ float overlap;
128969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
128961 128970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128962 128971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCell = NCELL(pNode);
128963 128972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
RtreeCell cell;
128964 128973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
RtreeNode *pChild;
128965 128974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -128987,33 +128996,34 @@
128987 128996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
128988 128997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(iCell=0; iCell<nCell; iCell++){
128989 128998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bBest = 0;
128990 128999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
float growth;
128991 129000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
float area;
128992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- float overlap = 0.0;
128993 129001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nodeGetCell(pRtree, pNode, iCell, &cell);
128994 129002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
growth = cellGrowth(pRtree, &cell, pCell);
128995 129003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
area = cellArea(pRtree, &cell);
128996 129004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128997 129005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if VARIANT_RSTARTREE_CHOOSESUBTREE
128998 129006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ii==(pRtree->iDepth-1) ){
128999 129007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
overlap = cellOverlapEnlargement(pRtree,&cell,pCell,aCell,nCell,iCell);
129008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
129009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ overlap = 0.0;
129000 129010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129001 129011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (iCell==0)
129002 129012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (overlap<fMinOverlap)
129003 129013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (overlap==fMinOverlap && growth<fMinGrowth)
129004 129014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (overlap==fMinOverlap && growth==fMinGrowth && area<fMinArea)
129005 129015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
129006 129016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bBest = 1;
129017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fMinOverlap = overlap;
129007 129018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129008 129019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
129009 129020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iCell==0||growth<fMinGrowth||(growth==fMinGrowth && area<fMinArea) ){
129010 129021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bBest = 1;
129011 129022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129012 129023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
129013 129024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bBest ){
129014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fMinOverlap = overlap;
129015 129025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fMinGrowth = growth;
129016 129026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fMinArea = area;
129017 129027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iBest = cell.iRowid;
129018 129028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129019 129029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
129020 129030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!