SQLite

Check-in [eca7ec9c]
Login

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

Overview
Comment:Remove an incorrect assert() statement. Ticket [46fcd700b855e6d1]
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: eca7ec9cda4606c4104bcb8da315070b615713db9f3444579c6a3e96b0aad02f
User & Date: drh 2019-12-31 23:17:35
Context
2020-01-01
01:26
Issue OP_ReleaseReg opcodes against the array of registers used to compute index records after the index record has been computed. (check-in: e3330861 user: drh tags: trunk)
2019-12-31
23:17
Remove an incorrect assert() statement. Ticket [46fcd700b855e6d1] (check-in: eca7ec9c user: drh tags: trunk)
18:39
Also set the SQLITE_DIRECTONLY flag on the load_extension() function. (check-in: 3bd095a5 user: drh tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/vdbemem.c.

960
961
962
963
964
965
966
967


968
969
970
971
972
973
974
      ** no significant changes have been made to pX since the OP_SCopy.
      ** A significant change would indicated a missed call to this
      ** function for pX.  Minor changes, such as adding or removing a
      ** dual type, are allowed, as long as the underlying value is the
      ** same. */
      u16 mFlags = pMem->flags & pX->flags & pX->mScopyFlags;
      assert( (mFlags&(MEM_Int|MEM_IntReal))==0 || pMem->u.i==pX->u.i );
      assert( (mFlags&MEM_Real)==0 || pMem->u.r==pX->u.r );


      assert( (mFlags&MEM_Str)==0  || (pMem->n==pX->n && pMem->z==pX->z) );
      assert( (mFlags&MEM_Blob)==0  || sqlite3BlobCompare(pMem,pX)==0 );
      
      /* pMem is the register that is changing.  But also mark pX as
      ** undefined so that we can quickly detect the shallow-copy error */
      pX->flags = MEM_Undefined;
      pX->pScopyFrom = 0;







|
>
>







960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
      ** no significant changes have been made to pX since the OP_SCopy.
      ** A significant change would indicated a missed call to this
      ** function for pX.  Minor changes, such as adding or removing a
      ** dual type, are allowed, as long as the underlying value is the
      ** same. */
      u16 mFlags = pMem->flags & pX->flags & pX->mScopyFlags;
      assert( (mFlags&(MEM_Int|MEM_IntReal))==0 || pMem->u.i==pX->u.i );
      /* assert( (mFlags&MEM_Real)==0 || pMem->u.r==pX->u.r ); */
      /*                                          ^^           */
      /*       Cannot reliably compare doubles for equality    */
      assert( (mFlags&MEM_Str)==0  || (pMem->n==pX->n && pMem->z==pX->z) );
      assert( (mFlags&MEM_Blob)==0  || sqlite3BlobCompare(pMem,pX)==0 );
      
      /* pMem is the register that is changing.  But also mark pX as
      ** undefined so that we can quickly detect the shallow-copy error */
      pX->flags = MEM_Undefined;
      pX->pScopyFrom = 0;