~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/utility_functions/schema.cc

  • Committer: Brian Aker
  • Date: 2010-10-21 20:21:18 UTC
  • mfrom: (1864.3.5 catalogs)
  • mto: This revision was merged to the branch mainline in revision 1867.
  • Revision ID: brian@tangent.org-20101021202118-ld4u8ug30h7dsaxm
Merge of all refactor for functions into single plugin, this includes a new
catalog() function.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
#include "config.h"
22
22
 
23
23
#include <drizzled/session.h>
24
 
#include <drizzled/function/str/strfunc.h>
25
 
 
26
 
using namespace drizzled;
27
 
 
28
 
class DatabaseFunction :public Item_str_func
29
 
{
30
 
public:
31
 
  DatabaseFunction() :Item_str_func() {}
32
 
  String *val_str(String *);
33
 
  void fix_length_and_dec()
34
 
  {
35
 
    max_length= MAX_FIELD_NAME * system_charset_info->mbmaxlen;
36
 
    maybe_null=1;
37
 
  }
38
 
  const char *func_name() const { return "database"; }
39
 
  const char *fully_qualified_func_name() const { return "database()"; }
40
 
};
41
 
 
42
 
String *DatabaseFunction::val_str(String *str)
 
24
#include "plugin/utility_functions/functions.h"
 
25
 
 
26
namespace drizzled
 
27
{
 
28
 
 
29
namespace utility_functions
 
30
{
 
31
 
 
32
String *Schema::val_str(String *str)
43
33
{
44
34
  assert(fixed == 1);
45
35
  Session *session= current_session;
49
39
    return 0;
50
40
  }
51
41
  else
 
42
  {
52
43
    str->copy(session->db.c_str(), session->db.length(), system_charset_info);
 
44
  }
53
45
  return str;
54
46
}
55
47
 
56
 
plugin::Create_function<DatabaseFunction> *database_function= NULL;
57
 
 
58
 
static int initialize(drizzled::module::Context &context)
59
 
{
60
 
  database_function= new plugin::Create_function<DatabaseFunction>("database");
61
 
  context.add(database_function);
62
 
  return 0;
63
 
}
64
 
 
65
 
DRIZZLE_DECLARE_PLUGIN
66
 
{
67
 
  DRIZZLE_VERSION_ID,
68
 
  "database_function",
69
 
  "1.0",
70
 
  "Stewart Smith",
71
 
  "returns the current database",
72
 
  PLUGIN_LICENSE_GPL,
73
 
  initialize, /* Plugin Init */
74
 
  NULL,   /* system variables */
75
 
  NULL    /* config options */
76
 
}
77
 
DRIZZLE_DECLARE_PLUGIN_END;
 
48
} /* namespace utility_functions */
 
49
} /* namespace drizzled */