~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/table_function.cc

  • Committer: Andrew Hutchings
  • Date: 2010-12-15 18:59:55 UTC
  • mto: This revision was merged to the branch mainline in revision 2006.
  • Revision ID: andrew@linuxjedi.co.uk-20101215185955-q12lkja8hdnpjqg7
Make the test look for drizzleadmin failure instead of success as this test is not possible to fix for success on our FreeBSD 8.0 box

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
#include "config.h"
21
21
 
22
 
#include <drizzled/current_session.h>
23
 
#include <drizzled/gettext.h>
24
 
#include <drizzled/global_charset_info.h>
25
22
#include <drizzled/plugin/table_function.h>
26
 
#include <drizzled/session.h>
27
 
#include <drizzled/show.h>
28
23
#include <drizzled/table_function_container.h>
 
24
#include <drizzled/gettext.h>
 
25
#include "drizzled/global_charset_info.h"
 
26
#include "drizzled/session.h"
 
27
#include "drizzled/current_session.h"
29
28
 
30
29
#include <vector>
31
30
 
36
35
 
37
36
void plugin::TableFunction::init()
38
37
{
39
 
  drizzled::message::table::init(proto, getTableLabel(), identifier.getSchemaName(), "FunctionEngine");
 
38
  drizzled::message::Engine *engine;
 
39
  drizzled::message::Table::TableOptions *table_options;
 
40
 
 
41
  proto.set_name(getTableLabel());
 
42
  proto.set_schema(identifier.getSchemaName());
40
43
  proto.set_type(drizzled::message::Table::FUNCTION);
41
44
  proto.set_creation_timestamp(0);
42
45
  proto.set_update_timestamp(0);
 
46
 
 
47
  table_options= proto.mutable_options();
 
48
  table_options->set_collation_id(default_charset_info->number);
 
49
  table_options->set_collation(default_charset_info->name);
 
50
 
 
51
  engine= proto.mutable_engine();
 
52
  engine->set_name("FunctionEngine");
43
53
}
44
54
 
45
55
bool plugin::TableFunction::addPlugin(plugin::TableFunction *tool)
93
103
  field_options= field->mutable_options();
94
104
  field_constraints= field->mutable_constraints();
95
105
  field_options->set_default_null(is_default_null);
96
 
  field_constraints->set_is_notnull(not is_default_null);
 
106
  field_constraints->set_is_nullable(is_default_null);
97
107
 
98
108
  switch (type) 
99
109
  {
 
110
  default:
 
111
  case TableFunction::BOOLEAN: // Currently BOOLEAN always has a value
 
112
    field_length= 5;
 
113
    field_options->set_default_null(false);
 
114
    field_constraints->set_is_nullable(false);
100
115
  case TableFunction::STRING:
101
116
    {
102
117
      drizzled::message::Table::Field::StringFieldOptions *string_field_options;
126
141
      string_field_options->set_collation_id(my_charset_bin.number);
127
142
    }
128
143
    break;
129
 
  case TableFunction::NUMBER:
130
 
    field->set_type(drizzled::message::Table::Field::BIGINT);
131
 
    break;
132
 
  case TableFunction::SIZE:
133
 
    field->set_type(drizzled::message::Table::Field::BIGINT);
134
 
    field_constraints->set_is_unsigned(true);
135
 
    break;
136
 
  case TableFunction::BOOLEAN: // Currently BOOLEAN always has a value
137
 
    field->set_type(drizzled::message::Table::Field::BOOLEAN);
138
 
    field_constraints->set_is_unsigned(true);
 
144
  case TableFunction::NUMBER: // Currently NUMBER always has a value
 
145
    field->set_type(drizzled::message::Table::Field::BIGINT);
139
146
    break;
140
147
  }
141
148
}
195
202
 
196
203
void plugin::TableFunction::Generator::push()
197
204
{
198
 
  /* Only accept NULLs */
199
 
  assert((*columns_iterator)->maybe_null());
 
205
#if 0 // @note this needs to be rewritten such that a drizzled::Field object can determine if it should ever be null
 
206
  assert((*columns_iterator)->getTable()->getShare()->getTableProto()->field((*columns_iterator)->getTable()->getFields() - columns_iterator).constraints().is_nullable());
 
207
#endif
200
208
  (*columns_iterator)->set_null();
201
209
  columns_iterator++;
202
210
}