summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
authorunknown <hf@deer.mysql.r18.ru>2003-01-21 20:20:46 +0400
committerunknown <hf@deer.mysql.r18.ru>2003-01-21 20:20:46 +0400
commitdceabff13192f614efd5b688d81e73e4aeeb96b2 (patch)
treec9e7b6941dd01018f2f3c6769a50be4c05a7837e /sql/item.h
parent94a6892eed05367e8c8490100d941ec07c736a46 (diff)
downloadmariadb-git-dceabff13192f614efd5b688d81e73e4aeeb96b2.tar.gz
SCRUM
Default in UPDATE & SELECT sql/field.h: brackets was omitted sql/item.cc: now only DEFAULT_ITEM sql/item.h: Item_default class deletion sql/sql_yacc.yy: changes in syntax for DEFAULT in UPDATE & SELECT sql/table.cc: default_values member removed sql/table.h: member changed with inline function
Diffstat (limited to 'sql/item.h')
-rw-r--r--sql/item.h44
1 files changed, 21 insertions, 23 deletions
diff --git a/sql/item.h b/sql/item.h
index a4bbb7560b3..ec28cfe64cf 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -36,8 +36,8 @@ public:
COPY_STR_ITEM, FIELD_AVG_ITEM, DEFAULT_ITEM,
PROC_ITEM,COND_ITEM, REF_ITEM, FIELD_STD_ITEM,
FIELD_VARIANCE_ITEM, CONST_ITEM,
- SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM,
- DEFAULT_VALUE_ITEM};
+ SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM};
+
enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE };
String str_value; /* used to store value */
@@ -369,26 +369,6 @@ public:
void print(String *str);
};
-
-/* For INSERT ... VALUES (DEFAULT) */
-
-class Item_default :public Item
-{
-public:
- Item_default() { name= (char*) "DEFAULT"; }
- enum Type type() const { return DEFAULT_ITEM; }
- int save_in_field(Field *field, bool no_conversions)
- {
- field->set_default();
- return 0;
- }
- virtual double val() { return 0.0; }
- virtual longlong val_int() { return 0; }
- virtual String *val_str(String *str) { return 0; }
- bool basic_const_item() const { return 1; }
-};
-
-
/* for show tables */
class Item_datetime :public Item_string
@@ -669,9 +649,11 @@ class Item_default_value : public Item_field
{
public:
Item *arg;
+ Item_default_value() :
+ Item_field((const char *)NULL, (const char *)NULL, (const char *)NULL), arg(NULL) {}
Item_default_value(Item *a) :
Item_field((const char *)NULL, (const char *)NULL, (const char *)NULL), arg(a) {}
- enum Type type() const { return DEFAULT_VALUE_ITEM; }
+ enum Type type() const { return DEFAULT_ITEM; }
bool eq(const Item *item, bool binary_cmp) const;
bool fix_fields(THD *, struct st_table_list *, Item **);
bool check_loop(uint id)
@@ -680,6 +662,22 @@ public:
}
void set_outer_resolving() { arg->set_outer_resolving(); }
void print(String *str);
+ virtual bool basic_const_item() const { return true; }
+ int save_in_field(Field *field, bool no_conversions)
+ {
+ if (!arg)
+ {
+ field->set_default();
+ return 0;
+ }
+ return Item_field::save_in_field(field, no_conversions);
+ }
+ table_map used_tables() const
+ {
+ if (!arg)
+ return (table_map) 0L;
+ return Item_field::used_tables();
+ }
};
class Item_cache: public Item