Hello, On 2016-04-05 19:19, Richard Hipp wrote:
> Please explain why you think it is important to know the "type" of a > column in a view? For the same reason as it is important in case of a table. Both could be consistent. > There are further inconsistencies here. Example: > > CREATE TABLE t1(x INTEGER); > CREATE VIEW v1 AS SELECT x FROM t1; > CREATE VIEW v2(x) AS SELECT x FROM t1; > PRAGMA table_info('v1'); > PRAGMA table_info('v2'); > > As of version 3.12.0, the two pragma's give the same answer. but in > version 3.11.0, they were different. Which of the two answers > returned by 3.11.0 is correct? IMHO, INTEGER. ``v2(x)'' changes nothing but the name of the column. It has no impact on the column's affinity. > Or, consider this situation: > > CREATE TABLE t2(w SHORT INT, x DECIMAL, y BIGINT, z REAL); > CREATE VIEW v3 AS SELECT w+x+y+z FROM t2; > > What should "PRAGMA table_info('v3')" report as the column type? Opposite to the above: w+x+y+z loses affinity so it would be displayed as an empty string. > It seems to me that the most consistent answer is that the "type" of > columns in a VIEW should always be an empty string. If so, Mike's postulate is arguable. This fact could be mentioned in a description of ``table_info'' PRAGMA: in case of views only id and a name of a column is meaningful. -- best regards Cezary H. Noweta