~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/create.cc

  • Committer: Brian Aker
  • Date: 2011-07-25 14:24:19 UTC
  • mto: This revision was merged to the branch mainline in revision 2373.
  • Revision ID: brian@tangent.org-20110725142419-3vobv9u6k7jp4qej
Remove the typedef on lexkey

Show diffs side-by-side

added added

removed removed

Lines of Context:
128
128
class Create_native_func : public Create_func
129
129
{
130
130
public:
131
 
  virtual Item* create(Session* session, LEX_STRING name, List<Item>* item_list)
 
131
  virtual Item* create(Session* session, lex_string_t name, List<Item>* item_list)
132
132
  {
133
133
    if (item_list && has_named_parameters(*item_list))
134
134
    {
145
145
    @param item_list The function parameters, none of which are named
146
146
    @return An item representing the function call
147
147
  */
148
 
  virtual Item* create_native(Session*, LEX_STRING name, List<Item>*) = 0;
 
148
  virtual Item* create_native(Session*, lex_string_t name, List<Item>*) = 0;
149
149
};
150
150
 
151
151
 
156
156
class Create_func_arg0 : public Create_func
157
157
{
158
158
public:
159
 
  virtual Item* create(Session *session, LEX_STRING name, List<Item> *item_list);
 
159
  virtual Item* create(Session *session, lex_string_t name, List<Item> *item_list);
160
160
 
161
161
  /**
162
162
    Builder method, with no arguments.
174
174
class Create_func_arg1 : public Create_func
175
175
{
176
176
public:
177
 
  virtual Item* create(Session *session, LEX_STRING name, List<Item> *item_list);
 
177
  virtual Item* create(Session *session, lex_string_t name, List<Item> *item_list);
178
178
 
179
179
  /**
180
180
    Builder method, with one argument.
193
193
class Create_func_arg2 : public Create_func
194
194
{
195
195
public:
196
 
  virtual Item* create(Session *session, LEX_STRING name, List<Item> *item_list);
 
196
  virtual Item* create(Session *session, lex_string_t name, List<Item> *item_list);
197
197
 
198
198
  /**
199
199
    Builder method, with two arguments.
213
213
class Create_func_arg3 : public Create_func
214
214
{
215
215
public:
216
 
  virtual Item* create(Session *session, LEX_STRING name, List<Item> *item_list);
 
216
  virtual Item* create(Session *session, lex_string_t name, List<Item> *item_list);
217
217
 
218
218
  /**
219
219
    Builder method, with three arguments.
254
254
class Create_func_concat : public Create_native_func
255
255
{
256
256
public:
257
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
257
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
258
258
 
259
259
  static Create_func_concat s_singleton;
260
260
 
266
266
class Create_func_concat_ws : public Create_native_func
267
267
{
268
268
public:
269
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
269
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
270
270
 
271
271
  static Create_func_concat_ws s_singleton;
272
272
 
440
440
{
441
441
 
442
442
public:
443
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
443
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
444
444
 
445
445
  static Create_func_export_set s_singleton;
446
446
 
452
452
class Create_func_field : public Create_native_func
453
453
{
454
454
public:
455
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
455
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
456
456
 
457
457
  static Create_func_field s_singleton;
458
458
 
505
505
class Create_func_from_unixtime : public Create_native_func
506
506
{
507
507
public:
508
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
508
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
509
509
 
510
510
  static Create_func_from_unixtime s_singleton;
511
511
 
517
517
class Create_func_greatest : public Create_native_func
518
518
{
519
519
public:
520
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
520
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
521
521
 
522
522
  static Create_func_greatest s_singleton;
523
523
 
585
585
class Create_func_last_insert_id : public Create_native_func
586
586
{
587
587
public:
588
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
588
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
589
589
 
590
590
  static Create_func_last_insert_id s_singleton;
591
591
 
611
611
class Create_func_least : public Create_native_func
612
612
{
613
613
public:
614
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
614
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
615
615
 
616
616
  static Create_func_least s_singleton;
617
617
 
636
636
class Create_func_locate : public Create_native_func
637
637
{
638
638
public:
639
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
639
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
640
640
 
641
641
  static Create_func_locate s_singleton;
642
642
 
699
699
class Create_func_make_set : public Create_native_func
700
700
{
701
701
public:
702
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
702
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
703
703
 
704
704
  static Create_func_make_set s_singleton;
705
705
 
826
826
class Create_func_round : public Create_native_func
827
827
{
828
828
public:
829
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
829
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
830
830
 
831
831
  static Create_func_round s_singleton;
832
832
protected:
1003
1003
class Create_func_unix_timestamp : public Create_native_func
1004
1004
{
1005
1005
public:
1006
 
  virtual Item* create_native(Session *session, LEX_STRING name, List<Item> *item_list);
 
1006
  virtual Item* create_native(Session *session, lex_string_t name, List<Item> *item_list);
1007
1007
 
1008
1008
  static Create_func_unix_timestamp s_singleton;
1009
1009
protected:
1036
1036
 
1037
1037
Create_udf_func Create_udf_func::s_singleton;
1038
1038
 
1039
 
Item* Create_udf_func::create(Session *session, LEX_STRING name, List<Item> *item_list)
 
1039
Item* Create_udf_func::create(Session *session, lex_string_t name, List<Item> *item_list)
1040
1040
{
1041
1041
  return create(session, plugin::Function::get(std::string(name.str, name.length)), item_list);
1042
1042
}
1056
1056
  return func;
1057
1057
}
1058
1058
 
1059
 
Item* Create_func_arg0::create(Session *session, LEX_STRING name, List<Item> *item_list)
 
1059
Item* Create_func_arg0::create(Session *session, lex_string_t name, List<Item> *item_list)
1060
1060
{
1061
1061
  if (item_list && item_list->size())
1062
1062
  {
1066
1066
  return create(session);
1067
1067
}
1068
1068
 
1069
 
Item* Create_func_arg1::create(Session *session, LEX_STRING name, List<Item> *item_list)
 
1069
Item* Create_func_arg1::create(Session *session, lex_string_t name, List<Item> *item_list)
1070
1070
{
1071
1071
  int arg_count= item_list ? item_list->size() : 0;
1072
1072
  if (arg_count != 1)
1088
1088
 
1089
1089
 
1090
1090
Item*
1091
 
Create_func_arg2::create(Session *session, LEX_STRING name, List<Item> *item_list)
 
1091
Create_func_arg2::create(Session *session, lex_string_t name, List<Item> *item_list)
1092
1092
{
1093
1093
  int arg_count= item_list ? item_list->size() : 0;
1094
1094
  if (arg_count != 2)
1112
1112
 
1113
1113
 
1114
1114
Item*
1115
 
Create_func_arg3::create(Session *session, LEX_STRING name, List<Item> *item_list)
 
1115
Create_func_arg3::create(Session *session, lex_string_t name, List<Item> *item_list)
1116
1116
{
1117
1117
  int arg_count= item_list ? item_list->size() : 0;
1118
1118
  if (arg_count != 3)
1149
1149
Create_func_concat Create_func_concat::s_singleton;
1150
1150
 
1151
1151
Item*
1152
 
Create_func_concat::create_native(Session *session, LEX_STRING name, List<Item> *item_list)
 
1152
Create_func_concat::create_native(Session *session, lex_string_t name, List<Item> *item_list)
1153
1153
{
1154
1154
  int arg_count= item_list ? item_list->size() : 0;
1155
1155
  if (arg_count < 1)
1165
1165
Create_func_concat_ws Create_func_concat_ws::s_singleton;
1166
1166
 
1167
1167
Item*
1168
 
Create_func_concat_ws::create_native(Session *session, LEX_STRING name,
 
1168
Create_func_concat_ws::create_native(Session *session, lex_string_t name,
1169
1169
                                     List<Item> *item_list)
1170
1170
{
1171
1171
  int arg_count= item_list ? item_list->size() : 0;
1202
1202
Create_func_export_set Create_func_export_set::s_singleton;
1203
1203
 
1204
1204
Item*
1205
 
Create_func_export_set::create_native(Session *session, LEX_STRING name, List<Item> *item_list)
 
1205
Create_func_export_set::create_native(Session *session, lex_string_t name, List<Item> *item_list)
1206
1206
{
1207
1207
  switch (item_list ? item_list->size() : 0) 
1208
1208
  {
1240
1240
Create_func_field Create_func_field::s_singleton;
1241
1241
 
1242
1242
Item*
1243
 
Create_func_field::create_native(Session *session, LEX_STRING name,
 
1243
Create_func_field::create_native(Session *session, lex_string_t name,
1244
1244
                                 List<Item> *item_list)
1245
1245
{
1246
1246
  int arg_count= item_list ? item_list->size() : 0;
1283
1283
Create_func_from_unixtime Create_func_from_unixtime::s_singleton;
1284
1284
 
1285
1285
Item*
1286
 
Create_func_from_unixtime::create_native(Session *session, LEX_STRING name,
 
1286
Create_func_from_unixtime::create_native(Session *session, lex_string_t name,
1287
1287
                                         List<Item> *item_list)
1288
1288
{
1289
1289
  switch (item_list ? item_list->size() : 0) 
1310
1310
Create_func_greatest Create_func_greatest::s_singleton;
1311
1311
 
1312
1312
Item*
1313
 
Create_func_greatest::create_native(Session *session, LEX_STRING name,
 
1313
Create_func_greatest::create_native(Session *session, lex_string_t name,
1314
1314
                                    List<Item> *item_list)
1315
1315
{
1316
1316
  int arg_count= item_list ? item_list->size() : 0;
1362
1362
Create_func_last_insert_id Create_func_last_insert_id::s_singleton;
1363
1363
 
1364
1364
Item*
1365
 
Create_func_last_insert_id::create_native(Session *session, LEX_STRING name,
 
1365
Create_func_last_insert_id::create_native(Session *session, lex_string_t name,
1366
1366
                                          List<Item> *item_list)
1367
1367
{
1368
1368
  int arg_count= item_list ? item_list->size() : 0;
1395
1395
Create_func_least Create_func_least::s_singleton;
1396
1396
 
1397
1397
Item*
1398
 
Create_func_least::create_native(Session *session, LEX_STRING name,
 
1398
Create_func_least::create_native(Session *session, lex_string_t name,
1399
1399
                                 List<Item> *item_list)
1400
1400
{
1401
1401
  int arg_count= item_list ? item_list->size() : 0;
1420
1420
Create_func_locate Create_func_locate::s_singleton;
1421
1421
 
1422
1422
Item*
1423
 
Create_func_locate::create_native(Session *session, LEX_STRING name,
 
1423
Create_func_locate::create_native(Session *session, lex_string_t name,
1424
1424
                                  List<Item> *item_list)
1425
1425
{
1426
1426
  int arg_count= item_list ? item_list->size() : 0;
1450
1450
Create_func_make_set Create_func_make_set::s_singleton;
1451
1451
 
1452
1452
Item*
1453
 
Create_func_make_set::create_native(Session *session_arg, LEX_STRING name,
 
1453
Create_func_make_set::create_native(Session *session_arg, lex_string_t name,
1454
1454
                                    List<Item> *item_list)
1455
1455
{
1456
1456
  int arg_count= item_list ? item_list->size() : 0;
1511
1511
 
1512
1512
Create_func_round Create_func_round::s_singleton;
1513
1513
 
1514
 
Item* Create_func_round::create_native(Session *session, LEX_STRING name, List<Item> *item_list)
 
1514
Item* Create_func_round::create_native(Session *session, lex_string_t name, List<Item> *item_list)
1515
1515
{
1516
1516
  switch (item_list ? item_list->size() : 0) 
1517
1517
  {
1562
1562
Create_func_unix_timestamp Create_func_unix_timestamp::s_singleton;
1563
1563
 
1564
1564
Item*
1565
 
Create_func_unix_timestamp::create_native(Session *session, LEX_STRING name,
 
1565
Create_func_unix_timestamp::create_native(Session *session, lex_string_t name,
1566
1566
                                          List<Item> *item_list)
1567
1567
{
1568
1568
  switch (item_list ? item_list->size() : 0) 
1580
1580
 
1581
1581
struct Native_func_registry
1582
1582
{
1583
 
  LEX_STRING name;
 
1583
  lex_string_t name;
1584
1584
  Create_func *builder;
1585
1585
};
1586
1586
 
1665
1665
    FunctionContainer::getMutableMap()[string(func->name.str, func->name.length)]= func->builder;
1666
1666
}
1667
1667
 
1668
 
Create_func* find_native_function_builder(LEX_STRING name)
 
1668
Create_func* find_native_function_builder(lex_string_t name)
1669
1669
{
1670
1670
  return find_ptr2(FunctionContainer::getMap(), string(name.str, name.length));
1671
1671
}