On Mon, 31 Jan 2011 08:44:22 -0500, Simon Slavin <slav...@bigfraud.org> wrote:
> On 31 Jan 2011, at 1:24pm, Samuel Adam wrote: [snip] >> Actually since this is an FTS3 table, the form with the quotes is the >> correct one. As Mr. da Silveira alluded later in his post, in FTS3, the >> row ID and only the row ID is an INTEGER > > But from his CREATE command, isn't the column called 'id' an alias to > the rowid ? FTS3 docs do not mention "id", as I quoted. Moreover, "id" is *not* normally an alias for rowid: sqlite> CREATE TABLE "Test" ("id" TEXT); sqlite> INSERT INTO "Test" ("id") VALUES ('This is a test.'); sqlite> SELECT typeof("id") FROM "Test"; text sqlite> CREATE TABLE "Test2" ("" TEXT); sqlite> INSERT INTO "Test2" VALUES ('There should be no column named "id" in thi s table.'); sqlite> SELECT "rowid", "id", "" FROM "Test2"; 1|id|There should be no column named "id" in this table. (That last happens because SQLite helpfully reinterprets the double-quoted non-identifier as a string value.) > But what I did miss is that these are VIRTUAL tables, not real ones. > And therefore you cannot test the contents of the table by opening the > database with the command-line tool. I forgot: I always compile my sqlite3 shell with FTS3, &c. It is easy from the amalgamation: Just set defs correctly, compile sqlite3.c and shell.c, and link. A configure script is not needed. > Would it be possible to temporarily remove the word 'VIRTUAL' from the > CREATE command ? Would the rest of the application stop working ? If > this does work, then the contents of the table can be tested as I > outlined earlier. Well, then, FTS3 would no longer work; and any tests thereupon would be irrelevant to actual usage by the original poster. Samuel Adam <a...@certifound.com> 763 Montgomery Road Hillsborough, NJ 08844-1304 • United States http://certifound.com/ _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users