/ Changes On Branch named-blob-I/O
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch named-blob-I/O Excluding Merge-Ins

This is equivalent to a diff from a874c64996 to 2a1cc6327a

2019-05-07
02:57
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (Leaf check-in: ab2ba8e732 user: drh tags: expr-node-copy-patch)
2019-01-06
02:06
The page size becomes fixed as soon as page1 from a non-empty database file is read. (check-in: 6064584d57 user: drh tags: trunk)
01:46
Give symbolic names to the special prepared statements used to implement incremental blob I/O. (Leaf check-in: 2a1cc6327a user: drh tags: named-blob-I/O)
2019-01-05
21:56
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (check-in: a874c64996 user: drh tags: trunk)
21:09
If the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any rows out of the sqlite_master table, that indicates that the sqlite_master table is corrupt, so raise an SQLITE_CORRUPT error. (check-in: 598d7358e7 user: drh tags: trunk)

Changes to src/vdbeblob.c.

268
269
270
271
272
273
274










275
276
277
278
279
280
281
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291







+
+
+
+
+
+
+
+
+
+







        {OP_Column,         0, 0, 1},  /* 3  */
        {OP_ResultRow,      1, 0, 0},  /* 4  */
        {OP_Halt,           0, 0, 0},  /* 5  */
      };
      Vdbe *v = (Vdbe *)pBlob->pStmt;
      int iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
      VdbeOp *aOp;

#ifdef SQLITE_DEBUG
      char *zName;
      zName = sqlite3MPrintf(db, "-- sqlite3_blob_open(%s,%s,%s)",
                              zDb, zTable, zColumn);
      if( zName ){
        sqlite3VdbeSetSql(v, zName, (int)strlen(zName), 0);
        sqlite3DbFree(db, zName);
      }
#endif

      sqlite3VdbeAddOp4Int(v, OP_Transaction, iDb, wrFlag, 
                           pTab->pSchema->schema_cookie,
                           pTab->pSchema->iGeneration);
      sqlite3VdbeChangeP5(v, 1);
      assert( sqlite3VdbeCurrentAddr(v)==2 || db->mallocFailed );
      aOp = sqlite3VdbeAddOpList(v, ArraySize(openBlob), openBlob, iLn);