summaryrefslogtreecommitdiff
path: root/sql/table.h
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2011-04-02 14:09:00 +0400
committerSergey Petrunya <psergey@askmonty.org>2011-04-02 14:09:00 +0400
commit8fb724281e00757c4a81c57b081602b3cb4e6726 (patch)
tree428e55fc35e017a80ef28cba76f3fbbf85fda97d /sql/table.h
parentd5adc29d1c39027c827074f936d3f28e71f87800 (diff)
parentb86abed53de628c650a1c47a0287aaa32228a051 (diff)
downloadmariadb-git-8fb724281e00757c4a81c57b081602b3cb4e6726.tar.gz
Merge MWL#90 with main 5.3 tree
Diffstat (limited to 'sql/table.h')
-rw-r--r--sql/table.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/sql/table.h b/sql/table.h
index d43f5c85849..5d414278b02 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -967,6 +967,12 @@ struct st_table {
file->extra(HA_EXTRA_KEYREAD);
DBUG_VOID_RETURN;
}
+ /*
+ Returns TRUE if the table is filled at execution phase (and so, the
+ optimizer must not do anything that depends on the contents of the table,
+ like range analysis or constant table detection)
+ */
+ bool is_filled_at_execution();
inline void disable_keyread()
{
DBUG_ENTER("disable_keyread");
@@ -1195,7 +1201,7 @@ class Item_in_subselect;
1) table (TABLE_LIST::view == NULL)
- base table
(TABLE_LIST::derived == NULL)
- - subquery - TABLE_LIST::table is a temp table
+ - FROM-clause subquery - TABLE_LIST::table is a temp table
(TABLE_LIST::derived != NULL)
- information schema table
(TABLE_LIST::schema_table != NULL)
@@ -1214,6 +1220,8 @@ class Item_in_subselect;
(TABLE_LIST::natural_join != NULL)
- JOIN ... USING
(TABLE_LIST::join_using_fields != NULL)
+ - semi-join nest (sj_on_expr!= NULL && sj_subq_pred!=NULL)
+ 4) jtbm semi-join (jtbm_subselect != NULL)
*/
class Index_hint;
@@ -1256,8 +1264,14 @@ struct TABLE_LIST
*/
table_map sj_inner_tables;
/* Number of IN-compared expressions */
- uint sj_in_exprs;
+ uint sj_in_exprs;
+
+ /* If this is a non-jtbm semi-join nest: corresponding subselect predicate */
Item_in_subselect *sj_subq_pred;
+
+ /* If this is a jtbm semi-join object: corresponding subselect predicate */
+ Item_in_subselect *jtbm_subselect;
+
SJ_MATERIALIZATION_INFO *sj_mat_info;
/*