MySQL 9.5.0
Source Code Documentation
Json_datetime Class Referencefinal

MySQL temporal value that is represented by a MYSQL_TIME struct, ie. More...

#include <json_dom.h>

Inheritance diagram for Json_datetime:
[legend]

Public Member Functions

 Json_datetime (const Datetime_val &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 Datetime_valvalue () const
 
enum_field_types field_type () const override
 
void to_packed (char *dest) const
 Convert the datetime to the packed format used for storage. More...
 
- Public Member Functions inherited from Json_temporal
 Json_temporal ()
 
- 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_containerparent () 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 JsonErrorHandler &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...
 

Private Attributes

Datetime_val m_t
 holds the date/time value More...
 
enum_field_types m_field_type
 identifies which type of date/time More...
 

Additional Inherited Members

- Static Public Attributes inherited from Json_temporal
static const size_t PACKED_SIZE = 8
 Datetimes are packed in eight bytes. More...
 

Detailed Description

MySQL temporal value that is represented by a MYSQL_TIME struct, ie.

a DATETIME, TIMESTAMP or DATE value.

Constructor & Destructor Documentation

◆ Json_datetime()

Json_datetime::Json_datetime ( const Datetime_val t,
enum_field_types  ft 
)
inline

Constructs a object to hold a MySQL date/time value.

Parameters
[in]tthe date/time value
[in]ftthe field type: must be one of MYSQL_TYPE_DATE, MYSQL_TYPE_DATETIME or MYSQL_TYPE_TIMESTAMP.

Member Function Documentation

◆ clone()

Json_dom_ptr Json_datetime::clone ( ) const
overridevirtual

Make a deep clone.

The ownership of the returned object is henceforth with the caller.

Returns
a cloned Json_dom object.

Implements Json_dom.

◆ field_type()

enum_field_types Json_datetime::field_type ( ) const
inlineoverridevirtual
Returns
One of MYSQL_TYPE_TIME, MYSQL_TYPE_DATE, MYSQL_TYPE_DATETIME or MYSQL_TYPE_TIMESTAMP.

Implements Json_temporal.

◆ from_packed()

void Json_datetime::from_packed ( const char *  from,
enum_field_types  ft,
MYSQL_TIME to 
)
static

Convert a packed datetime back to a MYSQL_TIME.

Parameters
fromthe buffer to read from (must have at least PACKED_SIZE bytes)
ftthe field type of the value
tothe MYSQL_TIME to write the value to

◆ from_packed_to_key()

void Json_datetime::from_packed_to_key ( const char *  from,
enum_field_types  ft,
uchar to,
uint8  dec 
)
static

Convert a packed datetime to key string for indexing by SE.

Parameters
fromthe buffer to read from
ftthe field type of the value
tothe destination buffer
decvalue's decimals

◆ json_type()

enum_json_type Json_datetime::json_type ( ) const
overridevirtual
Returns
the type corresponding to the actual Json_dom subclass

Implements Json_dom.

◆ to_packed()

void Json_datetime::to_packed ( char *  dest) const

Convert the datetime to the packed format used for storage.

Parameters
destthe destination buffer to write the packed datetime to (must at least have size PACKED_SIZE)

◆ value()

const Datetime_val * Json_datetime::value ( ) const
inline
Returns
a pointer to the date/time value. Ownership is not transferred. To identify which time time the value represents, use field_type.

Member Data Documentation

◆ m_field_type

enum_field_types Json_datetime::m_field_type
private

identifies which type of date/time

◆ m_t

Datetime_val Json_datetime::m_t
private

holds the date/time value


The documentation for this class was generated from the following files: