00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include <drizzled/function/func.h>
00023 #include <drizzled/lex_string.h>
00024
00025 namespace drizzled
00026 {
00027
00028 class sys_var;
00029
00030 Item *get_system_var(Session *session, sql_var_t var_type, LEX_STRING name,
00031 LEX_STRING component);
00032
00033
00034
00035 class Item_func_get_system_var :public Item_func
00036 {
00037 sys_var *var;
00038 sql_var_t var_type;
00039 LEX_STRING component;
00040
00041 public:
00042 Item_func_get_system_var(sys_var *var_arg, sql_var_t var_type_arg,
00043 LEX_STRING *component_arg, const char *name_arg,
00044 size_t name_len_arg);
00045 bool fix_fields(Session *session, Item **ref);
00046
00047
00048
00049
00050 double val_real() { assert(0); return 0.0; }
00051 int64_t val_int() { assert(0); return 0; }
00052 String* val_str(String*) { assert(0); return 0; }
00053 void fix_length_and_dec() { assert(0); }
00054
00055 const char *func_name() const { return "get_system_var"; }
00056 };
00057
00058
00059 }
00060