CREATE TABLE customer (id INT PRIMARY KEY);
  CREATE TABLE apr (id INT PRIMARY KEY, apr REAL);
  
  CREATE VIEW v1 AS
  SELECT c.id, i.apr
  FROM customer c
  LEFT JOIN apr i ON i.id=c.id;
  
  CREATE VIEW v1rj AS
  SELECT c.id, i.apr
  FROM apr i
  RIGHT JOIN customer c ON i.id=c.id;
  
  CREATE VIEW v2 AS
  SELECT c.id, v1.apr
  FROM customer c
  LEFT JOIN v1 ON v1.id=c.id;
  
  CREATE VIEW v2rj AS
  SELECT c.id, v1.apr
  FROM v1 RIGHT JOIN customer c ON v1.id=c.id;
  
  CREATE VIEW v2rjrj AS
  SELECT c.id, v1rj.apr
  FROM v1rj RIGHT JOIN customer c ON v1rj.id=c.id;
  
  INSERT INTO customer (id) VALUES (1);
  INSERT INTO apr (id, apr) VALUES (1, 12);
  INSERT INTO customer (id) VALUES (2);
  INSERT INTO apr (id, apr) VALUES (2, 12.01);


  PRAGMA automatic_index=ON;
  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v1;


  PRAGMA automatic_index=ON;
  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v1rj;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v2;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v2rj;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v2rjrj;


  PRAGMA automatic_index=OFF;
  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v1;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v1rj;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v2;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v2rj;


  SELECT id, (apr / 100), typeof(apr) apr_type  FROM v2rjrj;


  CREATE TABLE map_integer (id INT, name);
  INSERT INTO map_integer VALUES(1,'a');
  CREATE TABLE map_text (id TEXT, name);
  INSERT INTO map_text VALUES('4','e');
  CREATE TABLE data (id TEXT, name);
  INSERT INTO data VALUES(1,'abc');
  INSERT INTO data VALUES('4','xyz');
  CREATE VIEW idmap as
      SELECT * FROM map_integer
      UNION SELECT * FROM map_text;
  CREATE TABLE mzed AS SELECT * FROM idmap;


  PRAGMA automatic_index=ON;
  SELECT * FROM data JOIN idmap USING(id);


  SELECT * FROM data JOIN mzed USING(id);


  PRAGMA automatic_index=OFF;
  SELECT * FROM data JOIN idmap USING(id);


  SELECT * FROM data JOIN mzed USING(id);