-C Fix\sthe\soutput\slabels\son\sthe\stests\sin\smalloc9.\s(CVS\s4966)
-D 2008-04-04T12:21:26
+C Smaller\sand\shopefully\sfaster\sroutine\sfor\sconverting\sblob\sliterals\sinto\sbinary.\s(CVS\s4967)
+D 2008-04-04T15:12:22
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in b861627d91df5ee422c54237aa38296954dc0151
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/trigger.c 9bd3b6fa0beff4a02d262c96466f752ec15a7fc3
F src/update.c 6d5f7728ec254c4a36a06a744f45b232b2eef857
F src/utf.c 8c94fa10efc78c2568d08d436acc59df4df7191b
-F src/util.c dba9e04121eb17ec4643d6ca231ff859452cf0e2
+F src/util.c 9a435395c8e03fa0b1658f59ff44e552844ac6c6
F src/vacuum.c 3524411bfb58aac0d87eadd3e5b7cd532772af30
F src/vdbe.c 66ca98cce0f5776006eb5fcaa95a6d90b341646e
F src/vdbe.h f72201a0657d5f3d6cc008d1f8d9cc65768518c9
F test/bind.test 261fd1603613e7f877a516d29f281c9d8c2ecf52
F test/bindxfer.test 995d2cf8df61204d748cde6960443121c4ccd2e1
F test/bitvec.test 62a512c3f7041d1df12558eb25990e5a19820571
-F test/blob.test f2dbdbf1159674283645c2636436839313ee7131
+F test/blob.test 2a38d867bdf08f9ce081776acec1ac8d4bca66be
F test/busy.test 76b4887f8b9160ba903c1ac22e8ff406ad6ae2f0
F test/cache.test 3ff445c445742a7b6b9ba6e1d62a25263f9424b9
F test/capi2.test cc64df7560a96f848f919ea2926c60acf639684b
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 046a98a8c88be7389c1571a819ccf1907a3f7217
-R c2eb8a3e99b84237743b30cf9d3410ed
+P 9987a7b193095dc90a83666bdac5e23105909cba
+R ef205f0a77d72d2ab92875e08b608793
U drh
-Z 8168e0c974d32f7ba3946f548ac61cf1
+Z c22c0013da67b67c72be28004cc0d047
-9987a7b193095dc90a83666bdac5e23105909cba
\ No newline at end of file
+92d49499ee3371db64267c7e2ba72a5e12ea76f3
\ No newline at end of file
** This file contains functions for allocating memory, comparing
** strings, and stuff like that.
**
-** $Id: util.c,v 1.217 2008/03/19 13:03:34 drh Exp $
+** $Id: util.c,v 1.218 2008/04/04 15:12:22 drh Exp $
*/
#include "sqliteInt.h"
#include <stdarg.h>
#if !defined(SQLITE_OMIT_BLOB_LITERAL) || defined(SQLITE_HAS_CODEC)
/*
** Translate a single byte of Hex into an integer.
+** This routinen only works if h really is a valid hexadecimal
+** character: 0..9a..fA..F
*/
static int hexToInt(int h){
+#if !defined(SQLITE_EBCDIC)
+ int x = h - '0';
+ if( x>9 ){
+ x = (h - 'A' + 10) & 0xf;
+ }
+ assert( x>=0 && x<=15 );
+ return x;
+#else
if( h>='0' && h<='9' ){
return h - '0';
}else if( h>='a' && h<='f' ){
assert( h>='A' && h<='F' );
return h - 'A' + 10;
}
+#endif
}
#endif /* !SQLITE_OMIT_BLOB_LITERAL || SQLITE_HAS_CODEC */
#***********************************************************************
# This file implements regression tests for SQLite library.
#
-# $Id: blob.test,v 1.6 2008/01/22 23:37:10 drh Exp $
+# $Id: blob.test,v 1.7 2008/04/04 15:12:22 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
set blob [execsql {SELECT x'abcdEF12';}]
bin_to_hex [lindex $blob 0]
} {ABCDEF12}
+do_test blob-1.3.2 {
+ set blob [execsql {SELECT x'0123456789abcdefABCDEF';}]
+ bin_to_hex [lindex $blob 0]
+} {0123456789ABCDEFABCDEF}
# Try some syntax errors in blob literals.
do_test blob-1.4 {
do_test blob-1.7 {
catchsql {SELECT X'01001'}
} {1 {unrecognized token: "X'01001'"}}
+do_test blob-1.8 {
+ catchsql {SELECT x'012/45'}
+} {1 {unrecognized token: "x'012/45'"}}
+do_test blob-1.9 {
+ catchsql {SELECT x'012:45'}
+} {1 {unrecognized token: "x'012:45'"}}
+do_test blob-1.10 {
+ catchsql {SELECT x'012@45'}
+} {1 {unrecognized token: "x'012@45'"}}
+do_test blob-1.11 {
+ catchsql {SELECT x'012G45'}
+} {1 {unrecognized token: "x'012G45'"}}
+do_test blob-1.12 {
+ catchsql {SELECT x'012`45'}
+} {1 {unrecognized token: "x'012`45'"}}
+do_test blob-1.13 {
+ catchsql {SELECT x'012g45'}
+} {1 {unrecognized token: "x'012g45'"}}
+
# Insert a blob into a table and retrieve it.
do_test blob-2.0 {