Hello, I observe the following two issues with the command-line sqlite3, both with version 3.6.20 (on RHEL6) and the latest 3.8.8.3 compiled from source.
It appears that the '.import FILE TABLE' command doesn't support specifying the database name (db.table) -- I get a "no such table" error. (I'd guess that it treats "db.table" as the table name rather than recognizing the db part, as you can do with sql commands.) Similarly (but maybe a separate issue), the '.mode insert TABLE' output mode doesn't work with a database name either -- but this is a little more clear that it's just single-quoting the whole TABLE string, rather than recognizing the '.' as the db.table separator. Hopefully the example output log below demonstrates this adequately. A side nit-- if the table name *does* need to be quoted for '.mode insert', it should really be with double-quotes, since it's an identifier, right? (https://www.sqlite.org/lang_keywords.html) So I would expect/suggest this output: > .mode insert sdf.x > select 'hi'; INSERT INTO sdf.x VALUES('hi'); > .mode insert sdf-x > select 'hi'; INSERT INTO "sdf-x" VALUES('hi'); > .mode insert sdf-x.asd-y > select 'hi'; INSERT INTO "sdf-x"."asd-y" VALUES('hi'); (Note that even when double-quotes are necessary, the dot should remain unquoted!) But here is what I actually get: $ ./sqlite3 SQLite version 3.8.8.3 2015-02-25 13:29:11 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> attach ':memory:' as sdf; sqlite> create table sdf.t1 (x); sqlite> select * from sdf.t1; sqlite> .mode list sqlite> select 'hi'; hi sqlite> .output t1.dat sqlite> select 'hi'; sqlite> .output stdout sqlite> -- here's the first error sqlite> .import t1.dat sdf.t1 Error: no such table: sdf.t1 sqlite> -- only works with unqualified table name sqlite> .import t1.dat t1 sqlite> -- but, the table is there sqlite> select * from sdf.t1; hi sqlite> .mode insert sdf.t1 sqlite> select 'bye'; INSERT INTO 'sdf.t1' VALUES('bye'); sqlite> .output t1.sql sqlite> select 'bye'; sqlite> .output stdout sqlite> -- the 'db.table' name is broken when quoted sqlite> .read t1.sql Error: near line 1: no such table: sdf.t1 sqlite> -- again by hand sqlite> INSERT INTO 'sdf.t1' VALUES('bye'); Error: no such table: sdf.t1 sqlite> -- works as it should when db.table is unquoted sqlite> INSERT INTO sdf.t1 VALUES('bye'); sqlite> .mode list sqlite> select * from sdf.t1; hi bye sqlite> Is this intentional? If not, would it be easy to fix? Thanks! Carl

