1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Handle empty blob constants correctly. Ticket #1373. (CVS 2615)

FossilOrigin-Name: 5cada745ac9bf18a65d21705a398b2bb8bd1aaa2
This commit is contained in:
drh
2005-08-23 11:17:58 +00:00
parent 75757853a0
commit 6c8c6cec1f
4 changed files with 23 additions and 15 deletions

View File

@ -1,5 +1,5 @@
C Fix\sanother\sdocumentation\stypo.\s(CVS\s2614) C Handle\sempty\sblob\sconstants\scorrectly.\s\sTicket\s#1373.\s(CVS\s2615)
D 2005-08-23T11:03:03 D 2005-08-23T11:17:59
F Makefile.in b109ddb46a5550d0732dcd6caca01c123f6d5cdd F Makefile.in b109ddb46a5550d0732dcd6caca01c123f6d5cdd
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7 F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -40,7 +40,7 @@ F src/complete.c 4de937dfdd4c79a501772ab2035b26082f337a79
F src/date.c 7444b0900a28da77e57e3337a636873cff0ae940 F src/date.c 7444b0900a28da77e57e3337a636873cff0ae940
F src/delete.c be1fc25c9e109cd8cbab42a43ee696263da7c04b F src/delete.c be1fc25c9e109cd8cbab42a43ee696263da7c04b
F src/experimental.c 50c1e3b34f752f4ac10c36f287db095c2b61766d F src/experimental.c 50c1e3b34f752f4ac10c36f287db095c2b61766d
F src/expr.c b01e5c46b7c43a9fdd444d46960c45d012f525b8 F src/expr.c 43d49f124badc9b883cd7315c42a7564c9a59be9
F src/func.c 5b12db87f0bc7d978eaf87c7a348ada5d1934da4 F src/func.c 5b12db87f0bc7d978eaf87c7a348ada5d1934da4
F src/hash.c 2b1b13f7400e179631c83a1be0c664608c8f021f F src/hash.c 2b1b13f7400e179631c83a1be0c664608c8f021f
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84 F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
@ -110,7 +110,7 @@ F test/bigfile.test d3744a8821ce9abb8697f2826a3e3d22b719e89f
F test/bigrow.test f0aeb7573dcb8caaafea76454be3ade29b7fc747 F test/bigrow.test f0aeb7573dcb8caaafea76454be3ade29b7fc747
F test/bind.test 3169339a9fb7aaa8244d0ed8651fe6b6796d809c F test/bind.test 3169339a9fb7aaa8244d0ed8651fe6b6796d809c
F test/bindxfer.test 856830e9e5552b9882c9d5c6647f90e25bdae4ac F test/bindxfer.test 856830e9e5552b9882c9d5c6647f90e25bdae4ac
F test/blob.test fc41fe95bdc10da51f0dee73ce86e75ce1d6eb9d F test/blob.test 0b4ee6fef7a50685b88d921e2992606999510881
F test/btree.test 8aa7424aeec844df990273fe36447e5d7e407261 F test/btree.test 8aa7424aeec844df990273fe36447e5d7e407261
F test/btree2.test dbce930b549d5ac883a7d8905c976209ea241db3 F test/btree2.test dbce930b549d5ac883a7d8905c976209ea241db3
F test/btree4.test 3797b4305694c7af6828675b0f4b1424b8ca30e4 F test/btree4.test 3797b4305694c7af6828675b0f4b1424b8ca30e4
@ -297,7 +297,7 @@ F www/tclsqlite.tcl 3df553505b6efcad08f91e9b975deb2e6c9bb955
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P 990d1f3a5b13cadc2930334c4bd7007e3645e75b P 55f4b14e1958ff3d2b0c99749f0c01192bafbf37
R 5c4127324d7c147b742490f904b18514 R aa94c420a70111c68e8dee1be50969ca
U drh U drh
Z 819ad2404c026915da7e299c86c26217 Z 8dc1a1ae050818acecf332fc12e5d107

View File

@ -1 +1 @@
55f4b14e1958ff3d2b0c99749f0c01192bafbf37 5cada745ac9bf18a65d21705a398b2bb8bd1aaa2

View File

@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and ** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite. ** for generating VDBE code that evaluates expressions in SQLite.
** **
** $Id: expr.c,v 1.218 2005/08/19 03:03:52 drh Exp $ ** $Id: expr.c,v 1.219 2005/08/23 11:17:59 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#include <ctype.h> #include <ctype.h>
@ -1467,8 +1467,16 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){
} }
#ifndef SQLITE_OMIT_BLOB_LITERAL #ifndef SQLITE_OMIT_BLOB_LITERAL
case TK_BLOB: { case TK_BLOB: {
int n;
const char *z;
assert( TK_BLOB==OP_HexBlob ); assert( TK_BLOB==OP_HexBlob );
sqlite3VdbeOp3(v, op, 0, 0, pExpr->token.z+2, pExpr->token.n-3); 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; break;
} }
#endif #endif

View File

@ -10,7 +10,7 @@
#*********************************************************************** #***********************************************************************
# This file implements regression tests for SQLite library. # This file implements regression tests for SQLite library.
# #
# $Id: blob.test,v 1.3 2004/11/03 13:59:06 drh Exp $ # $Id: blob.test,v 1.4 2005/08/23 11:17:59 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
source $testdir/tester.tcl source $testdir/tester.tcl
@ -30,19 +30,19 @@ proc bin_to_hex {blob} {
# Simplest possible case. Specify a blob literal # Simplest possible case. Specify a blob literal
do_test blob-1.0 { do_test blob-1.0 {
set blob [execsql {SELECT X'01020304'}] set blob [execsql {SELECT X'01020304';}]
bin_to_hex [lindex $blob 0] bin_to_hex [lindex $blob 0]
} {01020304} } {01020304}
do_test blob-1.1 { do_test blob-1.1 {
set blob [execsql {SELECT x'ABCDEF'}] set blob [execsql {SELECT x'ABCDEF';}]
bin_to_hex [lindex $blob 0] bin_to_hex [lindex $blob 0]
} {ABCDEF} } {ABCDEF}
do_test blob-1.2 { do_test blob-1.2 {
set blob [execsql {SELECT x''}] set blob [execsql {SELECT x'';}]
bin_to_hex [lindex $blob 0] bin_to_hex [lindex $blob 0]
} {} } {}
do_test blob-1.3 { do_test blob-1.3 {
set blob [execsql {SELECT x'abcdEF12'}] set blob [execsql {SELECT x'abcdEF12';}]
bin_to_hex [lindex $blob 0] bin_to_hex [lindex $blob 0]
} {ABCDEF12} } {ABCDEF12}