/ Check-in [dcdf0913]
Login

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

Overview
Comment:Preserve the error code from xConnect or xCreate methods in virtual table implementations when they are encountered during parsing.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:dcdf091388251292ff9939bdff920708320bc64dacfe0fa1878c5ffd11b679c9
User & Date: drh 2017-08-09 22:55:09
Context
2017-08-10
03:27
Add a first draft of the "vtablog" extensions that implements a generic virtual table useful for experimentation using the command-line shell. check-in: e49279e6 user: drh tags: trunk
2017-08-09
22:55
Preserve the error code from xConnect or xCreate methods in virtual table implementations when they are encountered during parsing. check-in: dcdf0913 user: drh tags: trunk
19:27
Various bug fixes for the new LSM1 virtual table design. check-in: 94434a25 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to ext/rtree/rtreeA.test.

   224    224   sqlite3 db test.db
   225    225   do_execsql_test rtreeA-7.100 { 
   226    226     UPDATE t1_node SET data=x'' WHERE rowid=1;
   227    227   } {}
   228    228   do_catchsql_test rtreeA-7.110 {
   229    229     SELECT * FROM t1 WHERE x1>0 AND x1<100 AND x2>0 AND x2<100;
   230    230   } {1 {undersize RTree blobs in "t1_node"}}
          231  +do_test rtreeA-7.120 {
          232  +  sqlite3_extended_errcode db
          233  +} {SQLITE_CORRUPT}
          234  +
   231    235   
   232    236   
   233    237   finish_test

Changes to src/vtab.c.

   640    640       sqlite3ErrorMsg(pParse, "no such module: %s", zModule);
   641    641       rc = SQLITE_ERROR;
   642    642     }else{
   643    643       char *zErr = 0;
   644    644       rc = vtabCallConstructor(db, pTab, pMod, pMod->pModule->xConnect, &zErr);
   645    645       if( rc!=SQLITE_OK ){
   646    646         sqlite3ErrorMsg(pParse, "%s", zErr);
          647  +      pParse->rc = rc;
   647    648       }
   648    649       sqlite3DbFree(db, zErr);
   649    650     }
   650    651   
   651    652     return rc;
   652    653   }
   653    654   /*