1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; version 2 of the License.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
#ifndef DRIZZLED_SELECT_DUMPVAR_H
21
#define DRIZZLED_SELECT_DUMPVAR_H
23
#include "drizzled/error.h"
24
#include "drizzled/error.h"
31
class select_dumpvar :public select_result_interceptor {
34
std::vector<var *> var_list;
35
select_dumpvar() { var_list.clear(); row_count= 0;}
38
int prepare(List<Item> &list, Select_Lex_Unit *u)
42
if (var_list.size() != list.elements)
44
my_message(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT,
45
ER(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT), MYF(0));
57
bool send_data(List<Item> &items)
60
std::vector<var *>::const_iterator iter= var_list.begin();
62
List_iterator<Item> it(items);
66
if (unit->offset_limit_cnt)
67
{ // using limit offset,count
68
unit->offset_limit_cnt--;
73
my_message(ER_TOO_MANY_ROWS, ER(ER_TOO_MANY_ROWS), MYF(0));
76
while ((iter != var_list.end()) && (item= it++))
79
if (current_var->local == 0)
81
Item_func_set_user_var *suv= new Item_func_set_user_var(current_var->s, item);
82
suv->fix_fields(session, 0);
88
return(session->is_error());
94
push_warning(session, DRIZZLE_ERROR::WARN_LEVEL_WARN,
95
ER_SP_FETCH_NO_DATA, ER(ER_SP_FETCH_NO_DATA));
97
In order to remember the value of affected rows for ROW_COUNT()
98
function, SELECT INTO has to have an own SQLCOM.
99
TODO: split from SQLCOM_SELECT
101
session->my_ok(row_count);
107
} /* namespace drizzled */
109
#endif /* DRIZZLED_SELECT_DUMPVAR_H */