On 24 Sep 2014, at 1:33pm, Nathaniel Trellice <[email protected]> wrote:
> Without the INSERT call, my test code runs through without crashing.
> Attempting the INSERT call in the shell tool crashes it too. Following your
> advice, the output of the .schema command looks dodgy:
>
> CREATE TABLE test_table (name TEXT DEFAULT ('joe'), interest TEXT DEFAULT
> (?1));
>
> I'm an SQLite newbie, though, so maybe that's right. Or perhaps bound
> parameters aren't 'resolved' in a "CREATE TABLE" statement?
You got it right. As you can see from the above, SQLite did not make the
substitution for your bound value and the '?1' made it all the way to the table
definition. You should, of course, be seeing your 'golf' value there instead.
I'm going to have to let someone else tell you whether you should or shouldn't
be able to bind DEFAULT values. I don't know.
But having allowed that to happen SQLite now has a definition for a table, and
that definition has bad syntax. And that bad syntax is causing SQLite to
crash. And that is a no-no and will be fixed. I have no idea how it'll be
fixed but it will. Thanks for posting the details of your problem and a clear
way to reproduce it.
In the meantime if you need your program to set default values for table
columns at runtime you'll have to do it by editing the command's text instead
of using binding. Which you already know is bad for reasons you listed in your
first post. Sorry for the inconvenience.
Simon.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users