MySQL 8.0.40
Source Code Documentation
data0data.h File Reference

SQL data field and tuple. More...

#include "univ.i"
#include "data0type.h"
#include "data0types.h"
#include "dict0types.h"
#include "mem0mem.h"
#include "trx0types.h"
#include "ut0bitset.h"
#include <ostream>
#include "data0data.ic"

Go to the source code of this file.

Classes

struct  multi_value_data
 Structure to hold number of multiple values. More...
 
class  Multi_value_logger
 Class to log the multi-value data and read it from the log. More...
 
struct  dfield_t
 Structure for an SQL data field. More...
 
struct  dtuple_t
 Structure for an SQL data tuple of fields (logical record) More...
 
struct  big_rec_field_t
 A slot for a field in a big rec vector. More...
 
struct  big_rec_t
 Storage format for overflow data in a big record, that is, a clustered index record which needs external storage of data fields. More...
 

Macros

#define DTUPLE_EST_ALLOC(n_fields)    (sizeof(dtuple_t) + (n_fields) * sizeof(dfield_t))
 

Functions

static dtype_tdfield_get_type (const dfield_t *field)
 Gets pointer to the type struct of SQL data field. More...
 
static void * dfield_get_data (const dfield_t *field)
 Gets pointer to the data in a field. More...
 
static void dfield_set_type (dfield_t *field, const dtype_t *type)
 Sets the type struct of SQL data field. More...
 
static uint32_t dfield_get_len (const dfield_t *field)
 Gets length of field data. More...
 
static void dfield_set_len (dfield_t *field, ulint len)
 Sets length in a field. More...
 
static ulint dfield_is_null (const dfield_t *field)
 Determines if a field is SQL NULL. More...
 
static bool dfield_is_ext (const dfield_t *field)
 Determines if a field is externally stored. More...
 
static void dfield_set_ext (dfield_t *field)
 Sets the "external storage" flag. More...
 
static spatial_status_t dfield_get_spatial_status (const dfield_t *field)
 Gets spatial status for "external storage". More...
 
static void dfield_set_spatial_status (dfield_t *field, spatial_status_t spatial_status)
 Sets spatial status for "external storage". More...
 
static void dfield_set_data (dfield_t *field, const void *data, ulint len)
 Sets pointer to the data and length in a field. More...
 
static void dfield_write_mbr (dfield_t *field, const double *mbr)
 Sets pointer to the data and length in a field. More...
 
static void dfield_set_null (dfield_t *field)
 Sets a data field to SQL NULL. More...
 
static void data_write_sql_null (byte *data, ulint len)
 Writes an SQL null field full of zeros. More...
 
static void dfield_copy_data (dfield_t *field1, const dfield_t *field2)
 Copies the data and len fields. More...
 
static void dfield_copy (dfield_t *field1, const dfield_t *field2)
 Copies a data field to another. More...
 
static void dfield_dup (dfield_t *field, mem_heap_t *heap)
 Copies the data pointed to by a data field. More...
 
static void dfield_multi_value_dup (dfield_t *field, mem_heap_t *heap)
 Copies the data pointed to by a data field. More...
 
static bool dfield_is_multi_value (const dfield_t *field)
 Determine if a field is of multi-value type. More...
 
bool dfield_datas_are_binary_equal (const dfield_t *field1, const dfield_t *field2, ulint len)
 Tests if two data fields are equal. More...
 
static bool dfield_data_is_binary_equal (const dfield_t *field, ulint len, const byte *data)
 Tests if dfield data length and content is equal to the given. More...
 
static ulint dtuple_get_n_fields (const dtuple_t *tuple)
 Gets number of fields in a data tuple. More...
 
static ulint dtuple_get_n_v_fields (const dtuple_t *tuple)
 Gets number of virtual fields in a data tuple. More...
 
static dfield_tdtuple_get_nth_field (const dtuple_t *tuple, ulint n)
 Gets nth field of a tuple. More...
 
static dfield_tdtuple_get_nth_v_field (const dtuple_t *tuple, ulint n)
 Gets nth virtual field of a tuple. More...
 
static ulint dtuple_get_info_bits (const dtuple_t *tuple)
 Gets info bits in a data tuple. More...
 
static void dtuple_set_info_bits (dtuple_t *tuple, ulint info_bits)
 Sets info bits in a data tuple. More...
 
