/ Check-in [760333de]
Login

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

Overview
Comment:Always enable the OP_Blob opcode in the VDBE even when SQLITE_OMIT_BLOB_LITERAL is defined, since that opcode is used for other purposes as well. Ticket #3518. (CVS 5974)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:760333de65328281137e02423904f860df572391
User & Date: drh 2008-12-04 12:17:30
Context
2008-12-04
12:26
Fix a memory leak in the shell that occurs when a ".import" command fails. Ticket #3517 (CVS 5975) check-in: cb9c1543 user: drh tags: trunk
12:17
Always enable the OP_Blob opcode in the VDBE even when SQLITE_OMIT_BLOB_LITERAL is defined, since that opcode is used for other purposes as well. Ticket #3518. (CVS 5974) check-in: 760333de user: drh tags: trunk
2008-12-03
23:23
Allow the entire FROM clause of a SELECT statement to be in parentheses. (CVS 5973) check-in: 72ebc8cb user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/vdbe.c.

    39     39   **
    40     40   ** Various scripts scan this source file in order to generate HTML
    41     41   ** documentation, headers files, or other derived files.  The formatting
    42     42   ** of the code in this file is, therefore, important.  See other comments
    43     43   ** in this file for details.  If in doubt, do not deviate from existing
    44     44   ** commenting and indentation practices when changing or adding code.
    45     45   **
    46         -** $Id: vdbe.c,v 1.788 2008/11/17 15:31:48 danielk1977 Exp $
           46  +** $Id: vdbe.c,v 1.789 2008/12/04 12:17:30 drh Exp $
    47     47   */
    48     48   #include "sqliteInt.h"
    49     49   #include <ctype.h>
    50     50   #include "vdbeInt.h"
    51     51   
    52     52   /*
    53     53   ** The following global variable is incremented every time a cursor
................................................................................
   928    928   ** Write a NULL into register P2.
   929    929   */
   930    930   case OP_Null: {           /* out2-prerelease */
   931    931     break;
   932    932   }
   933    933   
   934    934   
   935         -#ifndef SQLITE_OMIT_BLOB_LITERAL
   936    935   /* Opcode: Blob P1 P2 * P4
   937    936   **
   938    937   ** P4 points to a blob of data P1 bytes long.  Store this
   939    938   ** blob in register P2. This instruction is not coded directly
   940    939   ** by the compiler. Instead, the compiler layer specifies
   941    940   ** an OP_HexBlob opcode, with the hex string representation of
   942    941   ** the blob as P4. This opcode is transformed to an OP_Blob
................................................................................
   945    944   case OP_Blob: {                /* out2-prerelease */
   946    945     assert( pOp->p1 <= SQLITE_MAX_LENGTH );
   947    946     sqlite3VdbeMemSetStr(pOut, pOp->p4.z, pOp->p1, 0, 0);
   948    947     pOut->enc = encoding;
   949    948     UPDATE_MAX_BLOBSIZE(pOut);
   950    949     break;
   951    950   }
   952         -#endif /* SQLITE_OMIT_BLOB_LITERAL */
   953    951   
   954    952   /* Opcode: Variable P1 P2 * * *
   955    953   **
   956    954   ** The value of variable P1 is written into register P2. A variable is
   957    955   ** an unknown in the original SQL string as handed to sqlite3_compile().
   958    956   ** Any occurrence of the '?' character in the original SQL is considered
   959    957   ** a variable.  Variables in the SQL string are number from left to