MySQL 8.0.40
Source Code Documentation
|
Represents a MySQL date/time value (DATE, TIME, DATETIME or TIMESTAMP) - an extension to the ECMA set of JSON scalar types, types J_DATE, J_TIME, J_DATETIME and J_TIMESTAMP respectively. More...
#include <json_dom.h>
Public Member Functions | |
Json_datetime (const MYSQL_TIME &t, enum_field_types ft) | |
Constructs a object to hold a MySQL date/time value. More... | |
enum_json_type | json_type () const override |
Json_dom_ptr | clone () const override |
Make a deep clone. More... | |
const MYSQL_TIME * | value () const |
Return a pointer the date/time value. More... | |
enum_field_types | field_type () const |
Return what kind of date/time value this object holds. More... | |
void | to_packed (char *dest) const |
Convert the datetime to the packed format used when storing datetime values. More... | |
Public Member Functions inherited from Json_scalar | |
uint32 | depth () const final |
Compute the depth of a document. More... | |
bool | is_scalar () const final |
Public Member Functions inherited from Json_dom | |
virtual | ~Json_dom ()=default |
void * | operator new (size_t size, const std::nothrow_t &) noexcept |
Allocate space on the heap for a Json_dom object. More... | |
void | operator delete (void *ptr) noexcept |
Deallocate the space used by a Json_dom object. More... | |
void | operator delete (void *ptr, const std::nothrow_t &) noexcept |
Nothrow delete. More... | |
Json_container * | parent () const |
Get the parent dom to which this dom is attached. More... | |
virtual bool | is_number () const |
Json_path | get_location () const |
Get the path location of this dom, measured from the outermost document it nests inside. More... | |
bool | seek (const Json_seekable_path &path, size_t legs, Json_dom_vector *hits, bool auto_wrap, bool only_need_one) |
Finds all of the json sub-documents which match the path expression. More... | |
Static Public Member Functions | |
static void | from_packed (const char *from, enum_field_types ft, MYSQL_TIME *to) |
Convert a packed datetime back to a MYSQL_TIME. More... | |
static void | from_packed_to_key (const char *from, enum_field_types ft, uchar *to, uint8 dec) |
Convert a packed datetime to key string for indexing by SE. More... | |
Static Public Member Functions inherited from Json_dom | |
static Json_dom_ptr | parse (const char *text, size_t length, const JsonParseErrorHandler &error_handler, const JsonDocumentDepthHandler &depth_handler) |
Parse Json text to DOM (using rapidjson). More... | |
static Json_dom_ptr | parse (const json_binary::Value &v) |
Construct a DOM object based on a binary JSON value. More... | |
Static Public Attributes | |
static const size_t | PACKED_SIZE = 8 |
Datetimes are packed in eight bytes. More... | |
Private Attributes | |
MYSQL_TIME | m_t |
holds the date/time value More... | |
enum_field_types | m_field_type |
identifies which type of date/time More... | |
Represents a MySQL date/time value (DATE, TIME, DATETIME or TIMESTAMP) - an extension to the ECMA set of JSON scalar types, types J_DATE, J_TIME, J_DATETIME and J_TIMESTAMP respectively.
The method field_type identifies which of the four it is.
|
inline |
Constructs a object to hold a MySQL date/time value.
[in] | t | the time/value |
[in] | ft | the field type: must be one of MYSQL_TYPE_TIME, MYSQL_TYPE_DATE, MYSQL_TYPE_DATETIME or MYSQL_TYPE_TIMESTAMP. |
|
overridevirtual |
Make a deep clone.
The ownership of the returned object is henceforth with the caller.
Implements Json_dom.
|
inline |
Return what kind of date/time value this object holds.
|
static |
Convert a packed datetime back to a MYSQL_TIME.
from | the buffer to read from (must have at least PACKED_SIZE bytes) |
ft | the field type of the value |
to | the MYSQL_TIME to write the value to |
|
static |
Convert a packed datetime to key string for indexing by SE.
from | the buffer to read from |
ft | the field type of the value |
to | the destination buffer |
dec | value's decimals |
|
overridevirtual |
Implements Json_dom.
void Json_datetime::to_packed | ( | char * | dest | ) | const |
Convert the datetime to the packed format used when storing datetime values.
dest | the destination buffer to write the packed datetime to (must at least have size PACKED_SIZE) |
|
inline |
Return a pointer the date/time value.
Ownership is not transferred. To identify which time time the value represents, use field_type
.
|
private |
identifies which type of date/time
|
private |
holds the date/time value
|
static |
Datetimes are packed in eight bytes.