union tous avec des requêtes qui ont un nombre différent de colonnes

J'ai couru dans un cas où une requête sqlite et je m'attends à renvoyer un message d'erreur est réellement réussir et je me demandais si quelqu'un pouvait indiquer pourquoi cette requête est valide.

CREATE TABLE test_table(
  k INTEGER,
  v INTEGER
);

INSERT INTO test_table( k, v ) VALUES( 4, 5 );

SELECT * FROM(
  SELECT * FROM(
    SELECT k, v FROM test_table WHERE 1 = 0
  )
  UNION ALL
  SELECT * FROM(
    SELECT rowid, k, v FROM test_table
  )
)

sqlfiddle de ci-dessus

Je pense que la fusion de deux sélectionne qui ont un nombre différent de colonnes renvoyait une erreur. Si je supprime le ultrapériphériques SELECT * puis-je recevoir le message d'erreur que j'attends: SELECTs to the left and right of UNION ALL do not have the same number of result columns.

source d'informationauteur user1560123