~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/lex_string.h

  • Committer: Brian Aker
  • Date: 2008-10-18 15:43:20 UTC
  • mto: (492.3.20 drizzle-clean-code)
  • mto: This revision was merged to the branch mainline in revision 530.
  • Revision ID: brian@tangent.org-20081018154320-jc9jyij3mdf08abp
Updating tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems, Inc.
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_LEX_STRING_H
21
 
#define DRIZZLED_LEX_STRING_H
22
 
 
23
 
#include <stddef.h>
24
 
 
25
 
namespace drizzled
26
 
{
27
 
 
28
 
/*
29
 
  LEX_STRING -- a pair of a C-string and its length.
30
 
*/
31
 
 
32
 
/* This definition must match the one given in mysql/plugin.h */
33
 
typedef struct lex_string_t
34
 
{
35
 
  char *str;
36
 
  size_t length;
37
 
} LEX_STRING;
38
 
 
39
 
inline const LEX_STRING &null_lex_string()
40
 
{
41
 
  static LEX_STRING tmp= { NULL, 0 };
42
 
  return tmp;
43
 
}
44
 
 
45
 
#define NULL_LEX_STRING null_lex_string()
46
 
 
47
 
struct execute_string_t : public lex_string_t
48
 
{
49
 
private:
50
 
  bool is_variable;
51
 
public:
52
 
 
53
 
  bool isVariable() const
54
 
  {
55
 
    return is_variable;
56
 
  }
57
 
 
58
 
  void set(const lex_string_t& ptr, bool is_variable_arg= false)
59
 
  {
60
 
    is_variable= is_variable_arg;
61
 
    str= ptr.str;
62
 
    length= ptr.length;
63
 
  }
64
 
 
65
 
};
66
 
 
67
 
 
68
 
#define STRING_WITH_LEN(X) (X), (static_cast<size_t>((sizeof(X) - 1)))
69
 
#define C_STRING_WITH_LEN(X) (const_cast<char *>((X))), (static_cast<size_t>((sizeof(X) - 1)))
70
 
 
71
 
} /* namespace drizzled */
72
 
 
73
 
#endif /* DRIZZLED_LEX_STRING_H */