~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_derived.cc

  • Committer: Brian Aker
  • Date: 2010-09-12 01:42:27 UTC
  • mto: (1759.2.1 build)
  • mto: This revision was merged to the branch mainline in revision 1762.
  • Revision ID: brian@tangent.org-20100912014227-krt6d9z5ohqrokhb
Add two plugins to handle the string and math functions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
   You should have received a copy of the GNU General Public License
13
13
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
 
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
15
 
16
16
/*
17
17
  Derived tables
54
54
          Force join->join_tmp creation, because we will use this JOIN
55
55
          twice for EXPLAIN and we have to have unchanged join for EXPLAINing
56
56
        */
57
 
        sl->uncacheable.set(UNCACHEABLE_EXPLAIN);
58
 
        sl->master_unit()->uncacheable.set(UNCACHEABLE_EXPLAIN);
 
57
        sl->uncacheable|= UNCACHEABLE_EXPLAIN;
 
58
        sl->master_unit()->uncacheable|= UNCACHEABLE_EXPLAIN;
59
59
      }
60
60
    }
61
61
  }
144
144
    }
145
145
    else
146
146
    {
 
147
      if (! session->fill_derived_tables())
 
148
      {
 
149
        delete derived_result;
 
150
        derived_result= NULL;
 
151
      }
147
152
      orig_table_list->derived_result= derived_result;
148
153
      orig_table_list->table= table;
149
 
      orig_table_list->setTableName(const_cast<char *>(table->getShare()->getTableName()));
 
154
      orig_table_list->table_name=        const_cast<char *>(table->getShare()->getTableName());
150
155
      orig_table_list->table_name_length= table->getShare()->getTableNameSize();
151
156
      table->derived_select_number= first_select->select_number;
152
 
      orig_table_list->setSchemaName((char *)"");
 
157
      orig_table_list->db= (char *)"";
153
158
      orig_table_list->db_length= 0;
154
159
      /* Force read of table stats in the optimizer */
155
160
      table->cursor->info(HA_STATUS_VARIABLE);
156
161
      /* Add new temporary table to list of open derived tables */
157
 
      table->setNext(session->getDerivedTables());
158
 
      session->setDerivedTables(table);
 
162
      table->setNext(session->derived_tables);
 
163
      session->derived_tables= table;
159
164
    }
160
165
  }
161
166
 
214
219
                        first_select->item_list, first_select->where,
215
220
                        (first_select->order_list.elements+
216
221
                        first_select->group_list.elements),
217
 
                        (Order *) first_select->order_list.first,
218
 
                        (Order *) first_select->group_list.first,
 
222
                        (order_st *) first_select->order_list.first,
 
223
                        (order_st *) first_select->group_list.first,
219
224
                        first_select->having,
220
225
                        (first_select->options | session->options | SELECT_NO_UNLOCK),
221
226
                        derived_result, unit, first_select);