title: SqliteDataReader and duplicate column names when using LEFT JOIN
body: <p>Is there a documentation/specification about Sqlite3 that would describe would is supposed to happen in the following case?</p>
  
  <p>Take this query:</p>
  
  <pre><code>var cmd = new SqliteCommand("SELECT Items.*, Files.* FROM Items LEFT JOIN Files ON Files.strColName = Items.strColName");
  </code></pre>
  
  <p>Both <code>Items</code> and <code>Files</code> have a column name "<em>strColName</em>". If an entry exists in <code>Files</code>, it will be joined to the result, if not, it will be NULL.
  Let's assume I always need the value of <em>strColName</em>, no matter if it is coming from <code>Items</code> or from <code>Files</code>. If I execute a reader:</p>
  
  <pre><code>var reader = cmd.ExecuteReader();
  </code></pre>
  
  <p>If there is a match in <code>Files</code>, <code>reader["strColName"]</code> will obviously contain the correct result because the value is set and it is the same in both tables. But if there wasn't a match in <code>Files</code>, will the NULL value of <code>Files</code> overwrite the non-NULL value of <code>Items</code>?</p>
  
  <p>I'm really looking for some specification that defines how a Sqlite3 implementation has to deal with this case, so that I can trust either result.</p>