Drizzled Public API Documentation

drizzled::Date Class Reference

#include <temporal.h>

Inheritance diagram for drizzled::Date:
drizzled::Temporal drizzled::DateTime drizzled::Timestamp drizzled::MicroTimestamp drizzled::NanoTimestamp

List of all members.

Public Member Functions

virtual bool operator== (const Date &rhs)
virtual bool operator!= (const Date &rhs)
virtual bool operator> (const Date &rhs)
virtual bool operator>= (const Date &rhs)
virtual bool operator< (const Date &rhs)
virtual bool operator<= (const Date &rhs)
virtual bool operator== (const DateTime &rhs)
virtual bool operator!= (const DateTime &rhs)
virtual bool operator> (const DateTime &rhs)
virtual bool operator>= (const DateTime &rhs)
virtual bool operator< (const DateTime &rhs)
virtual bool operator<= (const DateTime &rhs)
virtual bool operator== (const Timestamp &rhs)
virtual bool operator!= (const Timestamp &rhs)
virtual bool operator> (const Timestamp &rhs)
virtual bool operator>= (const Timestamp &rhs)
virtual bool operator< (const Timestamp &rhs)
virtual bool operator<= (const Timestamp &rhs)
const Date operator- (const Date &rhs)
const Date operator+ (const Date &rhs)
Dateoperator+= (const Date &rhs)
Dateoperator-= (const Date &rhs)
const Date operator- (const Time &rhs)
const Date operator+ (const Time &rhs)
Dateoperator-= (const Time &rhs)
Dateoperator+= (const Time &rhs)
const Date operator- (const DateTime &rhs)
const Date operator+ (const DateTime &rhs)
Dateoperator+= (const DateTime &rhs)
Dateoperator-= (const DateTime &rhs)
Dateoperator= (const DateTime &rhs)
virtual bool is_valid_date () const
virtual bool is_valid_datetime () const
virtual bool is_valid_time () const
virtual bool is_valid_timestamp () const
virtual bool is_valid () const
virtual bool in_unix_epoch () const
virtual int to_string (char *to, size_t to_len) const
virtual bool from_string (const char *from, size_t from_len)
virtual void to_int64_t (int64_t *to) const
virtual void to_int32_t (int32_t *to) const
virtual bool from_int32_t (const int32_t from)
void to_julian_day_number (int64_t *to) const
bool from_julian_day_number (const int64_t from)
virtual void to_tm (struct tm *to) const
virtual bool from_tm (const struct tm *from)
virtual void to_time_t (time_t &to) const
virtual bool from_time_t (const time_t from)
virtual void to_decimal (type::Decimal *to) const
enum calendar calendar () const
void set_nseconds (const uint32_t nsecond)
uint32_t nseconds () const
void set_useconds (const uint32_t usecond)
uint32_t useconds () const
void set_epoch_seconds ()
void set_epoch_seconds (const uint32_t epoch_second)
time_t epoch_seconds () const
void set_seconds (const uint32_t second)
uint32_t seconds () const
void set_minutes (const uint32_t minute)
uint32_t minutes () const
void set_hours (const uint32_t hour)
uint32_t hours () const
void set_days (const uint32_t day)
uint32_t days () const
void set_months (const uint32_t month)
uint32_t months () const
void set_years (const uint32_t year)
uint32_t years () const
bool overflow () const

Static Public Attributes

static const int MAX_STRING_LENGTH = 11

Protected Member Functions

uint64_t _cumulative_seconds_in_time () const
void _reset ()

Protected Attributes

enum calendar _calendar
uint32_t _years
uint32_t _months
uint32_t _days
uint32_t _hours
uint32_t _minutes
uint32_t _seconds
time_t _epoch_seconds
uint32_t _useconds
uint32_t _nseconds
bool _overflow

Friends

class TemporalInterval
class Timestamp

Detailed Description

Class representing temporal components in a valid SQL date range, with no time component

Definition at line 191 of file temporal.h.


Member Function Documentation

uint64_t drizzled::Temporal::_cumulative_seconds_in_time ( ) const
protectedinherited

Returns number of seconds in time components (hour + minute + second)

Definition at line 78 of file temporal.cc.

