Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge latest trunk changes with this branch. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | insert-select-opt |
Files: | files | file ages | folders |
SHA1: |
9affe7f3f9ccb4fd93d428d6c1c2370b |
User & Date: | dan 2015-03-21 15:04:27.266 |
Context
2015-03-21
| ||
15:26 | Do not use sorters for INSERT statements that insert multiple rows using the VALUES clause. (check-in: 93e28ea1ef user: dan tags: insert-select-opt) | |
15:04 | Merge latest trunk changes with this branch. (check-in: 9affe7f3f9 user: dan tags: insert-select-opt) | |
12:25 | Remove an unreachable branch from the OP_VCreate opcode (merge accidental fork in trunk). (check-in: 2fbfec62fc user: dan tags: trunk) | |
07:16 | Merge recent trunk changes with this branch. (check-in: 35eef4ddd5 user: dan tags: insert-select-opt) | |
Changes
Changes to ext/fts3/fts3.c.
︙ | |||
906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 | 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 | + + + + + | ** ** If *pp does not being with a decimal digit SQLITE_ERROR is returned and ** the output value undefined. Otherwise SQLITE_OK is returned. ** ** This function is used when parsing the "prefix=" FTS4 parameter. */ static int fts3GobbleInt(const char **pp, int *pnOut){ const MAX_NPREFIX = 10000000; const char *p; /* Iterator pointer */ int nInt = 0; /* Output value */ for(p=*pp; p[0]>='0' && p[0]<='9'; p++){ nInt = nInt * 10 + (p[0] - '0'); if( nInt>MAX_NPREFIX ){ nInt = 0; break; } } if( p==*pp ) return SQLITE_ERROR; *pnOut = nInt; *pp = p; return SQLITE_OK; } |
︙ | |||
962 963 964 965 966 967 968 | 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 | - + + - + | } memset(aIndex, 0, sizeof(struct Fts3Index) * nIndex); if( zParam ){ const char *p = zParam; int i; for(i=1; i<nIndex; i++){ |
︙ |
Changes to src/vdbe.c.
︙ | |||
6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 | 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 | + + + + + + - - - - - + + + + + - | /* Opcode: VCreate P1 P2 * * * ** ** P2 is a register that holds the name of a virtual table in database ** P1. Call the xCreate method for that table. */ case OP_VCreate: { Mem sMem; /* For storing the record being decoded */ const char *zTab; /* Name of the virtual table */ memset(&sMem, 0, sizeof(sMem)); sMem.db = db; /* Because P2 is always a static string, it is impossible for the ** sqlite3VdbeMemCopy() to fail */ assert( (aMem[pOp->p2].flags & MEM_Str)!=0 ); assert( (aMem[pOp->p2].flags & MEM_Static)!=0 ); rc = sqlite3VdbeMemCopy(&sMem, &aMem[pOp->p2]); |
︙ |
Changes to test/shell4.test.
︙ | |||
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | + + | } {1 {Usage: .trace FILE|off}} do_test shell4-2.2 { catchcmd ":memory:" "CREATE TABLE t1(x);\n.trace off\n.trace off\n" } {0 {}} do_test shell4-2.3 { catchcmd ":memory:" ".trace stdout\n.trace\n.trace off\n.dump\n" } {/^1 {PRAGMA.*Usage:.*}$/} ifcapable trace { do_test shell4-2.4 { catchcmd ":memory:" ".trace stdout\nCREATE TABLE t1(x);SELECT * FROM t1;" } {0 {CREATE TABLE t1(x); SELECT * FROM t1;}} do_test shell4-2.5 { catchcmd ":memory:" "CREATE TABLE t1(x);\n.trace stdout\nSELECT * FROM t1;" } {0 {SELECT * FROM t1;}} } finish_test |
Changes to test/vtab2.test.
︙ | |||
131 132 133 134 135 136 137 | 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | + - - - - + + + + - - - + + + - - - + + + + | } {} do_test vtab2-4.5 { execsql { SELECT * FROM fkey } } {t1 a} #------------------------------------------------------------------------- # ifcapable fts3 { |