On 7/29/19, Hick Gunter <h...@scigames.at> wrote: > Qquestions about which internal > representation ... is something only the developers would > be able to divulge,
The internal representation and the output of sqlite3TreeViewSelect() are emphatically not APIs. Both are undocumented and both can and do change from one release to the next. The sqlite3TreeViewSelect() interface is intended for debugging use only. If you want to know what the output of sqlite3TreeViewSelect() means, you should consult the source code in the treeview.c source file for the specific version of SQLite you are running. That's what the developers do. The meanings of the fields in the internal representation are well described by code comments, especially in the sqliteInt.h file. For information about specific fields or values, try grepping in the source code. There are usually nearby comments that explain what is going on. Sadly, the IF_NULL_ROW value is not as well commented as it might be. But, by looking at the source code, you quickly get the idea that it has something to do with LEFT JOIN. And if you search the Fossil repository history, you can see that the identifier was added here: https://www.sqlite.org/src/timeline?c=3a5860d86fadcf92 Using those clues, perhaps you can figure it out. I added the IF_NULL_ROW code myself but that was over two years ago and at this point I don't remember exactly why. I'll have to go back and reverse engineer it, if and when I improve the comments, or should we ever need to work on that particular aspect of the implementation. As with all of the internal representation, we might find a better way to accomplish the same thing tomorrow, and totally eliminate the IF_NULL_ROW operator from the code. So don't become too attached to it. -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users