Referenced by operator+(), drizzled::Time::operator+(), operator+=(), drizzled::Time::operator+=(), operator-(), drizzled::Time::operator-(), operator-=(), and drizzled::Time::operator-=().

void drizzled::Temporal::_reset ( )
inlineprotectedinherited

Resets all temporal components to zero

Definition at line 97 of file temporal.h.

enum calendar drizzled::Temporal::calendar ( ) const
inlineinherited

Returns the calendar component.

Definition at line 108 of file temporal.h.

time_t drizzled::Temporal::epoch_seconds ( ) const
inlineinherited

Returns the UNIX epoch seconds component.

Definition at line 126 of file temporal.h.

bool drizzled::Date::from_int32_t ( const int32_t  from)
virtual

Attempts to populate the Date instance based on the contents of a supplied 4-byte integer.

Returns whether the conversion was successful.

Parameters:
Integerto convert from

Ignore overflow and pass-through to DateTime::from_int64_t()

Reimplemented in drizzled::DateTime.

Definition at line 1121 of file temporal.cc.

bool drizzled::Date::from_julian_day_number ( const int64_t  from)

Attempts to populate the Date instance based on the contents of a supplied Julian Day Number

Returns whether the conversion was successful.

Parameters:
Integerto convert from

Definition at line 1107 of file temporal.cc.

References drizzled::gregorian_date_from_julian_day_number(), and is_valid().

Referenced by drizzled::Item_func_from_days::get_temporal().

bool drizzled::Date::from_string ( const char *  from,
size_t  from_len 
)
virtual

Attempts to populate the Date instance based on the contents of a supplied string.

Returns whether the conversion was successful.

Parameters:
Stringto convert from
Lengthof supplied string (not including trailing '\0').

Reimplemented in drizzled::DateTime.

Definition at line 147 of file temporal.cc.

References is_valid(), drizzled::TemporalFormat::matches(), and drizzled::Temporal::set_epoch_seconds().

bool drizzled::Date::from_time_t ( const time_t  from)
virtual

Attempts to populate the Date instance based on the contents of a supplied time_t

Returns whether the conversion was successful.

Parameters:
time_tto convert from

Reimplemented in drizzled::DateTime.

Definition at line 1248 of file temporal.cc.

References is_valid().

Referenced by drizzled::Item_func_curdate_local::store_now_in_TIME(), and drizzled::Item_func_curdate_utc::store_now_in_TIME().

bool drizzled::Date::from_tm ( const struct tm *  from)
virtual

Attempts to populate the Date instance based on the contents of a supplied pointer to struct tm (broken time).

Returns whether the conversion was successful.

Parameters:
Pointerto the struct tm to convert from

Definition at line 1204 of file temporal.cc.

References is_valid(), and drizzled::Temporal::set_epoch_seconds().

uint32_t drizzled::Temporal::hours ( ) const
inlineinherited
bool drizzled::Date::is_valid ( ) const
virtual

Returns whether the temporal value is valid date.

Implements drizzled::Temporal.

Reimplemented in drizzled::NanoTimestamp, drizzled::MicroTimestamp, drizzled::Timestamp, and drizzled::DateTime.

Definition at line 1353 of file temporal.cc.

References drizzled::days_in_gregorian_year_month().

Referenced by from_julian_day_number(), from_string(), from_time_t(), and from_tm().

virtual bool drizzled::Date::is_valid_date ( ) const
inlinevirtual

Returns whether the temporal value is valid as a date.

Implements drizzled::Temporal.

Definition at line 280 of file temporal.h.

virtual bool drizzled::Date::is_valid_datetime ( ) const
inlinevirtual

Returns whether the temporal value is valid as a datetime.

Implements drizzled::Temporal.

Definition at line 281 of file temporal.h.

virtual bool drizzled::Date::is_valid_time ( ) const
inlinevirtual

Returns whether the temporal value is valid as a time.

Implements drizzled::Temporal.

Definition at line 282 of file temporal.h.

virtual bool drizzled::Date::is_valid_timestamp ( ) const
inlinevirtual

Returns whether the temporal value is valid as a UNIX timestamp.

Implements drizzled::Temporal.

Reimplemented in drizzled::Timestamp.

Definition at line 283 of file temporal.h.

