Fossil SCM

Update the built-in SQLite to the version 3.8.0.1 beta.

drh 2013-08-29 13:53 trunk
Commit 5d60e609c2320cd59cde967ceda2b056a12463fd
3 files changed +1 -1 +22 -7 +2 -2
+1 -1
--- src/shell.c
+++ src/shell.c
@@ -1715,11 +1715,11 @@
17151715
continue;
17161716
}
17171717
}
17181718
if( (c==cSep && pc==cQuote)
17191719
|| (c=='\n' && pc==cQuote)
1720
- || (c=='\n' && pc=='\r' && p->n>2 && p->z[p->n-2]==cQuote)
1720
+ || (c=='\n' && pc=='\r' && p->n>=2 && p->z[p->n-2]==cQuote)
17211721
|| (c==EOF && pc==cQuote)
17221722
){
17231723
do{ p->n--; }while( p->z[p->n]!=cQuote );
17241724
p->cTerm = c;
17251725
break;
17261726
--- src/shell.c
+++ src/shell.c
@@ -1715,11 +1715,11 @@
1715 continue;
1716 }
1717 }
1718 if( (c==cSep && pc==cQuote)
1719 || (c=='\n' && pc==cQuote)
1720 || (c=='\n' && pc=='\r' && p->n>2 && p->z[p->n-2]==cQuote)
1721 || (c==EOF && pc==cQuote)
1722 ){
1723 do{ p->n--; }while( p->z[p->n]!=cQuote );
1724 p->cTerm = c;
1725 break;
1726
--- src/shell.c
+++ src/shell.c
@@ -1715,11 +1715,11 @@
1715 continue;
1716 }
1717 }
1718 if( (c==cSep && pc==cQuote)
1719 || (c=='\n' && pc==cQuote)
1720 || (c=='\n' && pc=='\r' && p->n>=2 && p->z[p->n-2]==cQuote)
1721 || (c==EOF && pc==cQuote)
1722 ){
1723 do{ p->n--; }while( p->z[p->n]!=cQuote );
1724 p->cTerm = c;
1725 break;
1726
+22 -7
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3
-** version 3.8.0. By combining all the individual C code files into this
3
+** version 3.8.0.1. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
77
** of 5% or more are commonly seen when SQLite is compiled as a single
88
** translation unit.
@@ -654,13 +654,13 @@
654654
**
655655
** See also: [sqlite3_libversion()],
656656
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
657657
** [sqlite_version()] and [sqlite_source_id()].
658658
*/
659
-#define SQLITE_VERSION "3.8.0"
659
+#define SQLITE_VERSION "3.8.0.1"
660660
#define SQLITE_VERSION_NUMBER 3008000
661
-#define SQLITE_SOURCE_ID "2013-08-22 02:56:28 0775501acf152dcbf4dd039f4511f3d8c4330d85"
661
+#define SQLITE_SOURCE_ID "2013-08-29 13:47:05 c5857808c0707baa30994dd6aa3b9c93a74c0073"
662662
663663
/*
664664
** CAPI3REF: Run-Time Library Version Numbers
665665
** KEYWORDS: sqlite3_version, sqlite3_sourceid
666666
**
@@ -81815,11 +81815,13 @@
8181581815
}
8181681816
pPager = sqlite3BtreePager(aNew->pBt);
8181781817
sqlite3PagerLockingMode(pPager, db->dfltLockMode);
8181881818
sqlite3BtreeSecureDelete(aNew->pBt,
8181981819
sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
81820
+#ifndef SQLITE_OMIT_PAGER_PRAGMAS
8182081821
sqlite3BtreeSetPagerFlags(aNew->pBt, 3 | (db->flags & PAGER_FLAGS_MASK));
81822
+#endif
8182181823
}
8182281824
aNew->safety_level = 3;
8182381825
aNew->zName = sqlite3DbStrDup(db, zName);
8182481826
if( rc==SQLITE_OK && aNew->zName==0 ){
8182581827
rc = SQLITE_NOMEM;
@@ -93907,10 +93909,12 @@
9390793909
}
9390893910
pDb++;
9390993911
}
9391093912
}
9391193913
}
93914
+#else
93915
+# define setAllPagerFlags(X) /* no-op */
9391293916
#endif
9391393917
9391493918
9391593919
#ifndef SQLITE_OMIT_FLAG_PRAGMAS
9391693920
/*
@@ -105953,12 +105957,14 @@
105953105957
/*
105954105958
** If the pBase expression originated in the ON or USING clause of
105955105959
** a join, then transfer the appropriate markings over to derived.
105956105960
*/
105957105961
static void transferJoinMarkings(Expr *pDerived, Expr *pBase){
105958
- pDerived->flags |= pBase->flags & EP_FromJoin;
105959
- pDerived->iRightJoinTable = pBase->iRightJoinTable;
105962
+ if( pDerived ){
105963
+ pDerived->flags |= pBase->flags & EP_FromJoin;
105964
+ pDerived->iRightJoinTable = pBase->iRightJoinTable;
105965
+ }
105960105966
}
105961105967
105962105968
#if !defined(SQLITE_OMIT_OR_OPTIMIZATION) && !defined(SQLITE_OMIT_SUBQUERY)
105963105969
/*
105964105970
** Analyze a term that consists of two or more OR-connected
@@ -106411,10 +106417,11 @@
106411106417
Expr *pNewExpr;
106412106418
int idxNew;
106413106419
pNewExpr = sqlite3PExpr(pParse, ops[i],
106414106420
sqlite3ExprDup(db, pExpr->pLeft, 0),
106415106421
sqlite3ExprDup(db, pList->a[i].pExpr, 0), 0);
106422
+ transferJoinMarkings(pNewExpr, pExpr);
106416106423
idxNew = whereClauseInsert(pWC, pNewExpr, TERM_VIRTUAL|TERM_DYNAMIC);
106417106424
testcase( idxNew==0 );
106418106425
exprAnalyze(pSrc, pWC, idxNew);
106419106426
pTerm = &pWC->a[idxTerm];
106420106427
pWC->a[idxNew].iParent = idxTerm;
@@ -106478,17 +106485,19 @@
106478106485
sCollSeqName.n = 6;
106479106486
pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
106480106487
pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
106481106488
sqlite3ExprAddCollateToken(pParse,pNewExpr1,&sCollSeqName),
106482106489
pStr1, 0);
106490
+ transferJoinMarkings(pNewExpr1, pExpr);
106483106491
idxNew1 = whereClauseInsert(pWC, pNewExpr1, TERM_VIRTUAL|TERM_DYNAMIC);
106484106492
testcase( idxNew1==0 );
106485106493
exprAnalyze(pSrc, pWC, idxNew1);
106486106494
pNewExpr2 = sqlite3ExprDup(db, pLeft, 0);
106487106495
pNewExpr2 = sqlite3PExpr(pParse, TK_LT,
106488106496
sqlite3ExprAddCollateToken(pParse,pNewExpr2,&sCollSeqName),
106489106497
pStr2, 0);
106498
+ transferJoinMarkings(pNewExpr2, pExpr);
106490106499
idxNew2 = whereClauseInsert(pWC, pNewExpr2, TERM_VIRTUAL|TERM_DYNAMIC);
106491106500
testcase( idxNew2==0 );
106492106501
exprAnalyze(pSrc, pWC, idxNew2);
106493106502
pTerm = &pWC->a[idxTerm];
106494106503
if( isComplete ){
@@ -109309,10 +109318,11 @@
109309109318
pProbe = &sPk;
109310109319
}
109311109320
rSize = whereCost(pSrc->pTab->nRowEst);
109312109321
rLogSize = estLog(rSize);
109313109322
109323
+#ifndef SQLITE_OMIT_AUTOMATIC_INDEX
109314109324
/* Automatic indexes */
109315109325
if( !pBuilder->pOrSet
109316109326
&& (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0
109317109327
&& pSrc->pIndex==0
109318109328
&& !pSrc->viaCoroutine
@@ -109343,10 +109353,11 @@
109343109353
pNew->prereq = mExtra | pTerm->prereqRight;
109344109354
rc = whereLoopInsert(pBuilder, pNew);
109345109355
}
109346109356
}
109347109357
}
109358
+#endif /* SQLITE_OMIT_AUTOMATIC_INDEX */
109348109359
109349109360
/* Loop over all indices
109350109361
*/
109351109362
for(; rc==SQLITE_OK && pProbe; pProbe=pProbe->pNext, iSortIdx++){
109352109363
if( pProbe->pPartIdxWhere!=0
@@ -110292,15 +110303,19 @@
110292110303
pLoop->u.btree.nEq = 1;
110293110304
/* TUNING: Cost of a rowid lookup is 10 */
110294110305
pLoop->rRun = 33; /* 33==whereCost(10) */
110295110306
}else{
110296110307
for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
110297
- if( pIdx->onError==OE_None || pIdx->pPartIdxWhere!=0 ) continue;
110308
+ assert( pLoop->aLTermSpace==pLoop->aLTerm );
110309
+ assert( ArraySize(pLoop->aLTermSpace)==4 );
110310
+ if( pIdx->onError==OE_None
110311
+ || pIdx->pPartIdxWhere!=0
110312
+ || pIdx->nColumn>ArraySize(pLoop->aLTermSpace)
110313
+ ) continue;
110298110314
for(j=0; j<pIdx->nColumn; j++){
110299110315
pTerm = findTerm(pWC, iCur, pIdx->aiColumn[j], 0, WO_EQ, pIdx);
110300110316
if( pTerm==0 ) break;
110301
- whereLoopResize(pWInfo->pParse->db, pLoop, j);
110302110317
pLoop->aLTerm[j] = pTerm;
110303110318
}
110304110319
if( j!=pIdx->nColumn ) continue;
110305110320
pLoop->wsFlags = WHERE_COLUMN_EQ|WHERE_ONEROW|WHERE_INDEXED;
110306110321
if( (pItem->colUsed & ~columnsInIndex(pIdx))==0 ){
110307110322
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.8.0. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -654,13 +654,13 @@
654 **
655 ** See also: [sqlite3_libversion()],
656 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
657 ** [sqlite_version()] and [sqlite_source_id()].
658 */
659 #define SQLITE_VERSION "3.8.0"
660 #define SQLITE_VERSION_NUMBER 3008000
661 #define SQLITE_SOURCE_ID "2013-08-22 02:56:28 0775501acf152dcbf4dd039f4511f3d8c4330d85"
662
663 /*
664 ** CAPI3REF: Run-Time Library Version Numbers
665 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
666 **
@@ -81815,11 +81815,13 @@
81815 }
81816 pPager = sqlite3BtreePager(aNew->pBt);
81817 sqlite3PagerLockingMode(pPager, db->dfltLockMode);
81818 sqlite3BtreeSecureDelete(aNew->pBt,
81819 sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
 
81820 sqlite3BtreeSetPagerFlags(aNew->pBt, 3 | (db->flags & PAGER_FLAGS_MASK));
 
81821 }
81822 aNew->safety_level = 3;
81823 aNew->zName = sqlite3DbStrDup(db, zName);
81824 if( rc==SQLITE_OK && aNew->zName==0 ){
81825 rc = SQLITE_NOMEM;
@@ -93907,10 +93909,12 @@
93907 }
93908 pDb++;
93909 }
93910 }
93911 }
 
 
93912 #endif
93913
93914
93915 #ifndef SQLITE_OMIT_FLAG_PRAGMAS
93916 /*
@@ -105953,12 +105957,14 @@
105953 /*
105954 ** If the pBase expression originated in the ON or USING clause of
105955 ** a join, then transfer the appropriate markings over to derived.
105956 */
105957 static void transferJoinMarkings(Expr *pDerived, Expr *pBase){
105958 pDerived->flags |= pBase->flags & EP_FromJoin;
105959 pDerived->iRightJoinTable = pBase->iRightJoinTable;
 
 
105960 }
105961
105962 #if !defined(SQLITE_OMIT_OR_OPTIMIZATION) && !defined(SQLITE_OMIT_SUBQUERY)
105963 /*
105964 ** Analyze a term that consists of two or more OR-connected
@@ -106411,10 +106417,11 @@
106411 Expr *pNewExpr;
106412 int idxNew;
106413 pNewExpr = sqlite3PExpr(pParse, ops[i],
106414 sqlite3ExprDup(db, pExpr->pLeft, 0),
106415 sqlite3ExprDup(db, pList->a[i].pExpr, 0), 0);
 
106416 idxNew = whereClauseInsert(pWC, pNewExpr, TERM_VIRTUAL|TERM_DYNAMIC);
106417 testcase( idxNew==0 );
106418 exprAnalyze(pSrc, pWC, idxNew);
106419 pTerm = &pWC->a[idxTerm];
106420 pWC->a[idxNew].iParent = idxTerm;
@@ -106478,17 +106485,19 @@
106478 sCollSeqName.n = 6;
106479 pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
106480 pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
106481 sqlite3ExprAddCollateToken(pParse,pNewExpr1,&sCollSeqName),
106482 pStr1, 0);
 
106483 idxNew1 = whereClauseInsert(pWC, pNewExpr1, TERM_VIRTUAL|TERM_DYNAMIC);
106484 testcase( idxNew1==0 );
106485 exprAnalyze(pSrc, pWC, idxNew1);
106486 pNewExpr2 = sqlite3ExprDup(db, pLeft, 0);
106487 pNewExpr2 = sqlite3PExpr(pParse, TK_LT,
106488 sqlite3ExprAddCollateToken(pParse,pNewExpr2,&sCollSeqName),
106489 pStr2, 0);
 
106490 idxNew2 = whereClauseInsert(pWC, pNewExpr2, TERM_VIRTUAL|TERM_DYNAMIC);
106491 testcase( idxNew2==0 );
106492 exprAnalyze(pSrc, pWC, idxNew2);
106493 pTerm = &pWC->a[idxTerm];
106494 if( isComplete ){
@@ -109309,10 +109318,11 @@
109309 pProbe = &sPk;
109310 }
109311 rSize = whereCost(pSrc->pTab->nRowEst);
109312 rLogSize = estLog(rSize);
109313
 
109314 /* Automatic indexes */
109315 if( !pBuilder->pOrSet
109316 && (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0
109317 && pSrc->pIndex==0
109318 && !pSrc->viaCoroutine
@@ -109343,10 +109353,11 @@
109343 pNew->prereq = mExtra | pTerm->prereqRight;
109344 rc = whereLoopInsert(pBuilder, pNew);
109345 }
109346 }
109347 }
 
109348
109349 /* Loop over all indices
109350 */
109351 for(; rc==SQLITE_OK && pProbe; pProbe=pProbe->pNext, iSortIdx++){
109352 if( pProbe->pPartIdxWhere!=0
@@ -110292,15 +110303,19 @@
110292 pLoop->u.btree.nEq = 1;
110293 /* TUNING: Cost of a rowid lookup is 10 */
110294 pLoop->rRun = 33; /* 33==whereCost(10) */
110295 }else{
110296 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
110297 if( pIdx->onError==OE_None || pIdx->pPartIdxWhere!=0 ) continue;
 
 
 
 
 
110298 for(j=0; j<pIdx->nColumn; j++){
110299 pTerm = findTerm(pWC, iCur, pIdx->aiColumn[j], 0, WO_EQ, pIdx);
110300 if( pTerm==0 ) break;
110301 whereLoopResize(pWInfo->pParse->db, pLoop, j);
110302 pLoop->aLTerm[j] = pTerm;
110303 }
110304 if( j!=pIdx->nColumn ) continue;
110305 pLoop->wsFlags = WHERE_COLUMN_EQ|WHERE_ONEROW|WHERE_INDEXED;
110306 if( (pItem->colUsed & ~columnsInIndex(pIdx))==0 ){
110307
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.8.0.1. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -654,13 +654,13 @@
654 **
655 ** See also: [sqlite3_libversion()],
656 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
657 ** [sqlite_version()] and [sqlite_source_id()].
658 */
659 #define SQLITE_VERSION "3.8.0.1"
660 #define SQLITE_VERSION_NUMBER 3008000
661 #define SQLITE_SOURCE_ID "2013-08-29 13:47:05 c5857808c0707baa30994dd6aa3b9c93a74c0073"
662
663 /*
664 ** CAPI3REF: Run-Time Library Version Numbers
665 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
666 **
@@ -81815,11 +81815,13 @@
81815 }
81816 pPager = sqlite3BtreePager(aNew->pBt);
81817 sqlite3PagerLockingMode(pPager, db->dfltLockMode);
81818 sqlite3BtreeSecureDelete(aNew->pBt,
81819 sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
81820 #ifndef SQLITE_OMIT_PAGER_PRAGMAS
81821 sqlite3BtreeSetPagerFlags(aNew->pBt, 3 | (db->flags & PAGER_FLAGS_MASK));
81822 #endif
81823 }
81824 aNew->safety_level = 3;
81825 aNew->zName = sqlite3DbStrDup(db, zName);
81826 if( rc==SQLITE_OK && aNew->zName==0 ){
81827 rc = SQLITE_NOMEM;
@@ -93907,10 +93909,12 @@
93909 }
93910 pDb++;
93911 }
93912 }
93913 }
93914 #else
93915 # define setAllPagerFlags(X) /* no-op */
93916 #endif
93917
93918
93919 #ifndef SQLITE_OMIT_FLAG_PRAGMAS
93920 /*
@@ -105953,12 +105957,14 @@
105957 /*
105958 ** If the pBase expression originated in the ON or USING clause of
105959 ** a join, then transfer the appropriate markings over to derived.
105960 */
105961 static void transferJoinMarkings(Expr *pDerived, Expr *pBase){
105962 if( pDerived ){
105963 pDerived->flags |= pBase->flags & EP_FromJoin;
105964 pDerived->iRightJoinTable = pBase->iRightJoinTable;
105965 }
105966 }
105967
105968 #if !defined(SQLITE_OMIT_OR_OPTIMIZATION) && !defined(SQLITE_OMIT_SUBQUERY)
105969 /*
105970 ** Analyze a term that consists of two or more OR-connected
@@ -106411,10 +106417,11 @@
106417 Expr *pNewExpr;
106418 int idxNew;
106419 pNewExpr = sqlite3PExpr(pParse, ops[i],
106420 sqlite3ExprDup(db, pExpr->pLeft, 0),
106421 sqlite3ExprDup(db, pList->a[i].pExpr, 0), 0);
106422 transferJoinMarkings(pNewExpr, pExpr);
106423 idxNew = whereClauseInsert(pWC, pNewExpr, TERM_VIRTUAL|TERM_DYNAMIC);
106424 testcase( idxNew==0 );
106425 exprAnalyze(pSrc, pWC, idxNew);
106426 pTerm = &pWC->a[idxTerm];
106427 pWC->a[idxNew].iParent = idxTerm;
@@ -106478,17 +106485,19 @@
106485 sCollSeqName.n = 6;
106486 pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
106487 pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
106488 sqlite3ExprAddCollateToken(pParse,pNewExpr1,&sCollSeqName),
106489 pStr1, 0);
106490 transferJoinMarkings(pNewExpr1, pExpr);
106491 idxNew1 = whereClauseInsert(pWC, pNewExpr1, TERM_VIRTUAL|TERM_DYNAMIC);
106492 testcase( idxNew1==0 );
106493 exprAnalyze(pSrc, pWC, idxNew1);
106494 pNewExpr2 = sqlite3ExprDup(db, pLeft, 0);
106495 pNewExpr2 = sqlite3PExpr(pParse, TK_LT,
106496 sqlite3ExprAddCollateToken(pParse,pNewExpr2,&sCollSeqName),
106497 pStr2, 0);
106498 transferJoinMarkings(pNewExpr2, pExpr);
106499 idxNew2 = whereClauseInsert(pWC, pNewExpr2, TERM_VIRTUAL|TERM_DYNAMIC);
106500 testcase( idxNew2==0 );
106501 exprAnalyze(pSrc, pWC, idxNew2);
106502 pTerm = &pWC->a[idxTerm];
106503 if( isComplete ){
@@ -109309,10 +109318,11 @@
109318 pProbe = &sPk;
109319 }
109320 rSize = whereCost(pSrc->pTab->nRowEst);
109321 rLogSize = estLog(rSize);
109322
109323 #ifndef SQLITE_OMIT_AUTOMATIC_INDEX
109324 /* Automatic indexes */
109325 if( !pBuilder->pOrSet
109326 && (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0
109327 && pSrc->pIndex==0
109328 && !pSrc->viaCoroutine
@@ -109343,10 +109353,11 @@
109353 pNew->prereq = mExtra | pTerm->prereqRight;
109354 rc = whereLoopInsert(pBuilder, pNew);
109355 }
109356 }
109357 }
109358 #endif /* SQLITE_OMIT_AUTOMATIC_INDEX */
109359
109360 /* Loop over all indices
109361 */
109362 for(; rc==SQLITE_OK && pProbe; pProbe=pProbe->pNext, iSortIdx++){
109363 if( pProbe->pPartIdxWhere!=0
@@ -110292,15 +110303,19 @@
110303 pLoop->u.btree.nEq = 1;
110304 /* TUNING: Cost of a rowid lookup is 10 */
110305 pLoop->rRun = 33; /* 33==whereCost(10) */
110306 }else{
110307 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
110308 assert( pLoop->aLTermSpace==pLoop->aLTerm );
110309 assert( ArraySize(pLoop->aLTermSpace)==4 );
110310 if( pIdx->onError==OE_None
110311 || pIdx->pPartIdxWhere!=0
110312 || pIdx->nColumn>ArraySize(pLoop->aLTermSpace)
110313 ) continue;
110314 for(j=0; j<pIdx->nColumn; j++){
110315 pTerm = findTerm(pWC, iCur, pIdx->aiColumn[j], 0, WO_EQ, pIdx);
110316 if( pTerm==0 ) break;
 
110317 pLoop->aLTerm[j] = pTerm;
110318 }
110319 if( j!=pIdx->nColumn ) continue;
110320 pLoop->wsFlags = WHERE_COLUMN_EQ|WHERE_ONEROW|WHERE_INDEXED;
110321 if( (pItem->colUsed & ~columnsInIndex(pIdx))==0 ){
110322
+2 -2
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105105
**
106106
** See also: [sqlite3_libversion()],
107107
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108108
** [sqlite_version()] and [sqlite_source_id()].
109109
*/
110
-#define SQLITE_VERSION "3.8.0"
110
+#define SQLITE_VERSION "3.8.0.1"
111111
#define SQLITE_VERSION_NUMBER 3008000
112
-#define SQLITE_SOURCE_ID "2013-08-22 02:56:28 0775501acf152dcbf4dd039f4511f3d8c4330d85"
112
+#define SQLITE_SOURCE_ID "2013-08-29 13:47:05 c5857808c0707baa30994dd6aa3b9c93a74c0073"
113113
114114
/*
115115
** CAPI3REF: Run-Time Library Version Numbers
116116
** KEYWORDS: sqlite3_version, sqlite3_sourceid
117117
**
118118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105 **
106 ** See also: [sqlite3_libversion()],
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.8.0"
111 #define SQLITE_VERSION_NUMBER 3008000
112 #define SQLITE_SOURCE_ID "2013-08-22 02:56:28 0775501acf152dcbf4dd039f4511f3d8c4330d85"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -105,13 +105,13 @@
105 **
106 ** See also: [sqlite3_libversion()],
107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
108 ** [sqlite_version()] and [sqlite_source_id()].
109 */
110 #define SQLITE_VERSION "3.8.0.1"
111 #define SQLITE_VERSION_NUMBER 3008000
112 #define SQLITE_SOURCE_ID "2013-08-29 13:47:05 c5857808c0707baa30994dd6aa3b9c93a74c0073"
113
114 /*
115 ** CAPI3REF: Run-Time Library Version Numbers
116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
117 **
118

Keyboard Shortcuts

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