Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Handle empty blob constants correctly. Ticket #1373. (CVS 2615) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5cada745ac9bf18a65d21705a398b2bb |
User & Date: | drh 2005-08-23 11:17:59.000 |
Context
2005-08-23
| ||
11:31 | Allow floating point literals to being or end with a decimal point. Ticket #1371. (CVS 2616) (check-in: a715e70012 user: drh tags: trunk) | |
11:17 | Handle empty blob constants correctly. Ticket #1373. (CVS 2615) (check-in: 5cada745ac user: drh tags: trunk) | |
11:03 | Fix another documentation typo. (CVS 2614) (check-in: 55f4b14e19 user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** ** $Id: expr.c,v 1.219 2005/08/23 11:17:59 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** Return the 'affinity' of the expression pExpr if any. ** |
︙ | ︙ | |||
1463 1464 1465 1466 1467 1468 1469 1470 | } case TK_NULL: { sqlite3VdbeAddOp(v, OP_Null, 0, 0); break; } #ifndef SQLITE_OMIT_BLOB_LITERAL case TK_BLOB: { assert( TK_BLOB==OP_HexBlob ); | > > > > > > > > | | 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 | } case TK_NULL: { sqlite3VdbeAddOp(v, OP_Null, 0, 0); break; } #ifndef SQLITE_OMIT_BLOB_LITERAL case TK_BLOB: { int n; const char *z; assert( TK_BLOB==OP_HexBlob ); n = pExpr->token.n - 3; z = pExpr->token.z + 2; assert( n>=0 ); if( n==0 ){ z = ""; } sqlite3VdbeOp3(v, op, 0, 0, z, n); break; } #endif case TK_VARIABLE: { sqlite3VdbeAddOp(v, OP_Variable, pExpr->iTable, 0); if( pExpr->token.n>1 ){ sqlite3VdbeChangeP3(v, -1, pExpr->token.z, pExpr->token.n); |
︙ | ︙ |
Changes to test/blob.test.
1 2 3 4 5 6 7 8 9 10 11 12 | # 2001 September 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. # | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # 2001 September 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. # # $Id: blob.test,v 1.4 2005/08/23 11:17:59 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl ifcapable {!bloblit} { finish_test return } proc bin_to_hex {blob} { set bytes {} binary scan $blob \c* bytes set bytes2 [list] foreach b $bytes {lappend bytes2 [format %02X [expr $b & 0xFF]]} join $bytes2 {} } # Simplest possible case. Specify a blob literal do_test blob-1.0 { set blob [execsql {SELECT X'01020304';}] bin_to_hex [lindex $blob 0] } {01020304} do_test blob-1.1 { set blob [execsql {SELECT x'ABCDEF';}] bin_to_hex [lindex $blob 0] } {ABCDEF} do_test blob-1.2 { set blob [execsql {SELECT x'';}] bin_to_hex [lindex $blob 0] } {} do_test blob-1.3 { set blob [execsql {SELECT x'abcdEF12';}] bin_to_hex [lindex $blob 0] } {ABCDEF12} # Try some syntax errors in blob literals. do_test blob-1.4 { catchsql {SELECT X'01020k304', 100} } {1 {unrecognized token: "X'01020"}} |
︙ | ︙ |