00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <config.h>
00021 #include <drizzled/function/str/strfunc.h>
00022 #include <drizzled/plugin/function.h>
00023 #include <drizzled/version.h>
00024
00025 using namespace std;
00026 using namespace drizzled;
00027
00028 class VersionFunction :public Item_str_func
00029 {
00030 public:
00031 String *val_str(String *str);
00032 VersionFunction() :Item_str_func() {}
00033
00034 const char *func_name() const
00035 {
00036 return "version";
00037 }
00038
00039 bool check_argument_count(int n)
00040 {
00041 return (n==0);
00042 }
00043
00044 void fix_length_and_dec() {}
00045 };
00046
00047 String *VersionFunction::val_str(String *str)
00048 {
00049 str->set(::drizzled::version().c_str(), ::drizzled::version().size(),
00050 system_charset_info);
00051 return str;
00052 }
00053
00054 plugin::Create_function<VersionFunction> *versionudf= NULL;
00055
00056 static int initialize(module::Context &context)
00057 {
00058 versionudf= new plugin::Create_function<VersionFunction>("version");
00059 context.add(versionudf);
00060 return 0;
00061 }
00062
00063 DRIZZLE_PLUGIN(initialize, NULL, NULL);