uint32_t drizzled::Temporal::minutes ( ) const
inlineinherited
uint32_t drizzled::Temporal::nseconds ( ) const
inlineinherited

Returns the nanoseconds component.

Definition at line 112 of file temporal.h.

Referenced by drizzled::Item_func_to_days::val_int_endpoint().

const Date drizzled::Date::operator+ ( const Date rhs)

Need an exception check here for bounds of JDN...

Definition at line 566 of file temporal.cc.

References drizzled::gregorian_date_from_julian_day_number(), and drizzled::julian_day_number_from_gregorian_date().

const Date drizzled::Date::operator+ ( const DateTime rhs)
Date & drizzled::Date::operator+= ( const Date rhs)

Need an exception check here for bounds of JDN...

Definition at line 594 of file temporal.cc.

References drizzled::gregorian_date_from_julian_day_number(), and drizzled::julian_day_number_from_gregorian_date().

Date & drizzled::Date::operator+= ( const Time rhs)

Once exceptions are supported, we should raise an error here if the result Time is not valid?

Definition at line 479 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time().

Date & drizzled::Date::operator+= ( const DateTime rhs)
const Date drizzled::Date::operator- ( const Date rhs)

Operator overload for adding/subtracting another Date (or subclass) to/from this temporal. When subtracting or adding two Dates, we return a new Date instance.

Parameters:
Dateinstance to add/subtract to/from

We can add/subtract two Dates to/from each other. The result is always another Date instance.

Definition at line 554 of file temporal.cc.

References drizzled::gregorian_date_from_julian_day_number(), and drizzled::julian_day_number_from_gregorian_date().

const Date drizzled::Date::operator- ( const Time rhs)

Operator to add/subtract a Time from a Time. We can return a Time new temporal instance.

Parameters:
Temporalinstance to add/subtract to/from

We can add or subtract a Time value to/from a DateTime value as well...it always produces a DateTime.

Definition at line 388 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time().

const Date drizzled::Date::operator- ( const DateTime rhs)

Operator overload for adding/subtracting a DateTime (or subclass) to/from this temporal. When subtracting or adding two Dates, we return a new Date instance.

Parameters:
DateTimeinstance to add/subtract to/from

We can add/subtract two DateTimes to/from each other. The result is always another DateTime instance.

Definition at line 626 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time(), drizzled::gregorian_date_from_julian_day_number(), and drizzled::julian_day_number_from_gregorian_date().

Date & drizzled::Date::operator-= ( const Time rhs)

Once exceptions are supported, we should raise an error here if the result Time is not valid?

Definition at line 512 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time().

Date & drizzled::Date::operator= ( const DateTime rhs)

Operator overload for when a DateTime instance is assigned to a Date. We do a copy of the DateTime's date-related components.

Parameters:
TheDateTime to copy from

Definition at line 611 of file temporal.cc.

bool drizzled::Date::operator== ( const Date rhs)
virtual

Comparison operator overloads to compare a Date against another Date value.

Parameters:
Dateto compare against.

Reimplemented in drizzled::Timestamp.

Definition at line 298 of file temporal.cc.

bool drizzled::Date::operator== ( const DateTime rhs)
virtual

Comparison operator overloads to compare a Date against a DateTime value.

Parameters:
DateTimeto compare against.

Reimplemented in drizzled::Timestamp.

Definition at line 336 of file temporal.cc.

bool drizzled::Date::operator== ( const Timestamp rhs)
virtual

Comparison operator overloads to compare this against a Timestamp value.

Parameters:
Timestampto compare against.

Reimplemented in drizzled::Timestamp.

Definition at line 809 of file temporal.cc.

bool drizzled::Temporal::overflow ( ) const
inlineinherited

