SQLite

Check-in [35c7f6cba6]
Login

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

Overview
Comment:In the OP_Column opcode, only test the btree payload size for exceeding the string length limit if the payload does not fit on a single page.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 35c7f6cba6febf2480de01fca9d61b8065bf1c12
User & Date: drh 2015-11-20 13:33:56.212
Context
2015-11-20
19:22
Refactor the VdbeCursor object. It is now slightly smaller and faster and is easier to understand. (check-in: 9b1d174d86 user: drh tags: trunk)
13:49
Merge all the latest enhancements and fixes from trunk. (check-in: 41c8b8e39b user: drh tags: begin-concurrent)
13:33
In the OP_Column opcode, only test the btree payload size for exceeding the string length limit if the payload does not fit on a single page. (check-in: 35c7f6cba6 user: drh tags: trunk)
13:17
Enhancements to a comment in sqliteInt.h. No changes to code. (check-in: 5446ae64d7 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/vdbe.c.
2423
2424
2425
2426
2427
2428
2429


2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
        VVA_ONLY(rc =) sqlite3BtreeDataSize(pCrsr, &pC->payloadSize);
        assert( rc==SQLITE_OK );   /* DataSize() cannot fail */
        pC->aRow = sqlite3BtreeDataFetch(pCrsr, &avail);
      }
      assert( avail<=65536 );  /* Maximum page size is 64KiB */
      if( pC->payloadSize <= (u32)avail ){
        pC->szRow = pC->payloadSize;


      }else{
        pC->szRow = avail;
      }
      if( pC->payloadSize > (u32)db->aLimit[SQLITE_LIMIT_LENGTH] ){
        goto too_big;
      }
    }
    pC->cacheStatus = p->cacheCtr;
    pC->iHdrOffset = getVarint32(pC->aRow, offset);
    pC->nHdrParsed = 0;
    aOffset[0] = offset;








>
>


<
<
<







2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433



2434
2435
2436
2437
2438
2439
2440
        VVA_ONLY(rc =) sqlite3BtreeDataSize(pCrsr, &pC->payloadSize);
        assert( rc==SQLITE_OK );   /* DataSize() cannot fail */
        pC->aRow = sqlite3BtreeDataFetch(pCrsr, &avail);
      }
      assert( avail<=65536 );  /* Maximum page size is 64KiB */
      if( pC->payloadSize <= (u32)avail ){
        pC->szRow = pC->payloadSize;
      }else if( pC->payloadSize > (u32)db->aLimit[SQLITE_LIMIT_LENGTH] ){
        goto too_big;
      }else{
        pC->szRow = avail;



      }
    }
    pC->cacheStatus = p->cacheCtr;
    pC->iHdrOffset = getVarint32(pC->aRow, offset);
    pC->nHdrParsed = 0;
    aOffset[0] = offset;