Fossil SCM

Update to the built-in SQLite latest 3.35 alpha with performance enhancements and with the new ".stats vmstep" command for easier performance measurement.

drh 2021-01-10 19:28 trunk
Commit 7bf929984a46ab608e5c639e2b2d23d95b9e4d767b50beacb4360d05119457fe
3 files changed +36 -9 +103 -112 +1 -1
+36 -9
--- src/shell.c
+++ src/shell.c
@@ -2015,13 +2015,15 @@
20152015
sqlite3_free(zMsg);
20162016
return;
20172017
}
20182018
nCol = sqlite3_column_count(pStmt);
20192019
z = sqlite3_sql(pStmt);
2020
- n = (int)strlen(z);
2021
- hash_step_vformat(&cx,"S%d:",n);
2022
- SHA3Update(&cx,(unsigned char*)z,n);
2020
+ if( z ){
2021
+ n = (int)strlen(z);
2022
+ hash_step_vformat(&cx,"S%d:",n);
2023
+ SHA3Update(&cx,(unsigned char*)z,n);
2024
+ }
20232025
20242026
/* Compute a hash over the result of the query */
20252027
while( SQLITE_ROW==sqlite3_step(pStmt) ){
20262028
SHA3Update(&cx,(const unsigned char*)"R",1);
20272029
for(i=0; i<nCol; i++){
@@ -11125,16 +11127,16 @@
1112511127
sqlite3 *db; /* The database */
1112611128
u8 autoExplain; /* Automatically turn on .explain mode */
1112711129
u8 autoEQP; /* Run EXPLAIN QUERY PLAN prior to seach SQL stmt */
1112811130
u8 autoEQPtest; /* autoEQP is in test mode */
1112911131
u8 autoEQPtrace; /* autoEQP is in trace mode */
11130
- u8 statsOn; /* True to display memory stats before each finalize */
1113111132
u8 scanstatsOn; /* True to display scan stats before each finalize */
1113211133
u8 openMode; /* SHELL_OPEN_NORMAL, _APPENDVFS, or _ZIPFILE */
1113311134
u8 doXdgOpen; /* Invoke start/open/xdg-open in output_reset() */
1113411135
u8 nEqpLevel; /* Depth of the EQP output graph */
1113511136
u8 eTraceType; /* SHELL_TRACE_* value for type of trace */
11137
+ unsigned statsOn; /* True to display memory stats before each finalize */
1113611138
unsigned mEqpLines; /* Mask of veritical lines in the EQP output graph */
1113711139
int outCount; /* Revert to stdout when reaching zero */
1113811140
int cnt; /* Number of records displayed so far */
1113911141
int lineno; /* Line number of last line read from in */
1114011142
int openFlags; /* Additional flags to open. (SQLITE_OPEN_NOFOLLOW) */
@@ -12631,11 +12633,11 @@
1263112633
int iHiwtr;
1263212634
FILE *out;
1263312635
if( pArg==0 || pArg->out==0 ) return 0;
1263412636
out = pArg->out;
1263512637
12636
- if( pArg->pStmt && (pArg->statsOn & 2) ){
12638
+ if( pArg->pStmt && pArg->statsOn==2 ){
1263712639
int nCol, i, x;
1263812640
sqlite3_stmt *pStmt = pArg->pStmt;
1263912641
char z[100];
1264012642
nCol = sqlite3_column_count(pStmt);
1264112643
raw_printf(out, "%-36s %d\n", "Number of output columns:", nCol);
@@ -12654,10 +12656,18 @@
1265412656
sqlite3_snprintf(30, z+x, "origin name:");
1265512657
utf8_printf(out, "%-36s %s\n", z, sqlite3_column_origin_name(pStmt,i));
1265612658
#endif
1265712659
}
1265812660
}
12661
+
12662
+ if( pArg->statsOn==3 ){
12663
+ if( pArg->pStmt ){
12664
+ iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_VM_STEP, bReset);
12665
+ raw_printf(pArg->out, "VM-steps: %d\n", iCur);
12666
+ }
12667
+ return 0;
12668
+ }
1265912669
1266012670
displayStatLine(pArg, "Memory Used:",
1266112671
"%lld (max %lld) bytes", SQLITE_STATUS_MEMORY_USED, bReset);
1266212672
displayStatLine(pArg, "Number of Outstanding Allocations:",
1266312673
"%lld (max %lld)", SQLITE_STATUS_MALLOC_COUNT, bReset);
@@ -14087,11 +14097,15 @@
1408714097
" Any other argument is a LIKE pattern for tables to hash",
1408814098
#ifndef SQLITE_NOHAVE_SYSTEM
1408914099
".shell CMD ARGS... Run CMD ARGS... in a system shell",
1409014100
#endif
1409114101
".show Show the current values for various settings",
14092
- ".stats ?on|off? Show stats or turn stats on or off",
14102
+ ".stats ?ARG? Show stats or turn stats on or off",
14103
+ " off Turn off automatic stat display",
14104
+ " on Turn on automatic stat display",
14105
+ " stmt Show statement stats",
14106
+ " vmstep Show the virtual machine step count only",
1409314107
#ifndef SQLITE_NOHAVE_SYSTEM
1409414108
".system CMD ARGS... Run CMD ARGS... in a system shell",
1409514109
#endif
1409614110
".tables ?TABLE? List names of tables matching LIKE pattern TABLE",
1409714111
".testcase NAME Begin redirecting output to 'testcase-out.txt'",
@@ -19764,10 +19778,11 @@
1976419778
}else
1976519779
#endif /* !defined(SQLITE_NOHAVE_SYSTEM) */
1976619780
1976719781
if( c=='s' && strncmp(azArg[0], "show", n)==0 ){
1976819782
static const char *azBool[] = { "off", "on", "trigger", "full"};
19783
+ const char *zOut;
1976919784
int i;
1977019785
if( nArg!=1 ){
1977119786
raw_printf(stderr, "Usage: .show\n");
1977219787
rc = 1;
1977319788
goto meta_command_exit;
@@ -19788,11 +19803,17 @@
1978819803
output_c_string(p->out, p->colSeparator);
1978919804
raw_printf(p->out, "\n");
1979019805
utf8_printf(p->out,"%12.12s: ", "rowseparator");
1979119806
output_c_string(p->out, p->rowSeparator);
1979219807
raw_printf(p->out, "\n");
19793
- utf8_printf(p->out, "%12.12s: %s\n","stats", azBool[p->statsOn!=0]);
19808
+ switch( p->statsOn ){
19809
+ case 0: zOut = "off"; break;
19810
+ default: zOut = "on"; break;
19811
+ case 2: zOut = "stmt"; break;
19812
+ case 3: zOut = "vmstep"; break;
19813
+ }
19814
+ utf8_printf(p->out, "%12.12s: %s\n","stats", zOut);
1979419815
utf8_printf(p->out, "%12.12s: ", "width");
1979519816
for (i=0;i<p->nWidth;i++) {
1979619817
raw_printf(p->out, "%d ", p->colWidth[i]);
1979719818
}
1979819819
raw_printf(p->out, "\n");
@@ -19800,15 +19821,21 @@
1980019821
p->zDbFilename ? p->zDbFilename : "");
1980119822
}else
1980219823
1980319824
if( c=='s' && strncmp(azArg[0], "stats", n)==0 ){
1980419825
if( nArg==2 ){
19805
- p->statsOn = (u8)booleanValue(azArg[1]);
19826
+ if( strcmp(azArg[1],"stmt")==0 ){
19827
+ p->statsOn = 2;
19828
+ }else if( strcmp(azArg[1],"vmstep")==0 ){
19829
+ p->statsOn = 3;
19830
+ }else{
19831
+ p->statsOn = (u8)booleanValue(azArg[1]);
19832
+ }
1980619833
}else if( nArg==1 ){
1980719834
display_stats(p->db, p, 0);
1980819835
}else{
19809
- raw_printf(stderr, "Usage: .stats ?on|off?\n");
19836
+ raw_printf(stderr, "Usage: .stats ?on|off|stmt|vmstep?\n");
1981019837
rc = 1;
1981119838
}
1981219839
}else
1981319840
1981419841
if( (c=='t' && n>1 && strncmp(azArg[0], "tables", n)==0)
1981519842
--- src/shell.c
+++ src/shell.c
@@ -2015,13 +2015,15 @@
2015 sqlite3_free(zMsg);
2016 return;
2017 }
2018 nCol = sqlite3_column_count(pStmt);
2019 z = sqlite3_sql(pStmt);
2020 n = (int)strlen(z);
2021 hash_step_vformat(&cx,"S%d:",n);
2022 SHA3Update(&cx,(unsigned char*)z,n);
 
 
2023
2024 /* Compute a hash over the result of the query */
2025 while( SQLITE_ROW==sqlite3_step(pStmt) ){
2026 SHA3Update(&cx,(const unsigned char*)"R",1);
2027 for(i=0; i<nCol; i++){
@@ -11125,16 +11127,16 @@
11125 sqlite3 *db; /* The database */
11126 u8 autoExplain; /* Automatically turn on .explain mode */
11127 u8 autoEQP; /* Run EXPLAIN QUERY PLAN prior to seach SQL stmt */
11128 u8 autoEQPtest; /* autoEQP is in test mode */
11129 u8 autoEQPtrace; /* autoEQP is in trace mode */
11130 u8 statsOn; /* True to display memory stats before each finalize */
11131 u8 scanstatsOn; /* True to display scan stats before each finalize */
11132 u8 openMode; /* SHELL_OPEN_NORMAL, _APPENDVFS, or _ZIPFILE */
11133 u8 doXdgOpen; /* Invoke start/open/xdg-open in output_reset() */
11134 u8 nEqpLevel; /* Depth of the EQP output graph */
11135 u8 eTraceType; /* SHELL_TRACE_* value for type of trace */
 
11136 unsigned mEqpLines; /* Mask of veritical lines in the EQP output graph */
11137 int outCount; /* Revert to stdout when reaching zero */
11138 int cnt; /* Number of records displayed so far */
11139 int lineno; /* Line number of last line read from in */
11140 int openFlags; /* Additional flags to open. (SQLITE_OPEN_NOFOLLOW) */
@@ -12631,11 +12633,11 @@
12631 int iHiwtr;
12632 FILE *out;
12633 if( pArg==0 || pArg->out==0 ) return 0;
12634 out = pArg->out;
12635
12636 if( pArg->pStmt && (pArg->statsOn & 2) ){
12637 int nCol, i, x;
12638 sqlite3_stmt *pStmt = pArg->pStmt;
12639 char z[100];
12640 nCol = sqlite3_column_count(pStmt);
12641 raw_printf(out, "%-36s %d\n", "Number of output columns:", nCol);
@@ -12654,10 +12656,18 @@
12654 sqlite3_snprintf(30, z+x, "origin name:");
12655 utf8_printf(out, "%-36s %s\n", z, sqlite3_column_origin_name(pStmt,i));
12656 #endif
12657 }
12658 }
 
 
 
 
 
 
 
 
12659
12660 displayStatLine(pArg, "Memory Used:",
12661 "%lld (max %lld) bytes", SQLITE_STATUS_MEMORY_USED, bReset);
12662 displayStatLine(pArg, "Number of Outstanding Allocations:",
12663 "%lld (max %lld)", SQLITE_STATUS_MALLOC_COUNT, bReset);
@@ -14087,11 +14097,15 @@
14087 " Any other argument is a LIKE pattern for tables to hash",
14088 #ifndef SQLITE_NOHAVE_SYSTEM
14089 ".shell CMD ARGS... Run CMD ARGS... in a system shell",
14090 #endif
14091 ".show Show the current values for various settings",
14092 ".stats ?on|off? Show stats or turn stats on or off",
 
 
 
 
14093 #ifndef SQLITE_NOHAVE_SYSTEM
14094 ".system CMD ARGS... Run CMD ARGS... in a system shell",
14095 #endif
14096 ".tables ?TABLE? List names of tables matching LIKE pattern TABLE",
14097 ".testcase NAME Begin redirecting output to 'testcase-out.txt'",
@@ -19764,10 +19778,11 @@
19764 }else
19765 #endif /* !defined(SQLITE_NOHAVE_SYSTEM) */
19766
19767 if( c=='s' && strncmp(azArg[0], "show", n)==0 ){
19768 static const char *azBool[] = { "off", "on", "trigger", "full"};
 
19769 int i;
19770 if( nArg!=1 ){
19771 raw_printf(stderr, "Usage: .show\n");
19772 rc = 1;
19773 goto meta_command_exit;
@@ -19788,11 +19803,17 @@
19788 output_c_string(p->out, p->colSeparator);
19789 raw_printf(p->out, "\n");
19790 utf8_printf(p->out,"%12.12s: ", "rowseparator");
19791 output_c_string(p->out, p->rowSeparator);
19792 raw_printf(p->out, "\n");
19793 utf8_printf(p->out, "%12.12s: %s\n","stats", azBool[p->statsOn!=0]);
 
 
 
 
 
 
19794 utf8_printf(p->out, "%12.12s: ", "width");
19795 for (i=0;i<p->nWidth;i++) {
19796 raw_printf(p->out, "%d ", p->colWidth[i]);
19797 }
19798 raw_printf(p->out, "\n");
@@ -19800,15 +19821,21 @@
19800 p->zDbFilename ? p->zDbFilename : "");
19801 }else
19802
19803 if( c=='s' && strncmp(azArg[0], "stats", n)==0 ){
19804 if( nArg==2 ){
19805 p->statsOn = (u8)booleanValue(azArg[1]);
 
 
 
 
 
 
19806 }else if( nArg==1 ){
19807 display_stats(p->db, p, 0);
19808 }else{
19809 raw_printf(stderr, "Usage: .stats ?on|off?\n");
19810 rc = 1;
19811 }
19812 }else
19813
19814 if( (c=='t' && n>1 && strncmp(azArg[0], "tables", n)==0)
19815
--- src/shell.c
+++ src/shell.c
@@ -2015,13 +2015,15 @@
2015 sqlite3_free(zMsg);
2016 return;
2017 }
2018 nCol = sqlite3_column_count(pStmt);
2019 z = sqlite3_sql(pStmt);
2020 if( z ){
2021 n = (int)strlen(z);
2022 hash_step_vformat(&cx,"S%d:",n);
2023 SHA3Update(&cx,(unsigned char*)z,n);
2024 }
2025
2026 /* Compute a hash over the result of the query */
2027 while( SQLITE_ROW==sqlite3_step(pStmt) ){
2028 SHA3Update(&cx,(const unsigned char*)"R",1);
2029 for(i=0; i<nCol; i++){
@@ -11125,16 +11127,16 @@
11127 sqlite3 *db; /* The database */
11128 u8 autoExplain; /* Automatically turn on .explain mode */
11129 u8 autoEQP; /* Run EXPLAIN QUERY PLAN prior to seach SQL stmt */
11130 u8 autoEQPtest; /* autoEQP is in test mode */
11131 u8 autoEQPtrace; /* autoEQP is in trace mode */
 
11132 u8 scanstatsOn; /* True to display scan stats before each finalize */
11133 u8 openMode; /* SHELL_OPEN_NORMAL, _APPENDVFS, or _ZIPFILE */
11134 u8 doXdgOpen; /* Invoke start/open/xdg-open in output_reset() */
11135 u8 nEqpLevel; /* Depth of the EQP output graph */
11136 u8 eTraceType; /* SHELL_TRACE_* value for type of trace */
11137 unsigned statsOn; /* True to display memory stats before each finalize */
11138 unsigned mEqpLines; /* Mask of veritical lines in the EQP output graph */
11139 int outCount; /* Revert to stdout when reaching zero */
11140 int cnt; /* Number of records displayed so far */
11141 int lineno; /* Line number of last line read from in */
11142 int openFlags; /* Additional flags to open. (SQLITE_OPEN_NOFOLLOW) */
@@ -12631,11 +12633,11 @@
12633 int iHiwtr;
12634 FILE *out;
12635 if( pArg==0 || pArg->out==0 ) return 0;
12636 out = pArg->out;
12637
12638 if( pArg->pStmt && pArg->statsOn==2 ){
12639 int nCol, i, x;
12640 sqlite3_stmt *pStmt = pArg->pStmt;
12641 char z[100];
12642 nCol = sqlite3_column_count(pStmt);
12643 raw_printf(out, "%-36s %d\n", "Number of output columns:", nCol);
@@ -12654,10 +12656,18 @@
12656 sqlite3_snprintf(30, z+x, "origin name:");
12657 utf8_printf(out, "%-36s %s\n", z, sqlite3_column_origin_name(pStmt,i));
12658 #endif
12659 }
12660 }
12661
12662 if( pArg->statsOn==3 ){
12663 if( pArg->pStmt ){
12664 iCur = sqlite3_stmt_status(pArg->pStmt, SQLITE_STMTSTATUS_VM_STEP, bReset);
12665 raw_printf(pArg->out, "VM-steps: %d\n", iCur);
12666 }
12667 return 0;
12668 }
12669
12670 displayStatLine(pArg, "Memory Used:",
12671 "%lld (max %lld) bytes", SQLITE_STATUS_MEMORY_USED, bReset);
12672 displayStatLine(pArg, "Number of Outstanding Allocations:",
12673 "%lld (max %lld)", SQLITE_STATUS_MALLOC_COUNT, bReset);
@@ -14087,11 +14097,15 @@
14097 " Any other argument is a LIKE pattern for tables to hash",
14098 #ifndef SQLITE_NOHAVE_SYSTEM
14099 ".shell CMD ARGS... Run CMD ARGS... in a system shell",
14100 #endif
14101 ".show Show the current values for various settings",
14102 ".stats ?ARG? Show stats or turn stats on or off",
14103 " off Turn off automatic stat display",
14104 " on Turn on automatic stat display",
14105 " stmt Show statement stats",
14106 " vmstep Show the virtual machine step count only",
14107 #ifndef SQLITE_NOHAVE_SYSTEM
14108 ".system CMD ARGS... Run CMD ARGS... in a system shell",
14109 #endif
14110 ".tables ?TABLE? List names of tables matching LIKE pattern TABLE",
14111 ".testcase NAME Begin redirecting output to 'testcase-out.txt'",
@@ -19764,10 +19778,11 @@
19778 }else
19779 #endif /* !defined(SQLITE_NOHAVE_SYSTEM) */
19780
19781 if( c=='s' && strncmp(azArg[0], "show", n)==0 ){
19782 static const char *azBool[] = { "off", "on", "trigger", "full"};
19783 const char *zOut;
19784 int i;
19785 if( nArg!=1 ){
19786 raw_printf(stderr, "Usage: .show\n");
19787 rc = 1;
19788 goto meta_command_exit;
@@ -19788,11 +19803,17 @@
19803 output_c_string(p->out, p->colSeparator);
19804 raw_printf(p->out, "\n");
19805 utf8_printf(p->out,"%12.12s: ", "rowseparator");
19806 output_c_string(p->out, p->rowSeparator);
19807 raw_printf(p->out, "\n");
19808 switch( p->statsOn ){
19809 case 0: zOut = "off"; break;
19810 default: zOut = "on"; break;
19811 case 2: zOut = "stmt"; break;
19812 case 3: zOut = "vmstep"; break;
19813 }
19814 utf8_printf(p->out, "%12.12s: %s\n","stats", zOut);
19815 utf8_printf(p->out, "%12.12s: ", "width");
19816 for (i=0;i<p->nWidth;i++) {
19817 raw_printf(p->out, "%d ", p->colWidth[i]);
19818 }
19819 raw_printf(p->out, "\n");
@@ -19800,15 +19821,21 @@
19821 p->zDbFilename ? p->zDbFilename : "");
19822 }else
19823
19824 if( c=='s' && strncmp(azArg[0], "stats", n)==0 ){
19825 if( nArg==2 ){
19826 if( strcmp(azArg[1],"stmt")==0 ){
19827 p->statsOn = 2;
19828 }else if( strcmp(azArg[1],"vmstep")==0 ){
19829 p->statsOn = 3;
19830 }else{
19831 p->statsOn = (u8)booleanValue(azArg[1]);
19832 }
19833 }else if( nArg==1 ){
19834 display_stats(p->db, p, 0);
19835 }else{
19836 raw_printf(stderr, "Usage: .stats ?on|off|stmt|vmstep?\n");
19837 rc = 1;
19838 }
19839 }else
19840
19841 if( (c=='t' && n>1 && strncmp(azArg[0], "tables", n)==0)
19842
+103 -112
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1186,11 +1186,11 @@
11861186
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
11871187
** [sqlite_version()] and [sqlite_source_id()].
11881188
*/
11891189
#define SQLITE_VERSION "3.35.0"
11901190
#define SQLITE_VERSION_NUMBER 3035000
1191
-#define SQLITE_SOURCE_ID "2021-01-01 22:06:17 d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b"
1191
+#define SQLITE_SOURCE_ID "2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f"
11921192
11931193
/*
11941194
** CAPI3REF: Run-Time Library Version Numbers
11951195
** KEYWORDS: sqlite3_version sqlite3_sourceid
11961196
**
@@ -13551,11 +13551,12 @@
1355113551
** places. The following macros try to make this explicit.
1355213552
*/
1355313553
#ifndef __has_extension
1355413554
# define __has_extension(x) 0 /* compatibility with non-clang compilers */
1355513555
#endif
13556
-#if GCC_VERSION>=4007000 || __has_extension(c_atomic)
13556
+#if GCC_VERSION>=4007000 || \
13557
+ (__has_extension(c_atomic) && __has_extension(c_atomic_store_n))
1355713558
# define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED)
1355813559
# define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED)
1355913560
#else
1356013561
# define AtomicLoad(PTR) (*(PTR))
1356113562
# define AtomicStore(PTR,VAL) (*(PTR) = (VAL))
@@ -119751,11 +119752,11 @@
119751119752
}
119752119753
}
119753119754
119754119755
/*
119755119756
** On some systems, ceil() and floor() are intrinsic function. You are
119756
-** unable to take a pointer to this functions. Hence, we here wrap them
119757
+** unable to take a pointer to these functions. Hence, we here wrap them
119757119758
** in our own actual functions.
119758119759
*/
119759119760
static double xCeil(double x){ return ceil(x); }
119760119761
static double xFloor(double x){ return floor(x); }
119761119762
@@ -159047,59 +159048,10 @@
159047159048
int yysize; /* Amount to pop the stack */
159048159049
sqlite3ParserARG_FETCH
159049159050
(void)yyLookahead;
159050159051
(void)yyLookaheadToken;
159051159052
yymsp = yypParser->yytos;
159052
- assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) );
159053
-#ifndef NDEBUG
159054
- if( yyTraceFILE ){
159055
- yysize = yyRuleInfoNRhs[yyruleno];
159056
- if( yysize ){
159057
- fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
159058
- yyTracePrompt,
159059
- yyruleno, yyRuleName[yyruleno],
159060
- yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
159061
- yymsp[yysize].stateno);
159062
- }else{
159063
- fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
159064
- yyTracePrompt, yyruleno, yyRuleName[yyruleno],
159065
- yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
159066
- }
159067
- }
159068
-#endif /* NDEBUG */
159069
-
159070
- /* Check that the stack is large enough to grow by a single entry
159071
- ** if the RHS of the rule is empty. This ensures that there is room
159072
- ** enough on the stack to push the LHS value */
159073
- if( yyRuleInfoNRhs[yyruleno]==0 ){
159074
-#ifdef YYTRACKMAXSTACKDEPTH
159075
- if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
159076
- yypParser->yyhwm++;
159077
- assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
159078
- }
159079
-#endif
159080
-#if YYSTACKDEPTH>0
159081
- if( yypParser->yytos>=yypParser->yystackEnd ){
159082
- yyStackOverflow(yypParser);
159083
- /* The call to yyStackOverflow() above pops the stack until it is
159084
- ** empty, causing the main parser loop to exit. So the return value
159085
- ** is never used and does not matter. */
159086
- return 0;
159087
- }
159088
-#else
159089
- if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
159090
- if( yyGrowStack(yypParser) ){
159091
- yyStackOverflow(yypParser);
159092
- /* The call to yyStackOverflow() above pops the stack until it is
159093
- ** empty, causing the main parser loop to exit. So the return value
159094
- ** is never used and does not matter. */
159095
- return 0;
159096
- }
159097
- yymsp = yypParser->yytos;
159098
- }
159099
-#endif
159100
- }
159101159053
159102159054
switch( yyruleno ){
159103159055
/* Beginning here are the reduction cases. A typical example
159104159056
** follows:
159105159057
** case 0:
@@ -160686,16 +160638,60 @@
160686160638
yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE);
160687160639
}
160688160640
}
160689160641
#endif
160690160642
160691
- do{
160643
+ while(1){ /* Exit by "break" */
160644
+ assert( yypParser->yytos>=yypParser->yystack );
160692160645
assert( yyact==yypParser->yytos->stateno );
160693160646
yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
160694160647
if( yyact >= YY_MIN_REDUCE ){
160695
- yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,
160696
- yyminor sqlite3ParserCTX_PARAM);
160648
+ unsigned int yyruleno = yyact - YY_MIN_REDUCE; /* Reduce by this rule */
160649
+ assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) );
160650
+#ifndef NDEBUG
160651
+ if( yyTraceFILE ){
160652
+ int yysize = yyRuleInfoNRhs[yyruleno];
160653
+ if( yysize ){
160654
+ fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
160655
+ yyTracePrompt,
160656
+ yyruleno, yyRuleName[yyruleno],
160657
+ yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
160658
+ yypParser->yytos[yysize].stateno);
160659
+ }else{
160660
+ fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
160661
+ yyTracePrompt, yyruleno, yyRuleName[yyruleno],
160662
+ yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
160663
+ }
160664
+ }
160665
+#endif /* NDEBUG */
160666
+
160667
+ /* Check that the stack is large enough to grow by a single entry
160668
+ ** if the RHS of the rule is empty. This ensures that there is room
160669
+ ** enough on the stack to push the LHS value */
160670
+ if( yyRuleInfoNRhs[yyruleno]==0 ){
160671
+#ifdef YYTRACKMAXSTACKDEPTH
160672
+ if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
160673
+ yypParser->yyhwm++;
160674
+ assert( yypParser->yyhwm ==
160675
+ (int)(yypParser->yytos - yypParser->yystack));
160676
+ }
160677
+#endif
160678
+#if YYSTACKDEPTH>0
160679
+ if( yypParser->yytos>=yypParser->yystackEnd ){
160680
+ yyStackOverflow(yypParser);
160681
+ break;
160682
+ }
160683
+#else
160684
+ if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
160685
+ if( yyGrowStack(yypParser) ){
160686
+ yyStackOverflow(yypParser);
160687
+ break;
160688
+ }
160689
+ }
160690
+#endif
160691
+ }
160692
+ yyact = yy_reduce(yypParser,yyruleno,yymajor,yyminor sqlite3ParserCTX_PARAM);
160697160693
}else if( yyact <= YY_MAX_SHIFTREDUCE ){
160698160694
yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
160699160695
#ifndef YYNOERRORRECOVERY
160700160696
yypParser->yyerrcnt--;
160701160697
#endif
@@ -160804,11 +160800,11 @@
160804160800
#endif
160805160801
}
160806160802
break;
160807160803
#endif
160808160804
}
160809
- }while( yypParser->yytos>yypParser->yystack );
160805
+ }
160810160806
#ifndef NDEBUG
160811160807
if( yyTraceFILE ){
160812160808
yyStackEntry *i;
160813160809
char cDiv = '[';
160814160810
fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt);
@@ -212032,59 +212028,10 @@
212032212028
int fts5yysize; /* Amount to pop the stack */
212033212029
sqlite3Fts5ParserARG_FETCH
212034212030
(void)fts5yyLookahead;
212035212031
(void)fts5yyLookaheadToken;
212036212032
fts5yymsp = fts5yypParser->fts5yytos;
212037
- assert( fts5yyruleno<(int)(sizeof(fts5yyRuleName)/sizeof(fts5yyRuleName[0])) );
212038
-#ifndef NDEBUG
212039
- if( fts5yyTraceFILE ){
212040
- fts5yysize = fts5yyRuleInfoNRhs[fts5yyruleno];
212041
- if( fts5yysize ){
212042
- fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
212043
- fts5yyTracePrompt,
212044
- fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212045
- fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action",
212046
- fts5yymsp[fts5yysize].stateno);
212047
- }else{
212048
- fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s.\n",
212049
- fts5yyTracePrompt, fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212050
- fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action");
212051
- }
212052
- }
212053
-#endif /* NDEBUG */
212054
-
212055
- /* Check that the stack is large enough to grow by a single entry
212056
- ** if the RHS of the rule is empty. This ensures that there is room
212057
- ** enough on the stack to push the LHS value */
212058
- if( fts5yyRuleInfoNRhs[fts5yyruleno]==0 ){
212059
-#ifdef fts5YYTRACKMAXSTACKDEPTH
212060
- if( (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack)>fts5yypParser->fts5yyhwm ){
212061
- fts5yypParser->fts5yyhwm++;
212062
- assert( fts5yypParser->fts5yyhwm == (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack));
212063
- }
212064
-#endif
212065
-#if fts5YYSTACKDEPTH>0
212066
- if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){
212067
- fts5yyStackOverflow(fts5yypParser);
212068
- /* The call to fts5yyStackOverflow() above pops the stack until it is
212069
- ** empty, causing the main parser loop to exit. So the return value
212070
- ** is never used and does not matter. */
212071
- return 0;
212072
- }
212073
-#else
212074
- if( fts5yypParser->fts5yytos>=&fts5yypParser->fts5yystack[fts5yypParser->fts5yystksz-1] ){
212075
- if( fts5yyGrowStack(fts5yypParser) ){
212076
- fts5yyStackOverflow(fts5yypParser);
212077
- /* The call to fts5yyStackOverflow() above pops the stack until it is
212078
- ** empty, causing the main parser loop to exit. So the return value
212079
- ** is never used and does not matter. */
212080
- return 0;
212081
- }
212082
- fts5yymsp = fts5yypParser->fts5yytos;
212083
- }
212084
-#endif
212085
- }
212086212033
212087212034
switch( fts5yyruleno ){
212088212035
/* Beginning here are the reduction cases. A typical example
212089212036
** follows:
212090212037
** case 0:
@@ -212383,16 +212330,60 @@
212383212330
fts5yyTracePrompt,fts5yyTokenName[fts5yymajor],fts5yyact-fts5YY_MIN_REDUCE);
212384212331
}
212385212332
}
212386212333
#endif
212387212334
212388
- do{
212335
+ while(1){ /* Exit by "break" */
212336
+ assert( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystack );
212389212337
assert( fts5yyact==fts5yypParser->fts5yytos->stateno );
212390212338
fts5yyact = fts5yy_find_shift_action((fts5YYCODETYPE)fts5yymajor,fts5yyact);
212391212339
if( fts5yyact >= fts5YY_MIN_REDUCE ){
212392
- fts5yyact = fts5yy_reduce(fts5yypParser,fts5yyact-fts5YY_MIN_REDUCE,fts5yymajor,
212393
- fts5yyminor sqlite3Fts5ParserCTX_PARAM);
212340
+ unsigned int fts5yyruleno = fts5yyact - fts5YY_MIN_REDUCE; /* Reduce by this rule */
212341
+ assert( fts5yyruleno<(int)(sizeof(fts5yyRuleName)/sizeof(fts5yyRuleName[0])) );
212342
+#ifndef NDEBUG
212343
+ if( fts5yyTraceFILE ){
212344
+ int fts5yysize = fts5yyRuleInfoNRhs[fts5yyruleno];
212345
+ if( fts5yysize ){
212346
+ fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
212347
+ fts5yyTracePrompt,
212348
+ fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212349
+ fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action",
212350
+ fts5yypParser->fts5yytos[fts5yysize].stateno);
212351
+ }else{
212352
+ fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s.\n",
212353
+ fts5yyTracePrompt, fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212354
+ fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action");
212355
+ }
212356
+ }
212357
+#endif /* NDEBUG */
212358
+
212359
+ /* Check that the stack is large enough to grow by a single entry
212360
+ ** if the RHS of the rule is empty. This ensures that there is room
212361
+ ** enough on the stack to push the LHS value */
212362
+ if( fts5yyRuleInfoNRhs[fts5yyruleno]==0 ){
212363
+#ifdef fts5YYTRACKMAXSTACKDEPTH
212364
+ if( (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack)>fts5yypParser->fts5yyhwm ){
212365
+ fts5yypParser->fts5yyhwm++;
212366
+ assert( fts5yypParser->fts5yyhwm ==
212367
+ (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack));
212368
+ }
212369
+#endif
212370
+#if fts5YYSTACKDEPTH>0
212371
+ if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){
212372
+ fts5yyStackOverflow(fts5yypParser);
212373
+ break;
212374
+ }
212375
+#else
212376
+ if( fts5yypParser->fts5yytos>=&fts5yypParser->fts5yystack[fts5yypParser->fts5yystksz-1] ){
212377
+ if( fts5yyGrowStack(fts5yypParser) ){
212378
+ fts5yyStackOverflow(fts5yypParser);
212379
+ break;
212380
+ }
212381
+ }
212382
+#endif
212383
+ }
212384
+ fts5yyact = fts5yy_reduce(fts5yypParser,fts5yyruleno,fts5yymajor,fts5yyminor sqlite3Fts5ParserCTX_PARAM);
212394212385
}else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){
212395212386
fts5yy_shift(fts5yypParser,fts5yyact,(fts5YYCODETYPE)fts5yymajor,fts5yyminor);
212396212387
#ifndef fts5YYNOERRORRECOVERY
212397212388
fts5yypParser->fts5yyerrcnt--;
212398212389
#endif
@@ -212501,11 +212492,11 @@
212501212492
#endif
212502212493
}
212503212494
break;
212504212495
#endif
212505212496
}
212506
- }while( fts5yypParser->fts5yytos>fts5yypParser->fts5yystack );
212497
+ }
212507212498
#ifndef NDEBUG
212508212499
if( fts5yyTraceFILE ){
212509212500
fts5yyStackEntry *i;
212510212501
char cDiv = '[';
212511212502
fprintf(fts5yyTraceFILE,"%sReturn. Stack=",fts5yyTracePrompt);
@@ -227718,11 +227709,11 @@
227718227709
int nArg, /* Number of args */
227719227710
sqlite3_value **apUnused /* Function arguments */
227720227711
){
227721227712
assert( nArg==0 );
227722227713
UNUSED_PARAM2(nArg, apUnused);
227723
- sqlite3_result_text(pCtx, "fts5: 2021-01-01 18:32:15 5ac939e0adc923378173297e934c3664254a4fefbcddcc842bf4cc42dbaacf4f", -1, SQLITE_TRANSIENT);
227714
+ sqlite3_result_text(pCtx, "fts5: 2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f", -1, SQLITE_TRANSIENT);
227724227715
}
227725227716
227726227717
/*
227727227718
** Return true if zName is the extension on one of the shadow tables used
227728227719
** by this module.
@@ -232644,12 +232635,12 @@
232644232635
}
232645232636
#endif /* SQLITE_CORE */
232646232637
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
232647232638
232648232639
/************** End of stmt.c ************************************************/
232649
-#if __LINE__!=232649
232640
+#if __LINE__!=232640
232650232641
#undef SQLITE_SOURCE_ID
232651
-#define SQLITE_SOURCE_ID "2021-01-01 22:06:17 d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2adalt2"
232642
+#define SQLITE_SOURCE_ID "2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553alt2"
232652232643
#endif
232653232644
/* Return the source-id for this library */
232654232645
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
232655232646
/************************** End of sqlite3.c ******************************/
232656232647
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1186,11 +1186,11 @@
1186 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1187 ** [sqlite_version()] and [sqlite_source_id()].
1188 */
1189 #define SQLITE_VERSION "3.35.0"
1190 #define SQLITE_VERSION_NUMBER 3035000
1191 #define SQLITE_SOURCE_ID "2021-01-01 22:06:17 d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b"
1192
1193 /*
1194 ** CAPI3REF: Run-Time Library Version Numbers
1195 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1196 **
@@ -13551,11 +13551,12 @@
13551 ** places. The following macros try to make this explicit.
13552 */
13553 #ifndef __has_extension
13554 # define __has_extension(x) 0 /* compatibility with non-clang compilers */
13555 #endif
13556 #if GCC_VERSION>=4007000 || __has_extension(c_atomic)
 