Returns whether the overflow flag was set (which can occur during an overloaded operator's execution)

Definition at line 153 of file temporal.h.

uint32_t drizzled::Temporal::seconds ( ) const
inlineinherited
void drizzled::Temporal::set_days ( const uint32_t  day)
inlineinherited
void drizzled::Temporal::set_epoch_seconds ( )
inherited

Sets the epoch_seconds component automatically, based on the temporal's components.

Definition at line 123 of file temporal.cc.

References drizzled::in_unix_epoch_range().

Referenced by drizzled::DateTime::from_int64_t(), from_string(), drizzled::DateTime::from_string(), from_tm(), drizzled::Item_func_unix_timestamp::val_int(), and drizzle_plugin::js::JsFunction::val_str().

void drizzled::Temporal::set_epoch_seconds ( const uint32_t  epoch_second)
inlineinherited

Sets the epch_seconds component manually.

Definition at line 123 of file temporal.h.

void drizzled::Temporal::set_hours ( const uint32_t  hour)
inlineinherited
void drizzled::Temporal::set_minutes ( const uint32_t  minute)
inlineinherited
void drizzled::Temporal::set_months ( const uint32_t  month)
inlineinherited
void drizzled::Temporal::set_nseconds ( const uint32_t  nsecond)
inlineinherited

Sets the nseconds component.

Definition at line 110 of file temporal.h.

void drizzled::Temporal::set_seconds ( const uint32_t  second)
inlineinherited
void drizzled::Temporal::set_useconds ( const uint32_t  usecond)
inlineinherited

Sets the useconds component.

Definition at line 114 of file temporal.h.

void drizzled::Temporal::set_years ( const uint32_t  year)
inlineinherited
void drizzled::Date::to_decimal ( type::Decimal to) const
virtual

Fills a supplied type::Decimal with a representation of the Date value.

Parameters:
Pointerto the type::Decimal to fill

Reimplemented in drizzled::DateTime.

Definition at line 1034 of file temporal.cc.

void drizzled::Date::to_int32_t ( int32_t *  to) const
virtual

Fills a supplied 4-byte integer pointer with an integer representation of the Date value.

Parameters:
Integerto fill.

Reimplemented in drizzled::DateTime.

Definition at line 1057 of file temporal.cc.

Referenced by drizzled::Item_date::val_int().

void drizzled::Date::to_int64_t ( int64_t *  to) const
virtual

Fills a supplied 8-byte integer pointer with an integer representation of the Date value.

Parameters:
Integerto fill.

Reimplemented in drizzled::DateTime.

Definition at line 1052 of file temporal.cc.

void drizzled::Date::to_julian_day_number ( int64_t *  to) const

Fills a supplied int64_t with the Julian Day Number representation of this Date.

Note:
Julian Day Number != julian day!

Julian Day Number is the monotonically increasing number of days from the start of the Julian calendar (~4713 B.C.)

julian day is the ordinal day number of a day in a year.

Parameters:
int64_tto fill

Definition at line 1113 of file temporal.cc.

References drizzled::julian_day_number_from_gregorian_date().

Referenced by drizzled::Item_func_to_days::val_int(), and drizzled::Item_func_to_days::val_int_endpoint().

int drizzled::Date::to_string ( char *  to,
size_t  to_len 
) const
virtual

Fills a supplied char string with a string representation of the Date value.

Parameters:
C-Stringto fill.
Lengthof to C-String
Returns:
length of string written (including trailing '\0'). If output was truncated, returns length that would have been outputted.

Reimplemented in drizzled::MicroTimestamp, and drizzled::DateTime.

Definition at line 994 of file temporal.cc.

Referenced by drizzled::Item_date::val_str().

void drizzled::Date::to_time_t ( time_t &  to) const
virtual

Attempts to convert the Date value into a supplied time_t.

Parameters:
Pointerto a time_t to convert to

Reimplemented in drizzled::Timestamp.

Definition at line 1324 of file temporal.cc.

void drizzled::Date::to_tm ( struct tm *  to) const
virtual

Fills a supplied tm pointer with an representation of the Date value.

Parameters:
tmto fill.

Reimplemented in drizzled::DateTime.

Definition at line 1087 of file temporal.cc.

uint32_t drizzled::Temporal::useconds ( ) const
inlineinherited

Member Data Documentation

bool drizzled::Temporal::_overflow
protectedinherited

Set on some operator overloads. Indicates that an overflow occurred.

Definition at line 93 of file temporal.h.

const int drizzled::Date::MAX_STRING_LENGTH = 11
static

Maximum length of C-String needed to represent type (including '\0').

Reimplemented in drizzled::MicroTimestamp, and drizzled::DateTime.

Definition at line 310 of file temporal.h.

Referenced by drizzled::Item_func_curdate::fix_length_and_dec().


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