diff options
author | Alexander Barkov <bar@mariadb.com> | 2019-09-17 08:00:37 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2019-09-17 08:00:37 +0400 |
commit | 74551b2b6fc6a3db367d012eb4a31453f8215d6f (patch) | |
tree | e46fa96fe0370dbdbcda5a9005f6f8fee7ffd75b | |
parent | 9b1866fd847390a45ad977391f8b2e2c8dab9f16 (diff) | |
download | mariadb-git-74551b2b6fc6a3db367d012eb4a31453f8215d6f.tar.gz |
Cleanup: removing Type_handler members m_name_xxx
Hiding the definitions inside Type_handler_xxx::name().
This is needed to avoid exporting members with MYSQL_PLUGIN_IMPORT,
which would be needed to compile data type plugins on Windows.
-rw-r--r-- | sql/sql_type.cc | 207 | ||||
-rw-r--r-- | sql/sql_type.h | 84 | ||||
-rw-r--r-- | sql/sql_type_geom.cc | 64 | ||||
-rw-r--r-- | sql/sql_type_geom.h | 24 |
4 files changed, 249 insertions, 130 deletions
diff --git a/sql/sql_type.cc b/sql/sql_type.cc index c11d632dd51..bc401fbc9a0 100644 --- a/sql/sql_type.cc +++ b/sql/sql_type.cc @@ -1395,48 +1395,173 @@ uint Type_handler_time::m_hires_bytes[MAX_DATETIME_PRECISION + 1]= { 3, 4, 4, 5, 5, 5, 6 }; /***************************************************************************/ -const Name Type_handler_row::m_name_row(STRING_WITH_LEN("row")); - -const Name Type_handler_null::m_name_null(STRING_WITH_LEN("null")); - -const Name - Type_handler_string::m_name_char(STRING_WITH_LEN("char")), - Type_handler_var_string::m_name_var_string(STRING_WITH_LEN("varchar")), - Type_handler_varchar::m_name_varchar(STRING_WITH_LEN("varchar")), - Type_handler_hex_hybrid::m_name_hex_hybrid(STRING_WITH_LEN("hex_hybrid")), - Type_handler_tiny_blob::m_name_tinyblob(STRING_WITH_LEN("tinyblob")), - Type_handler_medium_blob::m_name_mediumblob(STRING_WITH_LEN("mediumblob")), - Type_handler_long_blob::m_name_longblob(STRING_WITH_LEN("longblob")), - Type_handler_blob::m_name_blob(STRING_WITH_LEN("blob")); - -const Name - Type_handler_enum::m_name_enum(STRING_WITH_LEN("enum")), - Type_handler_set::m_name_set(STRING_WITH_LEN("set")); - -const Name - Type_handler_bool::m_name_bool(STRING_WITH_LEN("boolean")), - Type_handler_tiny::m_name_tiny(STRING_WITH_LEN("tinyint")), - Type_handler_short::m_name_short(STRING_WITH_LEN("smallint")), - Type_handler_long::m_name_int(STRING_WITH_LEN("int")), - Type_handler_longlong::m_name_longlong(STRING_WITH_LEN("bigint")), - Type_handler_int24::m_name_mediumint(STRING_WITH_LEN("mediumint")), - Type_handler_year::m_name_year(STRING_WITH_LEN("year")), - Type_handler_bit::m_name_bit(STRING_WITH_LEN("bit")); - -const Name - Type_handler_float::m_name_float(STRING_WITH_LEN("float")), - Type_handler_double::m_name_double(STRING_WITH_LEN("double")); - -const Name - Type_handler_olddecimal::m_name_decimal(STRING_WITH_LEN("decimal")), - Type_handler_newdecimal::m_name_decimal(STRING_WITH_LEN("decimal")); - -const Name - Type_handler_time_common::m_name_time(STRING_WITH_LEN("time")), - Type_handler_date_common::m_name_date(STRING_WITH_LEN("date")), - Type_handler_datetime_common::m_name_datetime(STRING_WITH_LEN("datetime")), - Type_handler_timestamp_common::m_name_timestamp(STRING_WITH_LEN("timestamp")); +const Name Type_handler_row::name() const +{ + static Name tmp(STRING_WITH_LEN("row")); + return tmp; +} + +const Name Type_handler_null::name() const +{ + static Name tmp(STRING_WITH_LEN("null")); + return tmp; +} + +const Name Type_handler_string::name() const +{ + static Name tmp(STRING_WITH_LEN("char")); + return tmp; +} + +const Name Type_handler_var_string::name() const +{ + static Name tmp(STRING_WITH_LEN("varchar")); + return tmp; +} + +const Name Type_handler_varchar::name() const +{ + static Name tmp(STRING_WITH_LEN("varchar")); + return tmp; +} + +const Name Type_handler_hex_hybrid::name() const +{ + static Name tmp(STRING_WITH_LEN("hex_hybrid")); + return tmp; +} + +const Name Type_handler_tiny_blob::name() const +{ + static Name tmp(STRING_WITH_LEN("tinyblob")); + return tmp; +} + +const Name Type_handler_medium_blob::name() const +{ + static Name tmp(STRING_WITH_LEN("mediumblob")); + return tmp; +} + +const Name Type_handler_long_blob::name() const +{ + static Name tmp(STRING_WITH_LEN("longblob")); + return tmp; +} + +const Name Type_handler_blob::name() const +{ + static Name tmp(STRING_WITH_LEN("blob")); + return tmp; +} + +const Name Type_handler_enum::name() const +{ + static Name tmp(STRING_WITH_LEN("enum")); + return tmp; +} + +const Name Type_handler_set::name() const +{ + static Name tmp(STRING_WITH_LEN("set")); + return tmp; +} + +const Name Type_handler_bool::name() const +{ + static Name tmp(STRING_WITH_LEN("boolean")); + return tmp; +} + +const Name Type_handler_tiny::name() const +{ + static Name tmp(STRING_WITH_LEN("tinyint")); + return tmp; +} +const Name Type_handler_short::name() const +{ + static Name tmp(STRING_WITH_LEN("smallint")); + return tmp; +} + +const Name Type_handler_long::name() const +{ + static Name tmp(STRING_WITH_LEN("int")); + return tmp; +} + +const Name Type_handler_longlong::name() const +{ + static Name tmp(STRING_WITH_LEN("bigint")); + return tmp; +} + +const Name Type_handler_int24::name() const +{ + static Name tmp(STRING_WITH_LEN("mediumint")); + return tmp; +} + +const Name Type_handler_year::name() const +{ + static Name tmp(STRING_WITH_LEN("year")); + return tmp; +} + +const Name Type_handler_bit::name() const +{ + static Name tmp(STRING_WITH_LEN("bit")); + return tmp; +} + +const Name Type_handler_float::name() const +{ + static Name tmp(STRING_WITH_LEN("float")); + return tmp; +} + +const Name Type_handler_double::name() const +{ + static Name tmp(STRING_WITH_LEN("double")); + return tmp; +} + +const Name Type_handler_olddecimal::name() const +{ + static Name tmp(STRING_WITH_LEN("decimal")); + return tmp; +} + +const Name Type_handler_newdecimal::name() const +{ + static Name tmp(STRING_WITH_LEN("decimal")); + return tmp; +} + +const Name Type_handler_time_common::name() const +{ + static Name tmp(STRING_WITH_LEN("time")); + return tmp; +} + +const Name Type_handler_date_common::name() const +{ + static Name tmp(STRING_WITH_LEN("date")); + return tmp; +} + +const Name Type_handler_datetime_common::name() const +{ + static Name tmp(STRING_WITH_LEN("datetime")); + return tmp; +} + +const Name Type_handler_timestamp_common::name() const +{ + static Name tmp(STRING_WITH_LEN("timestamp")); + return tmp; +} const Name Type_handler_utiny::name() const { diff --git a/sql/sql_type.h b/sql/sql_type.h index 3c1babe3d78..dff37959892 100644 --- a/sql/sql_type.h +++ b/sql/sql_type.h @@ -3917,10 +3917,9 @@ public: */ class Type_handler_row: public Type_handler { - static const Name m_name_row; public: virtual ~Type_handler_row() {} - const Name name() const override { return m_name_row; } + const Name name() const override; const Name &default_value() const override; bool validate_implicit_default_value(THD *thd, const Column_definition &def) const @@ -5023,10 +5022,9 @@ public: class Type_handler_tiny: public Type_handler_general_purpose_int { - static const Name m_name_tiny; public: virtual ~Type_handler_tiny() {} - const Name name() const override { return m_name_tiny; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_TINY; } const Type_handler *type_handler_unsigned() const override; const Type_handler *type_handler_signed() const override; @@ -5083,10 +5081,9 @@ public: class Type_handler_short: public Type_handler_general_purpose_int { - static const Name m_name_short; public: virtual ~Type_handler_short() {} - const Name name() const override { return m_name_short; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_SHORT; } const Type_handler *type_handler_unsigned() const override; const Type_handler *type_handler_signed() const override; @@ -5143,10 +5140,9 @@ public: class Type_handler_long: public Type_handler_general_purpose_int { - static const Name m_name_int; public: virtual ~Type_handler_long() {} - const Name name() const override { return m_name_int; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_LONG; } const Type_handler *type_handler_unsigned() const override; const Type_handler *type_handler_signed() const override; @@ -5203,9 +5199,8 @@ public: class Type_handler_bool: public Type_handler_long { - static const Name m_name_bool; public: - const Name name() const override { return m_name_bool; } + const Name name() const override; bool is_bool_type() const override { return true; } const Type_handler *type_handler_unsigned() const override; const Type_handler *type_handler_signed() const override; @@ -5216,10 +5211,9 @@ public: class Type_handler_longlong: public Type_handler_general_purpose_int { - static const Name m_name_longlong; public: virtual ~Type_handler_longlong() {} - const Name name() const override{ return m_name_longlong; } + const Name name() const override; enum_field_types field_type() const override{ return MYSQL_TYPE_LONGLONG; } const Type_handler *type_handler_unsigned() const override; const Type_handler *type_handler_signed() const override; @@ -5292,10 +5286,9 @@ public: class Type_handler_int24: public Type_handler_general_purpose_int { - static const Name m_name_mediumint; public: virtual ~Type_handler_int24() {} - const Name name() const override { return m_name_mediumint; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_INT24; } const Type_handler *type_handler_unsigned() const override; const Type_handler *type_handler_signed() const override; @@ -5345,10 +5338,9 @@ public: class Type_handler_year: public Type_handler_int_result { - static const Name m_name_year; public: virtual ~Type_handler_year() {} - const Name name() const override { return m_name_year; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_YEAR; } uint flags() const override { return UNSIGNED_FLAG; } protocol_send_type_t protocol_send_type() const override @@ -5401,10 +5393,9 @@ public: class Type_handler_bit: public Type_handler_int_result { - static const Name m_name_bit; public: virtual ~Type_handler_bit() {} - const Name name() const override { return m_name_bit; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_BIT; } uint flags() const override { return UNSIGNED_FLAG; } protocol_send_type_t protocol_send_type() const override @@ -5460,10 +5451,9 @@ public: class Type_handler_float: public Type_handler_real_result { - static const Name m_name_float; public: virtual ~Type_handler_float() {} - const Name name() const override { return m_name_float; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_FLOAT; } protocol_send_type_t protocol_send_type() const override { @@ -5520,10 +5510,9 @@ public: class Type_handler_double: public Type_handler_real_result { - static const Name m_name_double; public: virtual ~Type_handler_double() {} - const Name name() const override { return m_name_double; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_DOUBLE; } protocol_send_type_t protocol_send_type() const override { @@ -5581,10 +5570,9 @@ public: class Type_handler_time_common: public Type_handler_temporal_result { - static const Name m_name_time; public: virtual ~Type_handler_time_common() { } - const Name name() const override { return m_name_time; } + const Name name() const override; const Name &default_value() const override; enum_field_types field_type() const override { return MYSQL_TYPE_TIME; } enum_dynamic_column_type dyncol_type(const Type_all_attributes *attr) @@ -5775,10 +5763,9 @@ public: class Type_handler_date_common: public Type_handler_temporal_with_date { - static const Name m_name_date; public: virtual ~Type_handler_date_common() {} - const Name name() const override { return m_name_date; } + const Name name() const override; const Name &default_value() const override; const Type_handler *type_handler_for_comparison() const override; enum_field_types field_type() const override { return MYSQL_TYPE_DATE; } @@ -5894,10 +5881,9 @@ public: class Type_handler_datetime_common: public Type_handler_temporal_with_date { - static const Name m_name_datetime; public: virtual ~Type_handler_datetime_common() {} - const Name name() const override { return m_name_datetime; } + const Name name() const override; const Name &default_value() const override; const Type_handler *type_handler_for_comparison() const override; enum_field_types field_type() const override @@ -6032,12 +6018,11 @@ public: class Type_handler_timestamp_common: public Type_handler_temporal_with_date { - static const Name m_name_timestamp; protected: bool TIME_to_native(THD *, const MYSQL_TIME *from, Native *to, uint dec) const; public: virtual ~Type_handler_timestamp_common() {} - const Name name() const override { return m_name_timestamp; } + const Name name() const override; const Name &default_value() const override; const Type_handler *type_handler_for_comparison() const override; const Type_handler *type_handler_for_native_format() const override; @@ -6192,10 +6177,9 @@ public: class Type_handler_olddecimal: public Type_handler_decimal_result { - static const Name m_name_decimal; public: virtual ~Type_handler_olddecimal() {} - const Name name() const override { return m_name_decimal; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_DECIMAL; } uint32 max_display_length_for_field(const Conv_source &src) const override; uint32 calc_pack_length(uint32 length) const override { return length; } @@ -6228,10 +6212,9 @@ public: class Type_handler_newdecimal: public Type_handler_decimal_result { - static const Name m_name_decimal; public: virtual ~Type_handler_newdecimal() {} - const Name name() const override { return m_name_decimal; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_NEWDECIMAL; } uint32 max_display_length_for_field(const Conv_source &src) const override; uint32 calc_pack_length(uint32 length) const override; @@ -6271,10 +6254,9 @@ public: class Type_handler_null: public Type_handler_general_purpose_string { - static const Name m_name_null; public: virtual ~Type_handler_null() {} - const Name name() const override { return m_name_null; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_NULL; } enum_dynamic_column_type dyncol_type(const Type_all_attributes *attr) const override @@ -6339,10 +6321,9 @@ public: class Type_handler_string: public Type_handler_longstr { - static const Name m_name_char; public: virtual ~Type_handler_string() {} - const Name name() const override { return m_name_char; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_STRING; } bool is_param_long_data_type() const override { return true; } uint32 max_display_length_for_field(const Conv_source &src) const override; @@ -6380,10 +6361,9 @@ public: /* Old varchar */ class Type_handler_var_string: public Type_handler_string { - static const Name m_name_var_string; public: virtual ~Type_handler_var_string() {} - const Name name() const override { return m_name_var_string; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_VAR_STRING; } enum_field_types real_field_type() const override { return MYSQL_TYPE_STRING; } enum_field_types traditional_merge_field_type() const override @@ -6412,10 +6392,9 @@ public: class Type_handler_varchar: public Type_handler_longstr { - static const Name m_name_varchar; public: virtual ~Type_handler_varchar() {} - const Name name() const override { return m_name_varchar; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_VARCHAR; } enum_field_types type_code_for_protocol() const override { @@ -6469,10 +6448,9 @@ public: class Type_handler_hex_hybrid: public Type_handler_varchar { - static const Name m_name_hex_hybrid; public: virtual ~Type_handler_hex_hybrid() {} - const Name name() const override { return m_name_hex_hybrid; } + const Name name() const override; const Type_handler *cast_to_int_type_handler() const override; const Type_handler *type_handler_for_system_time() const override; }; @@ -6571,11 +6549,10 @@ public: class Type_handler_tiny_blob: public Type_handler_blob_common { - static const Name m_name_tinyblob; public: virtual ~Type_handler_tiny_blob() {} uint length_bytes() const override { return 1; } - const Name name() const override { return m_name_tinyblob; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_TINY_BLOB; } uint32 max_display_length_for_field(const Conv_source &src) const override; uint32 calc_pack_length(uint32 length) const override; @@ -6590,11 +6567,10 @@ public: class Type_handler_medium_blob: public Type_handler_blob_common { - static const Name m_name_mediumblob; public: virtual ~Type_handler_medium_blob() {} uint length_bytes() const override { return 3; } - const Name name() const override { return m_name_mediumblob; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_MEDIUM_BLOB; } uint32 max_display_length_for_field(const Conv_source &src) const override; uint32 calc_pack_length(uint32 length) const override; @@ -6609,11 +6585,10 @@ public: class Type_handler_long_blob: public Type_handler_blob_common { - static const Name m_name_longblob; public: virtual ~Type_handler_long_blob() {} uint length_bytes() const override { return 4; } - const Name name() const override { return m_name_longblob; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_LONG_BLOB; } uint32 max_display_length_for_field(const Conv_source &src) const override; uint32 calc_pack_length(uint32 length) const override; @@ -6630,11 +6605,10 @@ public: class Type_handler_blob: public Type_handler_blob_common { - static const Name m_name_blob; public: virtual ~Type_handler_blob() {} uint length_bytes() const override { return 2; } - const Name name() const override { return m_name_blob; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_BLOB; } uint32 max_display_length_for_field(const Conv_source &src) const override; uint32 calc_pack_length(uint32 length) const override; @@ -6707,10 +6681,9 @@ public: class Type_handler_enum: public Type_handler_typelib { - static const Name m_name_enum; public: virtual ~Type_handler_enum() {} - const Name name() const override { return m_name_enum; } + const Name name() const override; enum_field_types real_field_type() const override { return MYSQL_TYPE_ENUM; } enum_field_types traditional_merge_field_type() const override { @@ -6747,10 +6720,9 @@ public: class Type_handler_set: public Type_handler_typelib { - static const Name m_name_set; public: virtual ~Type_handler_set() {} - const Name name() const override { return m_name_set; } + const Name name() const override; enum_field_types real_field_type() const override { return MYSQL_TYPE_SET; } enum_field_types traditional_merge_field_type() const override { diff --git a/sql/sql_type_geom.cc b/sql/sql_type_geom.cc index c5a4626c58e..49b0848cf5e 100644 --- a/sql/sql_type_geom.cc +++ b/sql/sql_type_geom.cc @@ -23,23 +23,53 @@ #include "sql_type_geom.h" #include "item_geofunc.h" -const Name - Type_handler_geometry:: - m_name_geometry(STRING_WITH_LEN("geometry")), - Type_handler_point:: - m_name_point(STRING_WITH_LEN("point")), - Type_handler_linestring:: - m_name_linestring(STRING_WITH_LEN("linestring")), - Type_handler_polygon:: - m_name_polygon(STRING_WITH_LEN("polygon")), - Type_handler_multipoint:: - m_name_multipoint(STRING_WITH_LEN("multipoint")), - Type_handler_multilinestring:: - m_name_multilinestring(STRING_WITH_LEN("multilinestring")), - Type_handler_multipolygon:: - m_name_multipolygon(STRING_WITH_LEN("multipolygon")), - Type_handler_geometrycollection:: - m_name_geometrycollection(STRING_WITH_LEN("geometrycollection")); +const Name Type_handler_geometry::name() const +{ + static const Name tmp(STRING_WITH_LEN("geometry")); + return tmp; +} + +const Name Type_handler_point::name() const +{ + static const Name tmp(STRING_WITH_LEN("point")); + return tmp; +} + +const Name Type_handler_linestring::name() const +{ + static const Name tmp(STRING_WITH_LEN("linestring")); + return tmp; +} + +const Name Type_handler_polygon::name() const +{ + static const Name tmp(STRING_WITH_LEN("polygon")); + return tmp; +} + +const Name Type_handler_multipoint::name() const +{ + static const Name tmp(STRING_WITH_LEN("multipoint")); + return tmp; +} + +const Name Type_handler_multilinestring::name() const +{ + static const Name tmp(STRING_WITH_LEN("multilinestring")); + return tmp; +} + +const Name Type_handler_multipolygon::name() const +{ + static const Name tmp(STRING_WITH_LEN("multipolygon")); + return tmp; +} + +const Name Type_handler_geometrycollection::name() const +{ + static const Name tmp(STRING_WITH_LEN("geometrycollection")); + return tmp; +} Type_handler_geometry type_handler_geometry; diff --git a/sql/sql_type_geom.h b/sql/sql_type_geom.h index 1c8fb097808..6f87a7312cd 100644 --- a/sql/sql_type_geom.h +++ b/sql/sql_type_geom.h @@ -27,7 +27,6 @@ #ifdef HAVE_SPATIAL class Type_handler_geometry: public Type_handler_string_result { - static const Name m_name_geometry; public: enum geometry_types { @@ -42,7 +41,7 @@ public: static const Type_handler_geometry *type_handler_geom_by_type(uint type); public: virtual ~Type_handler_geometry() {} - const Name name() const override { return m_name_geometry; } + const Name name() const override; enum_field_types field_type() const override { return MYSQL_TYPE_GEOMETRY; } bool is_param_long_data_type() const override { return true; } uint32 max_display_length_for_field(const Conv_source &src) const override; @@ -172,12 +171,11 @@ public: class Type_handler_point: public Type_handler_geometry { - static const Name m_name_point; // Binary length of a POINT value: 4 byte SRID + 21 byte WKB POINT static uint octet_length() { return 25; } public: geometry_types geometry_type() const override { return GEOM_POINT; } - const Name name() const override { return m_name_point; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; bool Key_part_spec_init_primary(Key_part_spec *part, const Column_definition &def, @@ -197,60 +195,54 @@ public: class Type_handler_linestring: public Type_handler_geometry { - static const Name m_name_linestring; public: geometry_types geometry_type() const override { return GEOM_LINESTRING; } - const Name name() const override { return m_name_linestring; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; }; class Type_handler_polygon: public Type_handler_geometry { - static const Name m_name_polygon; public: geometry_types geometry_type() const override { return GEOM_POLYGON; } - const Name name() const override { return m_name_polygon; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; }; class Type_handler_multipoint: public Type_handler_geometry { - static const Name m_name_multipoint; public: geometry_types geometry_type() const override { return GEOM_MULTIPOINT; } - const Name name() const override { return m_name_multipoint; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; }; class Type_handler_multilinestring: public Type_handler_geometry { - static const Name m_name_multilinestring; public: geometry_types geometry_type() const override { return GEOM_MULTILINESTRING; } - const Name name() const override { return m_name_multilinestring; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; }; class Type_handler_multipolygon: public Type_handler_geometry { - static const Name m_name_multipolygon; public: geometry_types geometry_type() const override { return GEOM_MULTIPOLYGON; } - const Name name() const override { return m_name_multipolygon; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; }; class Type_handler_geometrycollection: public Type_handler_geometry { - static const Name m_name_geometrycollection; public: geometry_types geometry_type() const override { return GEOM_GEOMETRYCOLLECTION; } - const Name name() const override { return m_name_geometrycollection; } + const Name name() const override; Item *make_constructor_item(THD *thd, List<Item> *args) const override; }; |