1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Brian Aker
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_SJ_TMP_TABLE_H
21
#define DRIZZLED_SJ_TMP_TABLE_H
23
#include <drizzled/server_includes.h>
27
Describes use of one temporary table to weed out join duplicates.
32
- when we reach the weed-out tab, walk through rowid-ed tabs and
34
For each table we need
39
class SJ_TMP_TABLE : public Sql_alloc
42
/* Array of pointers to tables that should be "used" */
46
struct st_join_table *join_tab;
47
uint32_t rowid_offset;
49
unsigned char null_bit;
60
MI_COLUMNDEF *start_recinfo;
61
MI_COLUMNDEF *recinfo;
63
/* Pointer to next table (next->start_idx > this->end_idx) */
67
Table *create_duplicate_weedout_tmp_table(Session *session,
68
uint32_t uniq_tuple_length_arg,
71
#endif /* DRIZZLED_SJ_TMP_TABLE_H */