24#ifndef DD__COLUMN_INCLUDED
25#define DD__COLUMN_INCLUDED
43class Column_type_element;
190 virtual std::optional<gis::srid_t>
srs_id()
const = 0;
Abstract base class for tables and views.
Definition: abstract_table.h:69
Definition: collection.h:44
Definition: column_impl.h:62
Definition: column_type_element.h:44
virtual void set_datetime_precision_null(bool is_null)=0
virtual void set_generation_expression_utf8(const String_type &generation_expression_utf8)=0
virtual void set_default_value_utf8_null(bool is_null)=0
virtual void set_zerofill(bool zerofill)=0
virtual bool is_default_value_null() const =0
virtual const Properties & options() const =0
virtual enum_column_key column_key() const =0
virtual void set_column_type_utf8(const String_type &column_type_utf8)=0
virtual void set_auto_increment(bool auto_increment)=0
virtual Abstract_table & table()=0
virtual LEX_CSTRING engine_attribute() const =0
virtual void set_engine_attribute(LEX_CSTRING attrs)=0
virtual bool set_options(const String_type &options_raw)=0
virtual void set_char_length(size_t char_length)=0
virtual void set_numeric_scale(uint numeric_scale)=0
virtual void set_srs_id(std::optional< gis::srid_t > srs_id)=0
enum_hidden_type
Definition: column.h:96
@ HT_HIDDEN_SQL
The column is visible to the server, but hidden from the user.
@ HT_HIDDEN_SE
The column is completely invisible to the server.
@ HT_VISIBLE
The column is visible (a normal column)
@ HT_HIDDEN_USER
User table column marked as INVISIBLE by using the column visibility attribute.
virtual void set_numeric_scale_null(bool is_null)=0
virtual void set_has_no_default(bool has_explicit_default)=0
virtual void set_is_explicit_collation(bool is_explicit_collation)=0
virtual void set_default_value(const String_type &default_value)=0
virtual void set_default_option(const String_type &default_option)=0
virtual bool is_nullable() const =0
virtual void set_datetime_precision(uint datetime_precision)=0
virtual void set_update_option(const String_type &update_option)=0
virtual Object_id collation_id() const =0
Collection< Column_type_element * > Column_type_element_collection
Definition: column.h:90
virtual void set_secondary_engine_attribute(LEX_CSTRING attrs)=0
virtual const String_type & default_option() const =0
virtual size_t char_length() const =0
virtual bool is_numeric_scale_null() const =0
virtual void set_comment(const String_type &comment)=0
virtual void set_virtual(bool is_virtual)=0
enum_column_key
Definition: column.h:94
@ CK_MULTIPLE
Definition: column.h:94
@ CK_UNIQUE
Definition: column.h:94
@ CK_PRIMARY
Definition: column.h:94
@ CK_NONE
Definition: column.h:94
virtual void set_generation_expression(const String_type &generation_expression)=0
virtual std::optional< gis::srid_t > srs_id() const =0
tables::Columns DD_table
Definition: column.h:92
virtual const String_type & update_option() const =0
virtual const String_type & default_value() const =0
virtual void set_collation_id(Object_id collation_id)=0
~Column() override=default
virtual bool is_explicit_collation() const =0
virtual const String_type & generation_expression() const =0
virtual bool set_se_private_data(const String_type &se_private_data_raw)=0
virtual const Abstract_table & table() const =0
virtual uint datetime_precision() const =0
virtual void set_column_key(enum_column_key column_key)=0
virtual void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const =0
Converts *this into json.
virtual bool is_generation_expression_null() const =0
virtual uint numeric_precision() const =0
virtual Properties & options()=0
virtual const String_type & default_value_utf8() const =0
virtual Properties & se_private_data()=0
virtual const String_type & generation_expression_utf8() const =0
virtual void set_numeric_precision(uint numeric_precision)=0
virtual const Column_type_element_collection & elements() const =0
virtual const Properties & se_private_data() const =0
virtual enum_column_types type() const =0
virtual void set_default_value_null(bool is_null)=0
virtual bool is_array() const =0
virtual void set_type(enum_column_types type)=0
virtual LEX_CSTRING secondary_engine_attribute() const =0
virtual uint numeric_scale() const =0
virtual void set_default_value_utf8(const String_type &default_value_utf8)=0
Column_impl Impl
Definition: column.h:91
virtual uint ordinal_position() const =0
virtual const String_type & column_type_utf8() const =0
virtual bool is_virtual() const =0
virtual void set_unsigned(bool unsigned_flag)=0
virtual void set_nullable(bool nullable)=0
virtual bool has_no_default() const =0
virtual bool is_default_value_utf8_null() const =0
virtual bool is_zerofill() const =0
virtual bool is_auto_increment() const =0
virtual bool is_unsigned() const =0
virtual const String_type & comment() const =0
virtual bool is_generation_expression_utf8_null() const =0
virtual enum_hidden_type hidden() const =0
virtual size_t elements_count() const =0
virtual Column_type_element * add_element()=0
virtual bool is_datetime_precision_null() const =0
virtual void set_hidden(enum_hidden_type hidden)=0
bool is_se_hidden() const
Definition: column.h:293
virtual bool deserialize(Sdi_rcontext *rctx, const RJ_Value &val)=0
Re-establishes the state of *this by reading sdi information from the rapidjson DOM subobject provide...
virtual bool set_se_private_data(const Properties &se_private_data)=0
Base class for dictionary objects which has single column integer primary key.
Definition: entity_object.h:48
The Properties class defines an interface for storing key=value pairs, where both key and value may b...
Definition: properties.h:74
Opaque context which keeps reusable resoureces needed during deserialization.
Definition: sdi.cc:231
Opaque context which keeps reusable resources needed during serialization.
Definition: sdi.cc:129
std::vector< Field * > Columns
Definition: dict0dd.h:787
Some integer typedefs for easier portability.
constexpr value_type zerofill
Definition: classic_protocol_constants.h:274
constexpr value_type auto_increment
Definition: classic_protocol_constants.h:277
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
RJ_Writer Sdi_writer
Alias for the rapidjson Writer type to use in serialization.
Definition: sdi_fwd.h:64
unsigned long long Object_id
Definition: object_id.h:31
enum_column_types
Definition: column.h:53
rapidjson::GenericValue< RJ_Encoding, RJ_Allocator > RJ_Value
Definition: sdi_fwd.h:49
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:51
This header provides Rapidjson Type Aliases.
Definition: mysql_lex_string.h:40