Hi,
I do this:
const char *table_structure = "CREATE TABLE network (vertex_id INTEGER);";
if (sqlite3_declare_vtab(db, table_structure) == SQLITE_OK) {
nr = (NiuRouting*) sqlite3_malloc(sizeof (NiuRouting));
if (nr == NULL) {
//*pzErr = sqlite3_mprintf("[NiuRouting module] CREATE
VIRTUAL: No memory \n");
return SQLITE_NOMEM;
}
*ppVTab = (sqlite3_vtab*) nr;
((sqlite3_vtab*) nr)->zErrMsg = NULL;
} else {
//*pzErr = sqlite3_mprintf("[NiuRouting module] CREATE VIRTUAL:
invalid SQL statement \n");
return SQLITE_ERROR;
}
and continue.
i do somethig more comment all the code inside the functions and get the
same error. when try to load extension i just see the first debug message i
can see any more i think, that the program do no enter to any method.
2012/2/3 Stephan Beal <[email protected]>
> 2012/2/3 Jorge Eliécer Osorio Caro <[email protected]>
>
> > Yes, that's my code:
> >
> > http://paste.ideaslabs.com/show/OPNHBY7xPG
> >
> > this the backtrace:
> >
> > #0 0x00000001001701d3 in initialize_niurouting ()
> >
>
> Can you try the following (but i'm just guessing here);
>
> std::cerr << "virtual_table_name="<<virtual_table_name
> << ", network_structure_table="
> <<network_structure_table<< '\n';
>
> after those vars are initialized, and change:
>
> std::string table_structure(...)
>
> to
> const static std::string table_structure(...)
>
> sqlite3_declare_vtab()[1] does not document the lifetime requirements of
> the string passed to it, and it's "conceivable" that the lifetime of the
> table_structure string is the problem.
>
> :-?
>
> [1] = http://www.sqlite.org/c3ref/declare_vtab.html
>
> --
> ----- stephan beal
> http://wanderinghorse.net/home/stephan/
> http://gplus.to/sgbeal
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users