static ulint dtuple_get_n_fields_cmp (const dtuple_t *tuple)
 Gets number of fields used in record comparisons. More...
 
static void dtuple_set_n_fields_cmp (dtuple_t *tuple, ulint n_fields_cmp)
 Gets number of fields used in record comparisons. More...
 
static dtuple_tdtuple_create_from_mem (void *buf, ulint buf_size, ulint n_fields, ulint n_v_fields)
 Creates a data tuple from an already allocated chunk of memory. More...
 
static dtuple_tdtuple_create (mem_heap_t *heap, ulint n_fields)
 Creates a data tuple to a memory heap. More...
 
static void dtuple_init_v_fld (const dtuple_t *vrow)
 Initialize the virtual field data in a dtuple_t. More...
 
static void dtuple_dup_v_fld (const dtuple_t *vrow, mem_heap_t *heap)
 Duplicate the virtual field data in a dtuple_t. More...
 
static dtuple_tdtuple_create_with_vcol (mem_heap_t *heap, ulint n_fields, ulint n_v_fields)
 Creates a data tuple with possible virtual columns to a memory heap. More...
 
void dtuple_set_n_fields (dtuple_t *tuple, ulint n_fields)
 Sets number of fields used in a tuple. More...
 
static void dtuple_copy_v_fields (dtuple_t *d_tuple, const dtuple_t *s_tuple)
 Copies a data tuple's virtual fields to another. More...
 
static dtuple_tdtuple_copy (const dtuple_t *tuple, mem_heap_t *heap)
 Copies a data tuple to another. More...
 
static ulint dtuple_get_data_size (const dtuple_t *tuple, ulint comp)
 The following function returns the sum of data lengths of a tuple. More...
 
bool dtuple_coll_eq (const dtuple_t *tuple1, const dtuple_t *tuple2)
 Compare two data tuples. More...
 
static uint64_t dtuple_hash (const dtuple_t *tuple, ulint n_fields, ulint n_bytes, uint64_t hash_value)
 Compute a hash value of a prefix of an index record. More...
 
static void dtuple_set_types_binary (dtuple_t *tuple, ulint n)
 Sets types of fields binary in a tuple. More...
 
static bool dtuple_contains_null (const dtuple_t *tuple)
 Checks if a dtuple contains an SQL null value. More...
 
bool dfield_check_typed (const dfield_t *field)
 Checks that a data field is typed. More...
 
bool dtuple_check_typed (const dtuple_t *tuple)
 Checks that a data tuple is typed. More...
 
bool dtuple_validate (const dtuple_t *tuple)
 Validates the consistency of a tuple which must be complete, i.e, all fields must have been set. More...
 
void dfield_print_also_hex (const dfield_t *dfield)
 Pretty prints a dfield value according to its data type. More...
 
void dtuple_print (FILE *f, const dtuple_t *tuple)
 The following function prints the contents of a tuple. More...
 
void dfield_print (std::ostream &o, const dfield_t *field, ulint n)
 Print the contents of a tuple. More...
 
void dtuple_print (std::ostream &o, const dtuple_t *tuple)
 Print the contents of a tuple. More...
 
std::ostream & operator<< (std::ostream &o, const dtuple_t &tuple)
 Print the contents of a tuple. More...
 
big_rec_tdtuple_convert_big_rec (dict_index_t *index, upd_t *upd, dtuple_t *entry)
 Moves parts of long fields in entry to the big record vector so that the size of tuple drops below the maximum record size allowed in the database. More...
 
void dtuple_convert_back_big_rec (dtuple_t *entry, big_rec_t *vector)
 Puts back to entry the data stored in vector. More...
 
static void dtuple_big_rec_free (big_rec_t *vector)
 Frees the memory in a big rec vector. More...
 
bool is_multi_value_clust_and_sec_equal (const byte *clust_field, uint64_t clust_len, const byte *sec_field, uint64_t sec_len, const dict_col_t *col)
 Compare a multi-value clustered index field with a secondary index field, to see if they are equal. More...
 
std::ostream & operator<< (std::ostream &out, const dfield_t &obj)
 Overloading the global output operator to easily print the given dfield_t object into the given output stream. More...
 
std::ostream & operator<< (std::ostream &out, const big_rec_field_t &obj)
 Overloading the global output operator to easily print the given big_rec_field_t object into the given output stream. More...
 
