mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
System Versioning 1.0 pre5 [closes #407]
Merge branch '10.3' into trunk Both field_visibility and VERS_HIDDEN_FLAG exist independently. TODO: VERS_HIDDEN_FLAG should be replaced with SYSTEM_INVISIBLE (or COMPLETELY_INVISIBLE?).
This commit is contained in:
10
sql/field.h
10
sql/field.h
@ -682,6 +682,8 @@ public:
|
||||
{ DBUG_ASSERT(0); return false; }
|
||||
|
||||
uchar *ptr; // Position to field in record
|
||||
|
||||
field_visible_type field_visibility;
|
||||
/**
|
||||
Byte where the @c NULL bit is stored inside a record. If this Field is a
|
||||
@c NOT @c NULL field, this member is @c NULL.
|
||||
@ -1176,6 +1178,8 @@ public:
|
||||
{ if (null_ptr) null_ptr[row_offset]&= (uchar) ~null_bit; }
|
||||
inline bool maybe_null(void) const
|
||||
{ return null_ptr != 0 || table->maybe_null; }
|
||||
// Set to NULL on LOAD DATA or LOAD XML
|
||||
virtual bool load_data_set_null(THD *thd);
|
||||
|
||||
/* @return true if this field is NULL-able (even if temporarily) */
|
||||
inline bool real_maybe_null(void) const { return null_ptr != 0; }
|
||||
@ -2538,6 +2542,7 @@ public:
|
||||
{
|
||||
return get_equal_const_item_datetime(thd, ctx, const_item);
|
||||
}
|
||||
bool load_data_set_null(THD *thd);
|
||||
uint size_of() const { return sizeof(*this); }
|
||||
};
|
||||
|
||||
@ -3736,6 +3741,7 @@ public:
|
||||
but the underlying blob must still be reset.
|
||||
*/
|
||||
int reset(void) { return Field_blob::reset() || !maybe_null(); }
|
||||
bool load_data_set_null(THD *thd);
|
||||
|
||||
geometry_type get_geometry_type() { return geom_type; };
|
||||
static geometry_type geometry_type_merge(geometry_type, geometry_type);
|
||||
@ -4136,6 +4142,7 @@ public:
|
||||
max number of characters.
|
||||
*/
|
||||
ulonglong length;
|
||||
field_visible_type field_visibility;
|
||||
/*
|
||||
The value of `length' as set by parser: is the number of characters
|
||||
for most of the types, or of bytes for BLOBs or numeric types.
|
||||
@ -4168,7 +4175,7 @@ public:
|
||||
:Type_handler_hybrid_field_type(&type_handler_null),
|
||||
compression_method_ptr(0),
|
||||
comment(null_clex_str),
|
||||
on_update(NULL), length(0), decimals(0),
|
||||
on_update(NULL), length(0),field_visibility(NOT_INVISIBLE), decimals(0),
|
||||
flags(0), pack_length(0), key_length(0), unireg_check(Field::NONE),
|
||||
interval(0), charset(&my_charset_bin),
|
||||
srid(0), geom_type(Field::GEOM_GEOMETRY),
|
||||
@ -4647,6 +4654,7 @@ bool check_expression(Virtual_column_info *vcol, LEX_CSTRING *name,
|
||||
#define f_no_default(x) ((x) & FIELDFLAG_NO_DEFAULT)
|
||||
#define f_bit_as_char(x) ((x) & FIELDFLAG_TREAT_BIT_AS_CHAR)
|
||||
#define f_is_hex_escape(x) ((x) & FIELDFLAG_HEX_ESCAPE)
|
||||
#define f_visibility(x) (static_cast<field_visible_type> ((x) & MAX_BITS_INVISIBLE))
|
||||
|
||||
inline
|
||||
ulonglong TABLE::vers_end_id() const
|
||||
|
Reference in New Issue
Block a user