I’ve updated SQLite3 to version 3.27.2, and the previous error has gone away. 
However, the docs are still lying, because information_schema.tables cannot be 
implemented (evidence below). It seems that we need a pragma_table_list() 
function, which takes a schema as a parameter (similar to pragma_table_info(), 
pragma_index_list(), etc.)

Joshuas-MBP:sqldark josh$ sqlite3
SQLite version 3.27.2 2019-02-25 16:06:06
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 'information_schema';
sqlite> CREATE VIEW information_schema.tables(table_name) AS
   ...> SELECT name FROM main.sqlite_master
   ...> WHERE type = 'table';
Error: view tables cannot reference objects in database main



> On Feb 27, 2019, at 2:48 PM, Joshua Wise <joshuathomasw...@gmail.com> wrote:
> 
> Ahh that’s very interesting. I suspect this is the relevant entry in the 
> release notes:
> 
> SQLite Release 3.26.0 On 2018-12-01
> Enhanced triggers so that they can use table-valued functions that exist in 
> schemas other than the schema where the trigger is defined.
> 
> Although, we’re talking about views here, not triggers.
> 
> 
>> On Feb 27, 2019, at 2:43 PM, David Raymond <david.raym...@tomtom.com 
>> <mailto:david.raym...@tomtom.com>> wrote:
>> 
>> For me it gives an error up through 3.25.3 and starts working at 3.26.0
>> 
>> 
>> 
>> -----Original Message-----
>> From: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org 
>> <mailto:sqlite-users-boun...@mailinglists.sqlite.org>] On Behalf Of Joshua 
>> Wise
>> Sent: Wednesday, February 27, 2019 2:13 PM
>> To: SQLite mailing list
>> Subject: Re: [sqlite] Documentation is lying to me
>> 
>> I can confirm that it also doesn’t work with SQLite version 3.24.0 on a 
>> completely different machine.
>> 
>>> On Feb 27, 2019, at 9:23 AM, Joshua Thomas Wise <joshuathomasw...@gmail.com 
>>> <mailto:joshuathomasw...@gmail.com>> wrote:
>>> 
>>> Joshuas-MBP:sqldark josh$ sqlite3
>>> SQLite version 3.25.0 2018-09-15 04:01:47
>>> Enter ".help" for usage hints.
>>> Connected to a transient in-memory database.
>>> Use ".open FILENAME" to reopen on a persistent database.
>>> sqlite> SELECT sqlite_version();
>>> 3.25.0
>>> sqlite> ATTACH ':memory:' AS 'information_schema';
>>> sqlite> CREATE VIEW information_schema.schemata(schema_name) AS
>>>   ...> SELECT name FROM pragma_database_list();
>>> sqlite> select * from schemata;
>>> Error: no such table: information_schema.pragma_database_list
>>> sqlite> select * from pragma_database_list();
>>> 0|main|
>>> 2|information_schema|
>>> 
>>> It worked when using `pragma_database_list()` directly, but not from inside 
>>> the view.
>>> 
>>> 
>>> 
>>>> On Feb 26, 2019, at 9:26 PM, Keith Medcalf <kmedc...@dessus.com 
>>>> <mailto:kmedc...@dessus.com> <mailto:kmedc...@dessus.com 
>>>> <mailto:kmedc...@dessus.com>>> wrote:
>>>> 
>>>> 
>>>> Unable to reproduce:
>>>> 
>>>>> sqlite
>>>> SQLite version 3.28.0 2019-02-25 18:43:54
>>>> 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 'information_schema';
>>>> sqlite> CREATE VIEW information_schema.schemata(schema_name) AS
>>>>  ...> SELECT name FROM pragma_database_list();
>>>> sqlite>
>>>> sqlite> select * from schemata;
>>>> main
>>>> information_schema
>>>> sqlite> .exit
>>>> 
>>>> What version of SQLite are you using?
>>>> What do the following commands do?
>>>> 
>>>> pragma database_list;
>>>> 
>>>> select * from pragma_database_list();
>>>> 
>>>> 
>>>> ---
>>>> The fact that there's a Highway to Hell but only a Stairway to Heaven says 
>>>> a lot about anticipated traffic volume.
>>>> 
>>>>> -----Original Message-----
>>>>> From: sqlite-users [mailto:sqlite-users-
>>>>> boun...@mailinglists.sqlite.org <mailto:boun...@mailinglists.sqlite.org> 
>>>>> <mailto:boun...@mailinglists.sqlite.org 
>>>>> <mailto:boun...@mailinglists.sqlite.org>>] On Behalf Of Joshua Thomas Wise
>>>>> Sent: Tuesday, 26 February, 2019 19:06
>>>>> To: sqlite-users@mailinglists.sqlite.org 
>>>>> <mailto:sqlite-users@mailinglists.sqlite.org> 
>>>>> <mailto:sqlite-users@mailinglists.sqlite.org 
>>>>> <mailto:sqlite-users@mailinglists.sqlite.org>>
>>>>> Subject: [sqlite] Documentation is lying to me
>>>>> 
>>>>> In this SQLite3 documentation
>>>>> (https://www.sqlite.org/pragma.html#pragfunc 
>>>>> <https://www.sqlite.org/pragma.html#pragfunc> 
>>>>> <https://www.sqlite.org/pragma.html#pragfunc 
>>>>> <https://www.sqlite.org/pragma.html#pragfunc>>), it says that
>>>>> information_schema could be implemented by doing something like this:
>>>>> 
>>>>> ATTACH ':memory:' AS 'information_schema';
>>>>> CREATE VIEW information_schema.schemata(schema_name) AS
>>>>> SELECT name FROM pragma_database_list();
>>>>> 
>>>>> However, when attempting to do this, we get an error: "no such table:
>>>>> information_schema.pragma_database_list”.
>>>>> _______________________________________________
>>>>> sqlite-users mailing list
>>>>> sqlite-users@mailinglists.sqlite.org 
>>>>> <mailto:sqlite-users@mailinglists.sqlite.org> 
>>>>> <mailto:sqlite-users@mailinglists.sqlite.org 
>>>>> <mailto:sqlite-users@mailinglists.sqlite.org>>
>>>>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users 
>>>>> <http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users>
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> sqlite-users mailing list
>>>> sqlite-users@mailinglists.sqlite.org 
>>>> <mailto:sqlite-users@mailinglists.sqlite.org> 
>>>> <mailto:sqlite-users@mailinglists.sqlite.org 
>>>> <mailto:sqlite-users@mailinglists.sqlite.org>>
>>>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users 
>>>> <http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users>
>>> 
>> 
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@mailinglists.sqlite.org 
>> <mailto:sqlite-users@mailinglists.sqlite.org>
>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users 
>> <http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@mailinglists.sqlite.org 
>> <mailto:sqlite-users@mailinglists.sqlite.org>
>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users 
>> <http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users>

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

Reply via email to