Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge in the 3.8.10 release changes. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sessions |
Files: | files | file ages | folders |
SHA1: |
0404ef885e47f0df1daa04feb28452be |
User & Date: | drh 2015-05-07 12:29:54.271 |
Context
2015-05-14
| ||
15:17 | Merge in the IS-operator enhancements and other recent changes from trunk. (check-in: 4f9229445c user: drh tags: sessions) | |
2015-05-07
| ||
12:29 | Merge in the 3.8.10 release changes. (check-in: 0404ef885e user: drh tags: sessions) | |
11:53 | Version 3.8.10 (check-in: cf975957b9 user: drh tags: trunk, release, version-3.8.10) | |
2015-05-05
| ||
17:12 | Merge all trunk enhancements and fixes into the sessions branch. (check-in: de7083cfe2 user: drh tags: sessions) | |
Changes
Changes to autoconf/Makefile.am.
1 2 3 4 5 6 7 8 9 | AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 bin_PROGRAMS = sqlite3 sqlite3_SOURCES = shell.c sqlite3.h | | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 bin_PROGRAMS = sqlite3 sqlite3_SOURCES = shell.c sqlite3.h sqlite3_LDADD = sqlite3.$(OBJEXT) @READLINE_LIBS@ include_HEADERS = sqlite3.h sqlite3ext.h EXTRA_DIST = sqlite3.1 tea pkgconfigdir = ${libdir}/pkgconfig pkgconfig_DATA = sqlite3.pc |
︙ | ︙ |
Changes to src/printf.c.
︙ | ︙ | |||
249 250 251 252 253 254 255 | case '#': flag_alternateform = 1; break; case '!': flag_altform2 = 1; break; case '0': flag_zeropad = 1; break; default: done = 1; break; } }while( !done && (c=(*++fmt))!=0 ); /* Get the field width */ | < | 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | case '#': flag_alternateform = 1; break; case '!': flag_altform2 = 1; break; case '0': flag_zeropad = 1; break; default: done = 1; break; } }while( !done && (c=(*++fmt))!=0 ); /* Get the field width */ if( c=='*' ){ if( bArgList ){ width = (int)getIntArg(pArgList); }else{ width = va_arg(ap,int); } if( width<0 ){ |
︙ | ︙ | |||
273 274 275 276 277 278 279 | } testcase( wx>0x7fffffff ); width = wx & 0x7fffffff; } /* Get the precision */ if( c=='.' ){ | < | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | } testcase( wx>0x7fffffff ); width = wx & 0x7fffffff; } /* Get the precision */ if( c=='.' ){ c = *++fmt; if( c=='*' ){ if( bArgList ){ precision = (int)getIntArg(pArgList); }else{ precision = va_arg(ap,int); } |
︙ | ︙ |
Changes to src/resolve.c.
︙ | ︙ | |||
95 96 97 98 99 100 101 | Expr *pOrig; /* The iCol-th column of the result set */ Expr *pDup; /* Copy of pOrig */ sqlite3 *db; /* The database connection */ assert( iCol>=0 && iCol<pEList->nExpr ); pOrig = pEList->a[iCol].pExpr; assert( pOrig!=0 ); | < | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | Expr *pOrig; /* The iCol-th column of the result set */ Expr *pDup; /* Copy of pOrig */ sqlite3 *db; /* The database connection */ assert( iCol>=0 && iCol<pEList->nExpr ); pOrig = pEList->a[iCol].pExpr; assert( pOrig!=0 ); db = pParse->db; pDup = sqlite3ExprDup(db, pOrig, 0); if( pDup==0 ) return; if( pOrig->op!=TK_COLUMN && zType[0]!='G' ){ incrAggFunctionDepth(pDup, nSubquery); pDup = sqlite3PExpr(pParse, TK_AS, pDup, 0, 0); if( pDup==0 ) return; |
︙ | ︙ |
Changes to src/vdbe.c.
︙ | ︙ | |||
991 992 993 994 995 996 997 | if( rc==SQLITE_BUSY ){ p->rc = rc = SQLITE_BUSY; }else{ assert( rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT ); assert( rc==SQLITE_OK || db->nDeferredCons>0 || db->nDeferredImmCons>0 ); rc = p->rc ? SQLITE_ERROR : SQLITE_DONE; } | < | 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 | if( rc==SQLITE_BUSY ){ p->rc = rc = SQLITE_BUSY; }else{ assert( rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT ); assert( rc==SQLITE_OK || db->nDeferredCons>0 || db->nDeferredImmCons>0 ); rc = p->rc ? SQLITE_ERROR : SQLITE_DONE; } goto vdbe_return; } /* Opcode: Integer P1 P2 * * * ** Synopsis: r[P2]=P1 ** ** The 32-bit integer value P1 is written into register P2. |
︙ | ︙ | |||
5969 5970 5971 5972 5973 5974 5975 | #endif /* ifndef SQLITE_OMIT_WAL */ if( rc ){ eNew = eOld; } eNew = sqlite3PagerSetJournalMode(pPager, eNew); | < | 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 | #endif /* ifndef SQLITE_OMIT_WAL */ if( rc ){ eNew = eOld; } eNew = sqlite3PagerSetJournalMode(pPager, eNew); pOut->flags = MEM_Str|MEM_Static|MEM_Term; pOut->z = (char *)sqlite3JournalModename(eNew); pOut->n = sqlite3Strlen30(pOut->z); pOut->enc = SQLITE_UTF8; sqlite3VdbeChangeEncoding(pOut, encoding); break; }; |
︙ | ︙ |
Changes to test/select4.test.
︙ | ︙ | |||
154 155 156 157 158 159 160 161 162 163 164 165 166 167 | } {1 {ORDER BY clause should come after UNION not before}} do_test select4-2.4 { set v [catch {execsql { SELECT 0 ORDER BY (SELECT 0) UNION SELECT 0; }} msg] lappend v $msg } {1 {ORDER BY clause should come after UNION not before}} # Except operator # do_test select4-3.1.1 { execsql { SELECT DISTINCT log FROM t1 EXCEPT | > > > | 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | } {1 {ORDER BY clause should come after UNION not before}} do_test select4-2.4 { set v [catch {execsql { SELECT 0 ORDER BY (SELECT 0) UNION SELECT 0; }} msg] lappend v $msg } {1 {ORDER BY clause should come after UNION not before}} do_execsql_test select4-2.5 { SELECT 123 AS x ORDER BY (SELECT x ORDER BY 1); } {123} # Except operator # do_test select4-3.1.1 { execsql { SELECT DISTINCT log FROM t1 EXCEPT |
︙ | ︙ |