SQLite

Check-in [6e19ef7582]
Login

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

Overview
Comment:Make sure zeroblob() works with the concatenation operator. Ticket #2379. (CVS 4028)
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 6e19ef758207cedd6db8b2796ef5d4d688cc0b62
User & Date: drh 2007-05-23 06:31:39.000
Context
2007-05-23
07:20
Additional comments ono the SQLITE_MIXED_ENDIAN_64BIT_FLOAT issue. (CVS 4029) (check-in: dd48a31e67 user: drh tags: trunk)
06:31
Make sure zeroblob() works with the concatenation operator. Ticket #2379. (CVS 4028) (check-in: 6e19ef7582 user: drh tags: trunk)
06:25
Increase the number of repititions in crash.test. (CVS 4027) (check-in: f3c3412afa user: danielk1977 tags: trunk)
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to src/vdbe.c.
39
40
41
42
43
44
45
46

47
48
49
50
51
52
53
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53







-
+







**
** Various scripts scan this source file in order to generate HTML
** documentation, headers files, or other derived files.  The formatting
** of the code in this file is, therefore, important.  See other comments
** in this file for details.  If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
** $Id: vdbe.c,v 1.622 2007/05/17 16:38:30 danielk1977 Exp $
** $Id: vdbe.c,v 1.623 2007/05/23 06:31:39 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
#include <ctype.h>
#include <math.h>
#include "vdbeInt.h"

1029
1030
1031
1032
1033
1034
1035

1036
1037
1038
1039
1040
1041
1042
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043







+







  nByte = 0;
  for(i=0; i<nField; i++, pTerm++){
    assert( pOp->p2==0 || (pTerm->flags&MEM_Str) );
    if( pTerm->flags&MEM_Null ){
      nByte = -1;
      break;
    }
    ExpandBlob(pTerm);
    Stringify(pTerm, encoding);
    nByte += pTerm->n;
  }

  if( nByte<0 ){
    /* If nByte is less than zero, then there is a NULL value on the stack.
    ** In this case just pop the values off the stack (if required) and
Changes to test/zeroblob.test.
9
10
11
12
13
14
15
16

17
18
19
20
21
22
23
9
10
11
12
13
14
15

16
17
18
19
20
21
22
23







-
+







#
#***********************************************************************
# This file implements regression tests for SQLite library.  The
# focus of this file is testing of the zero-filled blob functionality
# including the sqlite3_bind_zeroblob(), sqlite3_result_zeroblob(),
# and the built-in zeroblob() SQL function.
#
# $Id: zeroblob.test,v 1.3 2007/05/17 06:44:29 danielk1977 Exp $
# $Id: zeroblob.test,v 1.4 2007/05/23 06:31:39 drh Exp $

set testdir [file dirname $argv0]
source $testdir/tester.tcl

ifcapable !incrblob {
  finish_test
  return
115
116
117
118
119
120
121








122
123
124
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132







+
+
+
+
+
+
+
+



    SELECT count(DISTINCT a) FROM (
      SELECT x'00000000000000000000' AS a
      UNION ALL
      SELECT zeroblob(10) AS a
    )
  }
} {1}

# Concatentation works with zeroblob
#
do_test zeroblob-4.1 {
  execsql {
    SELECT hex(zeroblob(2) || x'61')
  }
} {000061}
  

finish_test