std::ostream & operator<< (std::ostream &out, const big_rec_t &obj)
 Overloading the global output operator to easily print the given big_rec_t object into the given output stream. More...
 

Variables

constexpr uint32_t DATA_TUPLE_MAGIC_N = 65478679
 Value of dtuple_t::magic_n. More...
 

Detailed Description

SQL data field and tuple.

Created 5/30/1994 Heikki Tuuri

Macro Definition Documentation

◆ DTUPLE_EST_ALLOC

#define DTUPLE_EST_ALLOC (   n_fields)     (sizeof(dtuple_t) + (n_fields) * sizeof(dfield_t))

Function Documentation

◆ data_write_sql_null()

static void data_write_sql_null ( byte data,
ulint  len 
)
inlinestatic

Writes an SQL null field full of zeros.

Parameters
[in]datapointer to a buffer of size len
[in]lenSQL null size in bytes

◆ dfield_check_typed()

bool dfield_check_typed ( const dfield_t field)

Checks that a data field is typed.

Asserts an error if not.

Returns
true if ok in: data field

◆ dfield_copy()

static void dfield_copy ( dfield_t field1,
const dfield_t field2 
)
inlinestatic

Copies a data field to another.

Parameters
[out]field1field to copy to
[in]field2field to copy from

◆ dfield_copy_data()

static void dfield_copy_data ( dfield_t field1,
const dfield_t field2 
)
inlinestatic

Copies the data and len fields.

Parameters
[out]field1field to copy to
[in]field2field to copy from

◆ dfield_data_is_binary_equal()

static bool dfield_data_is_binary_equal ( const dfield_t field,
ulint  len,
const byte data 
)
inlinestatic

Tests if dfield data length and content is equal to the given.

Parameters
[in]fieldField
[in]lenData length or UNIV_SQL_NULL
[in]dataData
Returns
true if equal

◆ dfield_datas_are_binary_equal()

bool dfield_datas_are_binary_equal ( const dfield_t field1,
const dfield_t field2,
ulint  len 
)
inline

Tests if two data fields are equal.

If len==0, tests the data length and content for equality. If len>0, tests the first len bytes of the content for equality.

Parameters
[in]field1first field to compare
[in]field2second field to compare
[in]lenmaximum prefix to compare, or 0 to compare the whole field length. This works only if !multi_val
Returns
true if both fields are NULL or if they are equal

◆ dfield_dup()

static void dfield_dup ( dfield_t field,
mem_heap_t heap 
)
inlinestatic

Copies the data pointed to by a data field.

Parameters
[in,out]fielddata field
[in]heapmemory heap where allocated

◆ dfield_get_data()

static void * dfield_get_data ( const dfield_t field)
inlinestatic

Gets pointer to the data in a field.

Returns
pointer to data in: field

◆ dfield_get_len()

static uint32_t dfield_get_len ( const dfield_t field)
inlinestatic

Gets length of field data.

Returns
length of data; UNIV_SQL_NULL if SQL null data in: field

◆ dfield_get_spatial_status()

static spatial_status_t dfield_get_spatial_status ( const dfield_t field)
inlinestatic

Gets spatial status for "external storage".

Parameters
[in,out]fieldfield

◆ dfield_get_type()

static dtype_t * dfield_get_type ( const dfield_t field)
inlinestatic

Gets pointer to the type struct of SQL data field.

Returns
pointer to the type struct in: SQL data field

◆ dfield_is_ext()

static bool dfield_is_ext ( const dfield_t field)
inlinestatic

Determines if a field is externally stored.

Returns
nonzero if externally stored in: field

◆ dfield_is_multi_value()

static bool dfield_is_multi_value ( const dfield_t field)
inlinestatic

Determine if a field is of multi-value type.

Parameters
[in]fielddata field
Returns
true if multi-value type field, otherwise false

◆ dfield_is_null()

static ulint dfield_is_null ( const dfield_t field)
inlinestatic

Determines if a field is SQL NULL.

Returns
nonzero if SQL null data in: field

◆ dfield_multi_value_dup()

static void dfield_multi_value_dup ( dfield_t field,
mem_heap_t heap 
)
inlinestatic

Copies the data pointed to by a data field.

This function works for multi-value fields only.

Parameters
[in,out]fielddata field
[in]heapmemory heap where allocated

