mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
10.0-base merge
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
#ifndef SQL_SELECT_INCLUDED
|
||||
#define SQL_SELECT_INCLUDED
|
||||
|
||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008-2011 Monty Program Ab
|
||||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2013, Monty Program Ab.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -514,6 +514,16 @@ typedef struct st_join_table {
|
||||
bool preread_init();
|
||||
|
||||
bool is_sjm_nest() { return test(bush_children); }
|
||||
|
||||
bool access_from_tables_is_allowed(table_map used_tables,
|
||||
table_map sjm_lookup_tables)
|
||||
{
|
||||
table_map used_sjm_lookup_tables= used_tables & sjm_lookup_tables;
|
||||
return !used_sjm_lookup_tables ||
|
||||
(emb_sj_nest &&
|
||||
!(used_sjm_lookup_tables & ~emb_sj_nest->sj_inner_tables));
|
||||
}
|
||||
|
||||
} JOIN_TAB;
|
||||
|
||||
|
||||
@ -964,6 +974,11 @@ public:
|
||||
bool hash_join;
|
||||
bool do_send_rows;
|
||||
table_map const_table_map;
|
||||
/**
|
||||
Bitmap of semijoin tables that the current partial plan decided
|
||||
to materialize and access by lookups
|
||||
*/
|
||||
table_map sjm_lookup_tables;
|
||||
/*
|
||||
Constant tables for which we have found a row (as opposed to those for
|
||||
which we didn't).
|
||||
@ -1295,8 +1310,9 @@ public:
|
||||
outer_ref_cond= pseudo_bits_cond= NULL;
|
||||
in_to_exists_where= NULL;
|
||||
in_to_exists_having= NULL;
|
||||
|
||||
pre_sort_join_tab= NULL;
|
||||
emb_sjm_nest= NULL;
|
||||
sjm_lookup_tables= 0;
|
||||
}
|
||||
|
||||
int prepare(Item ***rref_pointer_array, TABLE_LIST *tables, uint wind_num,
|
||||
|
Reference in New Issue
Block a user