This is background restructuring work to enable us to change the loop order (or change the way a given loop is handled) based on what the WHERE and JOIN clauses contain.
Changes:
process_where() called before opening table loops
Due to the above, WhereTerm now refers to table identifiers instead of cursor IDs because the cursors have not been allocated yet at that point
ProcessedWhereClause now contains a loop_order, which just defaults to the order in the SQL query for now. In the future the loop order may change depending on the query.
loops removed from Select struct; a LoopInfo vector is now returned from translate_tables_begin()
This is background restructuring work to enable us to change the loop order (or change the way a given loop is handled) based on what the WHERE and JOIN clauses contain.
Changes:
process_where()
called before opening table loopsWhereTerm
now refers to table identifiers instead of cursor IDs because the cursors have not been allocated yet at that pointProcessedWhereClause
now contains aloop_order
, which just defaults to the order in the SQL query for now. In the future the loop order may change depending on the query.loops
removed fromSelect
struct; aLoopInfo
vector is now returned fromtranslate_tables_begin()