Do you have a database schema to go with your sample program?

On 8/1/16, skywind mailing lists <mailingli...@skywind.eu> wrote:
> Hi,
>
> I have got a database that works using SQLite 3.7.7 but not with version
> SQLite 3.13.0. I get the assertion
>
> Assertion failed: (((Fts3Table *)pVtab)->mxSavepoint < iSavepoint), function
> fts3SavepointMethod, file /.../sqlite/sqlite3.c, line 144649.
>
> I have compiled the SQLite amalgamation with the options SQLITE_DEBUG=1
> SQLITE_MEMDEBUG=1 SQLITE_THREADSAFE=1 SQLITE_ENABLE_RTREE=1
> SQLITE_ENABLE_FTS3=1 SQLITE_ENABLE_FTS3_PARENTHESIS=1. I use this program to
> reproduce the assertion:
>
> #include <iostream>
>
> #include "sqlite3.h"
>
> static void ExecuteStatement(sqlite3* databaseHandle, std::string const&
> sqlStatement)
> {
>       int           result;
>       sqlite3_stmt* statementPtr(NULL);
>       
>       result =
> sqlite3_prepare_v2(databaseHandle,sqlStatement.c_str(),static_cast<int>(sqlStatement.size()),&statementPtr,NULL);
>       if (result == SQLITE_OK)
>       {
>               result = sqlite3_step(statementPtr);
>               if ((result == SQLITE_OK) || (result == SQLITE_DONE))
>                       result = sqlite3_finalize(statementPtr);
>       } /* if */
>       if (result != SQLITE_OK)
>               std::cout << sqlite3_errmsg(databaseHandle) << " (" << 
> sqlStatement << ')'
> << std::endl;
> }
>
> int main(int argc, const char * argv[])
> {
>       sqlite3* databaseHandle(NULL);
>
>       if (sqlite3_open_v2(„Test.sldb",&databaseHandle,SQLITE_OPEN_CREATE |
> SQLITE_OPEN_READWRITE,NULL) == SQLITE_OK)
>       {
>               ExecuteStatement(databaseHandle,"BEGIN TRANSACTION;");
>       
>               ExecuteStatement(databaseHandle,"DELETE FROM A WHERE 
> AnotherID=1;");
>               ExecuteStatement(databaseHandle,"DELETE FROM B WHERE ID=1;");
>               
>               ExecuteStatement(databaseHandle,"COMMIT;");
>               sqlite3_close(databaseHandle);
>       } /* if */
>       else
>               std::cout << sqlite3_errmsg(databaseHandle) << std::end;
> }
>
>
> I do not get any error output besides the failed assertion. I have run an
> integrity check on the database and I get the response „ok“.
>
> I have seen that there has been a change in „sqlite3VtabSavepoint“ a while
> ago. Can this change be the source of this error?
>
> Basically, I have no clue what is going on…
>
> Best regards,
> Hartwig
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>


-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to