Skip to content
Permalink
Browse files
cleanup: move Virtual_column_info::print out of Virtual_column_info
  • Loading branch information
vuvova committed Jul 5, 2017
1 parent 2bf017c commit 03c52e9
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
@@ -681,7 +681,7 @@ class Virtual_column_info: public Sql_alloc
in_partitioning_expr= TRUE;
}
inline bool is_equal(const Virtual_column_info* vcol) const;
void print(String*);
inline void print(String*);
};

class Field: public Value_source
@@ -10715,14 +10715,3 @@ void Item::register_in(THD *thd)
next= thd->free_list;
thd->free_list= this;
}

void Virtual_column_info::print(String *str)
{
expr->print_parenthesised(str,
(enum_query_type)(QT_ITEM_ORIGINAL_FUNC_NULLIF |
QT_ITEM_IDENT_SKIP_DB_NAMES |
QT_ITEM_IDENT_SKIP_TABLE_NAMES |
QT_NO_DATA_EXPANSION |
QT_TO_SYSTEM_CHARSET),
LOWEST_PRECEDENCE);
}
@@ -1292,6 +1292,23 @@ class Item: public Value_source,
virtual enum precedence precedence() const { return DEFAULT_PRECEDENCE; }
void print_parenthesised(String *str, enum_query_type query_type,
enum precedence parent_prec);
/**
This helper is used to print expressions as a part of a table definition,
in particular for
- generated columns
- check constraints
- default value expressions
*/
void print_for_table_def(String *str)
{
print_parenthesised(str,
(enum_query_type)(QT_ITEM_ORIGINAL_FUNC_NULLIF |
QT_ITEM_IDENT_SKIP_DB_NAMES |
QT_ITEM_IDENT_SKIP_TABLE_NAMES |
QT_NO_DATA_EXPANSION |
QT_TO_SYSTEM_CHARSET),
LOWEST_PRECEDENCE);
}
virtual void print(String *str, enum_query_type query_type);
void print_item_w_name(String *str, enum_query_type query_type);
void print_value(String *str);
@@ -5977,4 +5994,9 @@ inline bool Virtual_column_info::is_equal(const Virtual_column_info* vcol) const
&& expr->eq(vcol->expr, true);
}

inline void Virtual_column_info::print(String* str)
{
expr->print_for_table_def(str);
}

#endif /* SQL_ITEM_INCLUDED */

0 comments on commit 03c52e9

Please sign in to comment.