◆ dfield_print()

void dfield_print ( std::ostream &  o,
const dfield_t field,
ulint  n 
)

Print the contents of a tuple.

Parameters
[out]ooutput stream
[in]fieldarray of data fields
[in]nnumber of data fields

◆ dfield_print_also_hex()

void dfield_print_also_hex ( const dfield_t dfield)

Pretty prints a dfield value according to its data type.

Also the hex string is printed if a string contains non-printable characters. in: dfield

◆ dfield_set_data()

static void dfield_set_data ( dfield_t field,
const void *  data,
ulint  len 
)
inlinestatic

Sets pointer to the data and length in a field.

Parameters
[in]fieldfield
[in]datadata
[in]lenlength or UNIV_SQL_NULL

◆ dfield_set_ext()

static void dfield_set_ext ( dfield_t field)
inlinestatic

Sets the "external storage" flag.

in/out: field

◆ dfield_set_len()

static void dfield_set_len ( dfield_t field,
ulint  len 
)
inlinestatic

Sets length in a field.

Parameters
[in]fieldfield
[in]lenlength or UNIV_SQL_NULL

◆ dfield_set_null()

static void dfield_set_null ( dfield_t field)
inlinestatic

Sets a data field to SQL NULL.

in/out: field

◆ dfield_set_spatial_status()

static void dfield_set_spatial_status ( dfield_t field,
spatial_status_t  spatial_status 
)
inlinestatic

Sets spatial status for "external storage".

Parameters
[in,out]fieldfield
[in]spatial_statusspatial status

◆ dfield_set_type()

static void dfield_set_type ( dfield_t field,
const dtype_t type 
)
inlinestatic

Sets the type struct of SQL data field.

Parameters
[in]fieldSQL data field
[in]typepointer to data type struct

◆ dfield_write_mbr()

static void dfield_write_mbr ( dfield_t field,
const double *  mbr 
)
inlinestatic

Sets pointer to the data and length in a field.

Parameters
[in]fieldfield
[in]mbrdata

◆ dtuple_big_rec_free()

static void dtuple_big_rec_free ( big_rec_t vector)
inlinestatic

Frees the memory in a big rec vector.

in, own: big rec vector; it is freed in this function

◆ dtuple_check_typed()

bool dtuple_check_typed ( const dtuple_t tuple)

Checks that a data tuple is typed.

Asserts an error if not.

Returns
true if ok in: tuple

◆ dtuple_coll_eq()

bool dtuple_coll_eq ( const dtuple_t tuple1,
const dtuple_t tuple2 
)

Compare two data tuples.

Parameters
[in]tuple1first data tuple
[in]tuple2second data tuple
Returns
whether tuple1==tuple2

◆ dtuple_contains_null()

static bool dtuple_contains_null ( const dtuple_t tuple)
inlinestatic

Checks if a dtuple contains an SQL null value.

Returns
true if some field is SQL null in: dtuple

◆ dtuple_convert_back_big_rec()

void dtuple_convert_back_big_rec ( dtuple_t entry,
big_rec_t vector 
)

Puts back to entry the data stored in vector.

Note that to ensure the fields in entry can accommodate the data, vector must have been created from entry with dtuple_convert_big_rec.

Parameters
[in]entryEntry whose data was put to vector.
[in]vectorBig rec vector; it is freed in this function

◆ dtuple_convert_big_rec()

big_rec_t * dtuple_convert_big_rec ( dict_index_t index,
upd_t upd,
dtuple_t entry 
)

Moves parts of long fields in entry to the big record vector so that the size of tuple drops below the maximum record size allowed in the database.

Moves data only from those fields which are not necessary to determine uniquely the insertion place of the tuple in the index.

Parameters
[in,out]indexIndex that owns the record.
[in,out]updUpdate vector.
[in,out]entryIndex entry.
Returns
own: created big record vector, NULL if we are not able to shorten the entry enough, i.e., if there are too many fixed-length or short fields in entry or the index is clustered

◆ dtuple_copy()

static dtuple_t * dtuple_copy ( const dtuple_t tuple,
mem_heap_t heap 
)
inlinestatic

Copies a data tuple to another.

This is a shallow copy; if a deep copy is desired, dfield_dup() will have to be invoked on each field.