13557 # define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED)
13558 # define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED)
13559 #else
13560 # define AtomicLoad(PTR) (*(PTR))
13561 # define AtomicStore(PTR,VAL) (*(PTR) = (VAL))
@@ -119751,11 +119752,11 @@
119751 }
119752 }
119753
119754 /*
119755 ** On some systems, ceil() and floor() are intrinsic function. You are
119756 ** unable to take a pointer to this functions. Hence, we here wrap them
119757 ** in our own actual functions.
119758 */
119759 static double xCeil(double x){ return ceil(x); }
119760 static double xFloor(double x){ return floor(x); }
119761
@@ -159047,59 +159048,10 @@
159047 int yysize; /* Amount to pop the stack */
159048 sqlite3ParserARG_FETCH
159049 (void)yyLookahead;
159050 (void)yyLookaheadToken;
159051 yymsp = yypParser->yytos;
159052 assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) );
159053 #ifndef NDEBUG
159054 if( yyTraceFILE ){
159055 yysize = yyRuleInfoNRhs[yyruleno];
159056 if( yysize ){
159057 fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
159058 yyTracePrompt,
159059 yyruleno, yyRuleName[yyruleno],
159060 yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
159061 yymsp[yysize].stateno);
159062 }else{
159063 fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
159064 yyTracePrompt, yyruleno, yyRuleName[yyruleno],
159065 yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
159066 }
159067 }
159068 #endif /* NDEBUG */
159069
159070 /* Check that the stack is large enough to grow by a single entry
159071 ** if the RHS of the rule is empty. This ensures that there is room
159072 ** enough on the stack to push the LHS value */
159073 if( yyRuleInfoNRhs[yyruleno]==0 ){
159074 #ifdef YYTRACKMAXSTACKDEPTH
159075 if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
159076 yypParser->yyhwm++;
159077 assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
159078 }
159079 #endif
159080 #if YYSTACKDEPTH>0
159081 if( yypParser->yytos>=yypParser->yystackEnd ){
159082 yyStackOverflow(yypParser);
159083 /* The call to yyStackOverflow() above pops the stack until it is
159084 ** empty, causing the main parser loop to exit. So the return value
159085 ** is never used and does not matter. */
159086 return 0;
159087 }
159088 #else
159089 if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
159090 if( yyGrowStack(yypParser) ){
159091 yyStackOverflow(yypParser);
159092 /* The call to yyStackOverflow() above pops the stack until it is
159093 ** empty, causing the main parser loop to exit. So the return value
159094 ** is never used and does not matter. */
159095 return 0;
159096 }
159097 yymsp = yypParser->yytos;
159098 }
159099 #endif
159100 }
159101
159102 switch( yyruleno ){
159103 /* Beginning here are the reduction cases. A typical example
159104 ** follows:
159105 ** case 0:
@@ -160686,16 +160638,60 @@
160686 yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE);
160687 }
160688 }
160689 #endif
160690
160691 do{
 
160692 assert( yyact==yypParser->yytos->stateno );
160693 yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
160694 if( yyact >= YY_MIN_REDUCE ){
160695 yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,
160696 yyminor sqlite3ParserCTX_PARAM);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160697 }else if( yyact <= YY_MAX_SHIFTREDUCE ){
160698 yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
160699 #ifndef YYNOERRORRECOVERY
160700 yypParser->yyerrcnt--;
160701 #endif
@@ -160804,11 +160800,11 @@
160804 #endif
160805 }
160806 break;
160807 #endif
160808 }
160809 }while( yypParser->yytos>yypParser->yystack );
160810 #ifndef NDEBUG
160811 if( yyTraceFILE ){
160812 yyStackEntry *i;
160813 char cDiv = '[';
160814 fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt);
@@ -212032,59 +212028,10 @@
212032 int fts5yysize; /* Amount to pop the stack */
212033 sqlite3Fts5ParserARG_FETCH
212034 (void)fts5yyLookahead;
212035 (void)fts5yyLookaheadToken;
212036 fts5yymsp = fts5yypParser->fts5yytos;
212037 assert( fts5yyruleno<(int)(sizeof(fts5yyRuleName)/sizeof(fts5yyRuleName[0])) );
212038 #ifndef NDEBUG
212039 if( fts5yyTraceFILE ){
212040 fts5yysize = fts5yyRuleInfoNRhs[fts5yyruleno];
212041 if( fts5yysize ){
212042 fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
212043 fts5yyTracePrompt,
212044 fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212045 fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action",
212046 fts5yymsp[fts5yysize].stateno);
212047 }else{
212048 fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s.\n",
212049 fts5yyTracePrompt, fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212050 fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action");
212051 }
212052 }
212053 #endif /* NDEBUG */
212054
212055 /* Check that the stack is large enough to grow by a single entry
212056 ** if the RHS of the rule is empty. This ensures that there is room
212057 ** enough on the stack to push the LHS value */
212058 if( fts5yyRuleInfoNRhs[fts5yyruleno]==0 ){
212059 #ifdef fts5YYTRACKMAXSTACKDEPTH
212060 if( (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack)>fts5yypParser->fts5yyhwm ){
212061 fts5yypParser->fts5yyhwm++;
212062 assert( fts5yypParser->fts5yyhwm == (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack));
212063 }
212064 #endif
212065 #if fts5YYSTACKDEPTH>0
212066 if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){
212067 fts5yyStackOverflow(fts5yypParser);
212068 /* The call to fts5yyStackOverflow() above pops the stack until it is
212069 ** empty, causing the main parser loop to exit. So the return value
212070 ** is never used and does not matter. */
212071 return 0;
212072 }
212073 #else
212074 if( fts5yypParser->fts5yytos>=&fts5yypParser->fts5yystack[fts5yypParser->fts5yystksz-1] ){
212075 if( fts5yyGrowStack(fts5yypParser) ){
212076 fts5yyStackOverflow(fts5yypParser);
212077 /* The call to fts5yyStackOverflow() above pops the stack until it is
212078 ** empty, causing the main parser loop to exit. So the return value
212079 ** is never used and does not matter. */
212080 return 0;
212081 }
212082 fts5yymsp = fts5yypParser->fts5yytos;
212083 }
212084 #endif
212085 }
212086
212087 switch( fts5yyruleno ){
212088 /* Beginning here are the reduction cases. A typical example
212089 ** follows:
212090 ** case 0:
@@ -212383,16 +212330,60 @@
212383 fts5yyTracePrompt,fts5yyTokenName[fts5yymajor],fts5yyact-fts5YY_MIN_REDUCE);
212384 }
212385 }
212386 #endif
212387
212388 do{
 
212389 assert( fts5yyact==fts5yypParser->fts5yytos->stateno );
212390 fts5yyact = fts5yy_find_shift_action((fts5YYCODETYPE)fts5yymajor,fts5yyact);
212391 if( fts5yyact >= fts5YY_MIN_REDUCE ){
212392 fts5yyact = fts5yy_reduce(fts5yypParser,fts5yyact-fts5YY_MIN_REDUCE,fts5yymajor,
212393 fts5yyminor sqlite3Fts5ParserCTX_PARAM);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212394 }else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){
212395 fts5yy_shift(fts5yypParser,fts5yyact,(fts5YYCODETYPE)fts5yymajor,fts5yyminor);
212396 #ifndef fts5YYNOERRORRECOVERY
212397 fts5yypParser->fts5yyerrcnt--;
212398 #endif
@@ -212501,11 +212492,11 @@
212501 #endif
212502 }
212503 break;
212504 #endif
212505 }
212506 }while( fts5yypParser->fts5yytos>fts5yypParser->fts5yystack );
212507 #ifndef NDEBUG
212508 if( fts5yyTraceFILE ){
212509 fts5yyStackEntry *i;
212510 char cDiv = '[';
212511 fprintf(fts5yyTraceFILE,"%sReturn. Stack=",fts5yyTracePrompt);
@@ -227718,11 +227709,11 @@
227718 int nArg, /* Number of args */
227719 sqlite3_value **apUnused /* Function arguments */
227720 ){
227721 assert( nArg==0 );
227722 UNUSED_PARAM2(nArg, apUnused);
227723 sqlite3_result_text(pCtx, "fts5: 2021-01-01 18:32:15 5ac939e0adc923378173297e934c3664254a4fefbcddcc842bf4cc42dbaacf4f", -1, SQLITE_TRANSIENT);
227724 }
227725
227726 /*
227727 ** Return true if zName is the extension on one of the shadow tables used
227728 ** by this module.
@@ -232644,12 +232635,12 @@
232644 }
232645 #endif /* SQLITE_CORE */
232646 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
232647
232648 /************** End of stmt.c ************************************************/
232649 #if __LINE__!=232649
232650 #undef SQLITE_SOURCE_ID
232651 #define SQLITE_SOURCE_ID "2021-01-01 22:06:17 d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2adalt2"
232652 #endif
232653 /* Return the source-id for this library */
232654 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
232655 /************************** End of sqlite3.c ******************************/
232656
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1186,11 +1186,11 @@
1186 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1187 ** [sqlite_version()] and [sqlite_source_id()].
1188 */
1189 #define SQLITE_VERSION "3.35.0"
1190 #define SQLITE_VERSION_NUMBER 3035000
1191 #define SQLITE_SOURCE_ID "2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f"
1192
1193 /*
1194 ** CAPI3REF: Run-Time Library Version Numbers
1195 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1196 **
@@ -13551,11 +13551,12 @@
13551 ** places. The following macros try to make this explicit.
13552 */
13553 #ifndef __has_extension
13554 # define __has_extension(x) 0 /* compatibility with non-clang compilers */
13555 #endif
13556 #if GCC_VERSION>=4007000 || \
13557 (__has_extension(c_atomic) && __has_extension(c_atomic_store_n))
13558 # define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED)
13559 # define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED)
13560 #else
13561 # define AtomicLoad(PTR) (*(PTR))
13562 # define AtomicStore(PTR,VAL) (*(PTR) = (VAL))
@@ -119751,11 +119752,11 @@
119752 }
119753 }
119754
119755 /*
119756 ** On some systems, ceil() and floor() are intrinsic function. You are
119757 ** unable to take a pointer to these functions. Hence, we here wrap them
119758 ** in our own actual functions.
119759 */
119760 static double xCeil(double x){ return ceil(x); }
119761 static double xFloor(double x){ return floor(x); }
119762
@@ -159047,59 +159048,10 @@
159048 int yysize; /* Amount to pop the stack */
159049 sqlite3ParserARG_FETCH
159050 (void)yyLookahead;
159051 (void)yyLookaheadToken;
159052 yymsp = yypParser->yytos;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159053
159054 switch( yyruleno ){
159055 /* Beginning here are the reduction cases. A typical example
159056 ** follows:
159057 ** case 0:
@@ -160686,16 +160638,60 @@
160638 yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE);
160639 }
160640 }
160641 #endif
160642
160643 while(1){ /* Exit by "break" */
160644 assert( yypParser->yytos>=yypParser->yystack );
160645 assert( yyact==yypParser->yytos->stateno );
160646 yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
160647 if( yyact >= YY_MIN_REDUCE ){
160648 unsigned int yyruleno = yyact - YY_MIN_REDUCE; /* Reduce by this rule */
160649 assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) );
160650 #ifndef NDEBUG
160651 if( yyTraceFILE ){
160652 int yysize = yyRuleInfoNRhs[yyruleno];
160653 if( yysize ){
160654 fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
160655 yyTracePrompt,
160656 yyruleno, yyRuleName[yyruleno],
160657 yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
160658 yypParser->yytos[yysize].stateno);
160659 }else{
160660 fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
160661 yyTracePrompt, yyruleno, yyRuleName[yyruleno],
160662 yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
160663 }
160664 }
160665 #endif /* NDEBUG */
160666
160667 /* Check that the stack is large enough to grow by a single entry
160668 ** if the RHS of the rule is empty. This ensures that there is room
160669 ** enough on the stack to push the LHS value */
160670 if( yyRuleInfoNRhs[yyruleno]==0 ){
160671 #ifdef YYTRACKMAXSTACKDEPTH
160672 if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
160673 yypParser->yyhwm++;
160674 assert( yypParser->yyhwm ==
160675 (int)(yypParser->yytos - yypParser->yystack));
160676 }
160677 #endif
160678 #if YYSTACKDEPTH>0
160679 if( yypParser->yytos>=yypParser->yystackEnd ){
160680 yyStackOverflow(yypParser);
160681 break;
160682 }
160683 #else
160684 if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
160685 if( yyGrowStack(yypParser) ){
160686 yyStackOverflow(yypParser);
160687 break;
160688 }
160689 }
160690 #endif
160691 }
160692 yyact = yy_reduce(yypParser,yyruleno,yymajor,yyminor sqlite3ParserCTX_PARAM);
160693 }else if( yyact <= YY_MAX_SHIFTREDUCE ){
160694 yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
160695 #ifndef YYNOERRORRECOVERY
160696 yypParser->yyerrcnt--;
160697 #endif
@@ -160804,11 +160800,11 @@
160800 #endif
160801 }
160802 break;
160803 #endif
160804 }
160805 }
160806 #ifndef NDEBUG
160807 if( yyTraceFILE ){
160808 yyStackEntry *i;
160809 char cDiv = '[';
160810 fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt);
@@ -212032,59 +212028,10 @@
212028 int fts5yysize; /* Amount to pop the stack */
212029 sqlite3Fts5ParserARG_FETCH
212030 (void)fts5yyLookahead;
212031 (void)fts5yyLookaheadToken;
212032 fts5yymsp = fts5yypParser->fts5yytos;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212033
212034 switch( fts5yyruleno ){
212035 /* Beginning here are the reduction cases. A typical example
212036 ** follows:
212037 ** case 0:
@@ -212383,16 +212330,60 @@
212330 fts5yyTracePrompt,fts5yyTokenName[fts5yymajor],fts5yyact-fts5YY_MIN_REDUCE);
212331 }
212332 }
212333 #endif
212334
212335 while(1){ /* Exit by "break" */
212336 assert( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystack );
212337 assert( fts5yyact==fts5yypParser->fts5yytos->stateno );
212338 fts5yyact = fts5yy_find_shift_action((fts5YYCODETYPE)fts5yymajor,fts5yyact);
212339 if( fts5yyact >= fts5YY_MIN_REDUCE ){
212340 unsigned int fts5yyruleno = fts5yyact - fts5YY_MIN_REDUCE; /* Reduce by this rule */
212341 assert( fts5yyruleno<(int)(sizeof(fts5yyRuleName)/sizeof(fts5yyRuleName[0])) );
212342 #ifndef NDEBUG
212343 if( fts5yyTraceFILE ){
212344 int fts5yysize = fts5yyRuleInfoNRhs[fts5yyruleno];
212345 if( fts5yysize ){
212346 fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
212347 fts5yyTracePrompt,
212348 fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212349 fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action",
212350 fts5yypParser->fts5yytos[fts5yysize].stateno);
212351 }else{
212352 fprintf(fts5yyTraceFILE, "%sReduce %d [%s]%s.\n",
212353 fts5yyTracePrompt, fts5yyruleno, fts5yyRuleName[fts5yyruleno],
212354 fts5yyruleno<fts5YYNRULE_WITH_ACTION ? "" : " without external action");
212355 }
212356 }
212357 #endif /* NDEBUG */
212358
212359 /* Check that the stack is large enough to grow by a single entry
212360 ** if the RHS of the rule is empty. This ensures that there is room
212361 ** enough on the stack to push the LHS value */
212362 if( fts5yyRuleInfoNRhs[fts5yyruleno]==0 ){
212363 #ifdef fts5YYTRACKMAXSTACKDEPTH
212364 if( (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack)>fts5yypParser->fts5yyhwm ){
212365 fts5yypParser->fts5yyhwm++;
212366 assert( fts5yypParser->fts5yyhwm ==
212367 (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack));
212368 }
212369 #endif
212370 #if fts5YYSTACKDEPTH>0
212371 if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){
212372 fts5yyStackOverflow(fts5yypParser);
212373 break;
212374 }
212375 #else
212376 if( fts5yypParser->fts5yytos>=&fts5yypParser->fts5yystack[fts5yypParser->fts5yystksz-1] ){
212377 if( fts5yyGrowStack(fts5yypParser) ){
212378 fts5yyStackOverflow(fts5yypParser);
212379 break;
212380 }
212381 }
212382 #endif
212383 }
212384 fts5yyact = fts5yy_reduce(fts5yypParser,fts5yyruleno,fts5yymajor,fts5yyminor sqlite3Fts5ParserCTX_PARAM);
212385 }else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){
212386 fts5yy_shift(fts5yypParser,fts5yyact,(fts5YYCODETYPE)fts5yymajor,fts5yyminor);
212387 #ifndef fts5YYNOERRORRECOVERY
212388 fts5yypParser->fts5yyerrcnt--;
212389 #endif
@@ -212501,11 +212492,11 @@
212492 #endif
212493 }
212494 break;
212495 #endif
212496 }
212497 }
212498 #ifndef NDEBUG
212499 if( fts5yyTraceFILE ){
212500 fts5yyStackEntry *i;
212501 char cDiv = '[';
212502 fprintf(fts5yyTraceFILE,"%sReturn. Stack=",fts5yyTracePrompt);
@@ -227718,11 +227709,11 @@
227709 int nArg, /* Number of args */
227710 sqlite3_value **apUnused /* Function arguments */
227711 ){
227712 assert( nArg==0 );
227713 UNUSED_PARAM2(nArg, apUnused);
227714 sqlite3_result_text(pCtx, "fts5: 2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f", -1, SQLITE_TRANSIENT);
227715 }
227716
227717 /*
227718 ** Return true if zName is the extension on one of the shadow tables used
227719 ** by this module.
@@ -232644,12 +232635,12 @@
232635 }
232636 #endif /* SQLITE_CORE */
232637 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
232638
232639 /************** End of stmt.c ************************************************/
232640 #if __LINE__!=232640
232641 #undef SQLITE_SOURCE_ID
232642 #define SQLITE_SOURCE_ID "2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553alt2"
232643 #endif
232644 /* Return the source-id for this library */
232645 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
232646 /************************** End of sqlite3.c ******************************/
232647
+1 -1
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -123,11 +123,11 @@
123123
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124124
** [sqlite_version()] and [sqlite_source_id()].
125125
*/
126126
#define SQLITE_VERSION "3.35.0"
127127
#define SQLITE_VERSION_NUMBER 3035000
128
-#define SQLITE_SOURCE_ID "2021-01-01 22:06:17 d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b"
128
+#define SQLITE_SOURCE_ID "2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f"
129129
130130
/*
131131
** CAPI3REF: Run-Time Library Version Numbers
132132
** KEYWORDS: sqlite3_version sqlite3_sourceid
133133
**
134134
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -123,11 +123,11 @@
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.35.0"
127 #define SQLITE_VERSION_NUMBER 3035000
128 #define SQLITE_SOURCE_ID "2021-01-01 22:06:17 d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
134
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -123,11 +123,11 @@
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.35.0"
127 #define SQLITE_VERSION_NUMBER 3035000
128 #define SQLITE_SOURCE_ID "2021-01-09 19:10:04 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
134

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button