~drizzle-trunk/drizzle/development

1237.9.1 by Padraig O'Sullivan
Moved the opt_sum.cc file into the optimizer directory and renamed it to sum.cc. Added a header file
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
1999.6.1 by kalebral at gmail
update Copyright strings to a more common format to help with creating the master debian copyright file
4
 *  Copyright (C) 2008-2009 Sun Microsystems, Inc.
1237.9.1 by Padraig O'Sullivan
Moved the opt_sum.cc file into the optimizer directory and renamed it to sum.cc. Added a header file
5
 *
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.
9
 *
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.
14
 *
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
18
 */
19
20
#ifndef DRIZZLED_OPTIMIZER_SUM_H
21
#define DRIZZLED_OPTIMIZER_SUM_H
22
23
namespace drizzled
24
{
25
26
namespace optimizer
27
{
28
29
/**
30
  Test if the predicate compares a field with constants.
31
32
  @param func_item        Predicate item
33
  @param[out] args        Here we store the field followed by constants
34
  @param[out] inv_order   Is set to 1 if the predicate is of the form
35
                          'const op field'
36
37
  @retval
38
    0        func_item is a simple predicate: a field is compared with
39
    constants
40
  @retval
41
    1        Otherwise
42
*/
1237.13.5 by Padraig O'Sullivan
Split some classes from the range optimizer out in to their own header and implementation files.
43
bool simple_pred(Item_func *func_item, Item **args, bool &inv_order);
1237.9.1 by Padraig O'Sullivan
Moved the opt_sum.cc file into the optimizer directory and renamed it to sum.cc. Added a header file
44
45
/**
46
  Substitutes constants for some COUNT(), MIN() and MAX() functions.
47
48
  @param tables                list of leaves of join table tree
49
  @param all_fields            All fields to be returned
50
  @param conds                 WHERE clause
51
52
  @note
53
    This function is only called for queries with sum functions and no
54
    GROUP BY part.
55
56
  @retval
57
    0                    no errors
58
  @retval
59
    1                    if all items were resolved
60
  @retval
61
    HA_ERR_KEY_NOT_FOUND on impossible conditions
62
  @retval
63
    HA_ERR_... if a deadlock or a lock wait timeout happens, for example
64
*/
65
int sum_query(TableList *tables, List<Item> &all_fields, COND *conds);
66
67
} /* namespace optimizer */
68
69
} /* namespace drizzled */
70
71
#endif /* DRIZZLED_OPTIMIZER_SUM_H */