SQLite

Check-in [71e3b715ad]
Login

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

Overview
Comment:If a virtual table xColumn method sets an error message using sqlite3_result_error(), use that message in preference to any error message left in the sqlite3_vtab object.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 71e3b715ad36c2132a587b84221be6359c31d7a17c3fba201b7ed3baf17922f1
User & Date: dan 2018-01-30 18:33:23.120
Context
2018-01-31
01:38
Changes to the autoconf tarball so that it does not try to use system() when building on iOS. (check-in: 32ed9c1067 user: drh tags: trunk)
2018-01-30
18:33
If a virtual table xColumn method sets an error message using sqlite3_result_error(), use that message in preference to any error message left in the sqlite3_vtab object. (check-in: 71e3b715ad user: dan tags: trunk)
17:43
Add tests cases for the zipfile extension. (check-in: 13b786dafd user: dan tags: trunk)
Changes
Side-by-Side Diff Show Whitespace Changes Patch
Changes to src/vdbe.c.
6752
6753
6754
6755
6756
6757
6758

6759
6760
6761
6762
6763
6764
6765
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766







+







    pDest->u.nZero = 0;
  }else{
    MemSetTypeFlag(pDest, MEM_Null);
  }
  rc = pModule->xColumn(pCur->uc.pVCur, &sContext, pOp->p2);
  sqlite3VtabImportErrmsg(p, pVtab);
  if( sContext.isError>0 ){
    sqlite3VdbeError(p, "%s", sqlite3_value_text(pDest));
    rc = sContext.isError;
  }
  sqlite3VdbeChangeEncoding(pDest, encoding);
  REGISTER_TRACE(pOp->p3, pDest);
  UPDATE_MAX_BLOBSIZE(pDest);

  if( sqlite3VdbeMemTooBig(pDest) ){
Changes to test/zipfile2.test.
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163

164
165
166
167
148
149
150
151
152
153
154

155
156
157
158
159
160


161
162
163
164
165







-






-
-
+




set blob [blob $archive2]
do_execsql_test 4.0 {
  SELECT name,mtime,data,method FROM zipfile($blob)
} {
  a.txt 1000000 aaaaaaaaaaaaaaaaaaaaaaa 8
}

breakpoint
set L [findall 17000000 $archive2]
set a $archive2
foreach i $L { set a [string replace $a $i [expr $i+7] 16000000] }
set blob [blob $a]
do_catchsql_test 4.1 {
  SELECT name,mtime,data,method FROM zipfile($blob)
} {1 {SQL logic error}}

} {1 {inflate() failed (0)}}


finish_test