~drizzle-trunk/drizzle/development

2148.7.6 by Brian Aker
Move out subclasses from session.
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2011 Brian Aker
5
 *  Copyright (C) 2008 Sun Microsystems, Inc.
6
 *
7
 *  This program is free software; you can redistribute it and/or modify
8
 *  it under the terms of the GNU General Public License as published by
9
 *  the Free Software Foundation; version 2 of the License.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program; if not, write to the Free Software
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 */
20
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
21
#pragma once
2148.7.6 by Brian Aker
Move out subclasses from session.
22
2239.1.6 by Olaf van der Spek
Refactor includes
23
namespace drizzled {
24
2148.7.6 by Brian Aker
Move out subclasses from session.
25
struct drizzle_system_variables
26
{
27
  /*
28
    How dynamically allocated system variables are handled:
29
30
    The global_system_variables and max_system_variables are "authoritative"
31
    They both should have the same 'version' and 'size'.
32
    When attempting to access a dynamic variable, if the session version
33
    is out of date, then the session version is updated and realloced if
34
    neccessary and bytes copied from global to make up for missing data.
35
  */
36
  ulong dynamic_variables_version;
37
  char * dynamic_variables_ptr;
38
  uint32_t dynamic_variables_head;  /* largest valid variable offset */
39
  uint32_t dynamic_variables_size;  /* how many bytes are in use */
40
41
  uint64_t myisam_max_extra_sort_file_size;
42
  uint64_t max_heap_table_size;
43
  uint64_t tmp_table_size;
44
  ha_rows select_limit;
45
  ha_rows max_join_size;
46
  uint64_t auto_increment_increment;
47
  uint64_t auto_increment_offset;
48
  uint64_t bulk_insert_buff_size;
49
  uint64_t join_buff_size;
50
  uint32_t max_allowed_packet;
51
  uint64_t max_error_count;
52
  uint64_t max_length_for_sort_data;
53
  size_t max_sort_length;
54
  uint64_t min_examined_row_limit;
55
  bool optimizer_prune_level;
56
  bool log_warnings;
57
58
  uint32_t optimizer_search_depth;
59
  uint32_t div_precincrement;
60
  uint64_t preload_buff_size;
61
  uint32_t read_buff_size;
62
  uint32_t read_rnd_buff_size;
63
  bool replicate_query;
64
  size_t sortbuff_size;
65
  uint32_t thread_handling;
66
  uint32_t tx_isolation;
67
  uint32_t completion_type;
68
  /* Determines which non-standard SQL behaviour should be enabled */
69
  uint32_t sql_mode;
70
  uint64_t max_seeks_for_key;
71
  size_t range_alloc_block_size;
72
  uint32_t query_alloc_block_size;
73
  uint32_t query_prealloc_size;
74
  uint64_t group_concat_max_len;
75
  uint64_t pseudo_thread_id;
76
77
  plugin::StorageEngine *storage_engine;
78
79
  /* Only charset part of these variables is sensible */
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
80
  const charset_info_st  *character_set_filesystem;
2148.7.6 by Brian Aker
Move out subclasses from session.
81
82
  /* Both charset and collation parts of these variables are important */
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
83
  const charset_info_st	*collation_server;
2148.7.6 by Brian Aker
Move out subclasses from session.
84
2385.2.4 by Olaf van der Spek
cppcheck
85
  const charset_info_st* getCollation() const
2148.7.6 by Brian Aker
Move out subclasses from session.
86
  {
87
    return collation_server;
88
  }
89
90
  /* Locale Support */
91
  MY_LOCALE *lc_time_names;
92
};
93
94
95
} /* namespace drizzled */
96