Returns
own: copy of tuple
Parameters
tuplein: tuple to copy from
heapin: memory heap where the tuple is created

◆ dtuple_copy_v_fields()

static void dtuple_copy_v_fields ( dtuple_t d_tuple,
const dtuple_t s_tuple 
)
inlinestatic

Copies a data tuple's virtual fields to another.

This is a shallow copy;

Parameters
[in,out]d_tupledestination tuple
[in]s_tuplesource tuple

◆ dtuple_create()

static dtuple_t * dtuple_create ( mem_heap_t heap,
ulint  n_fields 
)
inlinestatic

Creates a data tuple to a memory heap.

The default value for number of fields used in record comparisons for this tuple is n_fields.

Returns
own: created tuple
Parameters
heapin: memory heap where the tuple is created, DTUPLE_EST_ALLOC(n_fields) bytes will be allocated from this heap
n_fieldsin: number of fields

◆ dtuple_create_from_mem()

static dtuple_t * dtuple_create_from_mem ( void *  buf,
ulint  buf_size,
ulint  n_fields,
ulint  n_v_fields 
)
inlinestatic

Creates a data tuple from an already allocated chunk of memory.

The size of the chunk must be at least DTUPLE_EST_ALLOC(n_fields). The default value for number of fields used in record comparisons for this tuple is n_fields.

Parameters
[in,out]bufbuffer to use
[in]buf_sizebuffer size
[in]n_fieldsnumber of field
[in]n_v_fieldsnumber of fields on virtual columns
Returns
created tuple (inside buf)

◆ dtuple_create_with_vcol()

static dtuple_t * dtuple_create_with_vcol ( mem_heap_t heap,
ulint  n_fields,
ulint  n_v_fields 
)
inlinestatic

Creates a data tuple with possible virtual columns to a memory heap.

Parameters
[in]heapmemory heap where the tuple is created
[in]n_fieldsnumber of fields
[in]n_v_fieldsnumber of fields on virtual col
Returns
own: created tuple

◆ dtuple_dup_v_fld()

static void dtuple_dup_v_fld ( const dtuple_t vrow,
mem_heap_t heap 
)
inlinestatic

Duplicate the virtual field data in a dtuple_t.

Parameters
[in,out]vrowdtuple contains the virtual fields
[in]heapheap memory to use

◆ dtuple_get_data_size()

static ulint dtuple_get_data_size ( const dtuple_t tuple,
ulint  comp 
)
inlinestatic

The following function returns the sum of data lengths of a tuple.

The space occupied by the field structs or the tuple struct is not counted.

Parameters
[in]tupletyped data tuple
[in]compnonzero=ROW_FORMAT=COMPACT
Returns
sum of data lens

◆ dtuple_get_info_bits()

static ulint dtuple_get_info_bits ( const dtuple_t tuple)
inlinestatic

Gets info bits in a data tuple.

Returns
info bits in: tuple

◆ dtuple_get_n_fields()

static ulint dtuple_get_n_fields ( const dtuple_t tuple)
inlinestatic

Gets number of fields in a data tuple.

Returns
number of fields in: tuple

◆ dtuple_get_n_fields_cmp()

static ulint dtuple_get_n_fields_cmp ( const dtuple_t tuple)
inlinestatic

Gets number of fields used in record comparisons.

Returns
number of fields used in comparisons in rem0cmp.* in: tuple

◆ dtuple_get_n_v_fields()

static ulint dtuple_get_n_v_fields ( const dtuple_t tuple)
inlinestatic

Gets number of virtual fields in a data tuple.

Parameters
[in]tupledtuple to check
Returns
number of fields

◆ dtuple_get_nth_field()

static dfield_t * dtuple_get_nth_field ( const dtuple_t tuple,
ulint  n 
)
inlinestatic

Gets nth field of a tuple.

Parameters
[in]tupletuple
[in]nindex of field
Returns
nth field

◆ dtuple_get_nth_v_field()

static dfield_t * dtuple_get_nth_v_field ( const dtuple_t tuple,
ulint  n 
)
inlinestatic

Gets nth virtual field of a tuple.

Parameters
[in]tupletuple
[in]nthe nth field to get
Returns
nth field

◆ dtuple_hash()

static uint64_t dtuple_hash ( const dtuple_t tuple,
ulint  n_fields,
ulint  n_bytes,
uint64_t  hash_value 
)
inlinestatic

