23
23
* @file This file implements the Field class and API
30
#include <drizzled/sql_select.h>
31
#include <drizzled/error.h>
32
#include <drizzled/field/str.h>
33
#include <drizzled/field/num.h>
34
#include <drizzled/field/blob.h>
35
#include <drizzled/field/boolean.h>
36
#include <drizzled/field/enum.h>
37
#include <drizzled/field/null.h>
38
#include <drizzled/field/date.h>
39
#include <drizzled/field/decimal.h>
40
#include <drizzled/field/real.h>
41
#include <drizzled/field/double.h>
42
#include <drizzled/field/int32.h>
43
#include <drizzled/field/int64.h>
44
#include <drizzled/field/num.h>
45
#include <drizzled/field/time.h>
46
#include <drizzled/field/epoch.h>
47
#include <drizzled/field/datetime.h>
48
#include <drizzled/field/microtime.h>
49
#include <drizzled/field/varstring.h>
50
#include <drizzled/field/uuid.h>
51
#include <drizzled/time_functions.h>
52
#include <drizzled/internal/m_string.h>
53
#include <drizzled/table.h>
54
#include <drizzled/util/test.h>
55
#include <drizzled/session.h>
56
#include <drizzled/current_session.h>
57
#include <drizzled/display.h>
58
#include <drizzled/typelib.h>
30
#include "drizzled/sql_select.h"
31
#include "drizzled/error.h"
32
#include "drizzled/field/str.h"
33
#include "drizzled/field/num.h"
34
#include "drizzled/field/blob.h"
35
#include "drizzled/field/boolean.h"
36
#include "drizzled/field/enum.h"
37
#include "drizzled/field/null.h"
38
#include "drizzled/field/date.h"
39
#include "drizzled/field/decimal.h"
40
#include "drizzled/field/real.h"
41
#include "drizzled/field/double.h"
42
#include "drizzled/field/int32.h"
43
#include "drizzled/field/int64.h"
44
#include "drizzled/field/num.h"
45
#include "drizzled/field/time.h"
46
#include "drizzled/field/epoch.h"
47
#include "drizzled/field/datetime.h"
48
#include "drizzled/field/microtime.h"
49
#include "drizzled/field/varstring.h"
50
#include "drizzled/field/uuid.h"
51
#include "drizzled/time_functions.h"
52
#include "drizzled/internal/m_string.h"
54
#include "drizzled/display.h"
749
bool Field::is_null(ptrdiff_t row_offset) const
745
bool Field::is_null(ptrdiff_t row_offset)
751
747
return null_ptr ?
752
748
(null_ptr[row_offset] & null_bit ? true : false) :
756
bool Field::is_real_null(ptrdiff_t row_offset) const
752
bool Field::is_real_null(ptrdiff_t row_offset)
758
754
return null_ptr ? (null_ptr[row_offset] & null_bit ? true : false) : false;
761
bool Field::is_null_in_record(const unsigned char *record) const
757
bool Field::is_null_in_record(const unsigned char *record)
765
761
return test(record[(uint32_t) (null_ptr -table->getInsertRecord())] & null_bit);
768
bool Field::is_null_in_record_with_offset(ptrdiff_t with_offset) const
764
bool Field::is_null_in_record_with_offset(ptrdiff_t with_offset)
1012
1008
return copy->length+ store_length;
1015
bool Field::get_date(type::Time <ime, uint32_t fuzzydate) const
1011
bool Field::get_date(type::Time <ime, uint32_t fuzzydate)
1017
1013
char buff[type::Time::MAX_STRING_LENGTH];
1018
1014
String tmp(buff,sizeof(buff),&my_charset_bin),*res;
1020
1016
assert(getTable() and getTable()->getSession());
1022
if (not (res= val_str_internal(&tmp)) or
1018
if (not (res=val_str_internal(&tmp)) or
1023
1019
str_to_datetime_with_warn(getTable()->getSession(),
1024
1020
res->ptr(), res->length(),
1025
1021
<ime, fuzzydate) <= type::DRIZZLE_TIMESTAMP_ERROR)