Compute a hash value of a prefix of an index record.

Parameters
[in]tupleindex record
[in]n_fieldsnumber of fields to include
[in]n_bytesnumber of bytes to hash in the last field
[in]hash_valuehash value of the index identifier
Returns
the hashed value

◆ dtuple_init_v_fld()

static void dtuple_init_v_fld ( const dtuple_t vrow)
inlinestatic

Initialize the virtual field data in a dtuple_t.

Parameters
[in,out]vrowdtuple contains the virtual fields

◆ dtuple_print() [1/2]

void dtuple_print ( FILE *  f,
const dtuple_t tuple 
)

The following function prints the contents of a tuple.

Parameters
[in,out]fOutput stream.
[in]tupleTuple to print.

◆ dtuple_print() [2/2]

void dtuple_print ( std::ostream &  o,
const dtuple_t tuple 
)

Print the contents of a tuple.

Parameters
[out]ooutput stream
[in]tupledata tuple

◆ dtuple_set_info_bits()

static void dtuple_set_info_bits ( dtuple_t tuple,
ulint  info_bits 
)
inlinestatic

Sets info bits in a data tuple.

Parameters
[in]tupletuple
[in]info_bitsinfo bits

◆ dtuple_set_n_fields()

void dtuple_set_n_fields ( dtuple_t tuple,
ulint  n_fields 
)

Sets number of fields used in a tuple.

Normally this is set in dtuple_create, but if you want later to set it smaller, you can use this.

Parameters
[in]tupleTuple.
[in]n_fieldsNumber of fields.

◆ dtuple_set_n_fields_cmp()

static void dtuple_set_n_fields_cmp ( dtuple_t tuple,
ulint  n_fields_cmp 
)
inlinestatic

Gets number of fields used in record comparisons.

Parameters
[in]tupletuple
[in]n_fields_cmpnumber of fields used in comparisons in rem0cmp

◆ dtuple_set_types_binary()

static void dtuple_set_types_binary ( dtuple_t tuple,
ulint  n 
)
inlinestatic

Sets types of fields binary in a tuple.

Parameters
[in]tupledata tuple
[in]nnumber of fields to set

◆ dtuple_validate()

bool dtuple_validate ( const dtuple_t tuple)

Validates the consistency of a tuple which must be complete, i.e, all fields must have been set.

Returns
true if ok in: tuple

◆ is_multi_value_clust_and_sec_equal()

bool is_multi_value_clust_and_sec_equal ( const byte clust_field,
uint64_t  clust_len,
const byte sec_field,
uint64_t  sec_len,
const dict_col_t col 
)

Compare a multi-value clustered index field with a secondary index field, to see if they are equal.

If the clustered index field is the array, then equal means it contains the secondary index field

Parameters
[in]clust_fieldclustered index field
[in]clust_lenclustered index field length
[in]sec_fieldsecondary index field
[in]sec_lensecondary index field length
[in]colthe column tied to this field
Returns
true if they are equal, otherwise false

◆ operator<<() [1/4]

std::ostream & operator<< ( std::ostream &  o,
const dtuple_t tuple 
)
inline

Print the contents of a tuple.

Parameters
[out]ooutput stream
[in]tupledata tuple

◆ operator<<() [2/4]

std::ostream & operator<< ( std::ostream &  out,
const big_rec_field_t obj 
)
inline

Overloading the global output operator to easily print the given big_rec_field_t object into the given output stream.

Parameters
[in]outthe output stream
[in]objthe given object to print.
Returns
the output stream.

◆ operator<<() [3/4]

std::ostream & operator<< ( std::ostream &  out,
const big_rec_t obj 
)
inline

Overloading the global output operator to easily print the given big_rec_t object into the given output stream.

Parameters
[in]outthe output stream
[in]objthe given object to print.
Returns
the output stream.

◆ operator<<() [4/4]

std::ostream & operator<< ( std::ostream &  out,
const dfield_t obj 
)
inline

Overloading the global output operator to easily print the given dfield_t object into the given output stream.

Parameters
[in]outthe output stream
[in]objthe given object to print.
Returns
the output stream.

Variable Documentation

◆ DATA_TUPLE_MAGIC_N

constexpr uint32_t DATA_TUPLE_MAGIC_N = 65478679
constexpr

Value of dtuple_t::magic_n.