680
test_if_important_data(const CHARSET_INFO * const cs,
680
test_if_important_data(const CHARSET_INFO * const cs,
682
682
const char *strend);
687
#include <drizzled/field/str.h>
688
#include <drizzled/field/longstr.h>
689
#include <drizzled/field/num.h>
690
#include <drizzled/field/blob.h>
691
#include <drizzled/field/enum.h>
692
#include <drizzled/field/null.h>
693
#include <drizzled/field/date.h>
694
#include <drizzled/field/fdecimal.h>
695
#include <drizzled/field/real.h>
696
#include <drizzled/field/double.h>
697
#include <drizzled/field/long.h>
698
#include <drizzled/field/int64_t.h>
699
#include <drizzled/field/num.h>
700
#include <drizzled/field/timetype.h>
701
#include <drizzled/field/timestamp.h>
702
#include <drizzled/field/datetime.h>
703
#include <drizzled/field/fstring.h>
704
#include <drizzled/field/varstring.h>
707
The following are for the interface with the .frm file
710
#define FIELDFLAG_DECIMAL 1
711
#define FIELDFLAG_BINARY 1 // Shares same flag
712
#define FIELDFLAG_NUMBER 2
713
#define FIELDFLAG_DECIMAL_POSITION 4
714
#define FIELDFLAG_PACK 120 // Bits used for packing
715
#define FIELDFLAG_INTERVAL 256 // mangled with decimals!
716
#define FIELDFLAG_BLOB 1024 // mangled with decimals!
718
#define FIELDFLAG_NO_DEFAULT 16384 /* sql */
719
#define FIELDFLAG_SUM ((uint32_t) 32768)// predit: +#fieldflag
720
#define FIELDFLAG_MAYBE_NULL ((uint32_t) 32768)// sql
721
#define FIELDFLAG_HEX_ESCAPE ((uint32_t) 0x10000)
722
#define FIELDFLAG_PACK_SHIFT 3
723
#define FIELDFLAG_DEC_SHIFT 8
724
#define FIELDFLAG_MAX_DEC 31
726
#define MTYP_TYPENR(type) (type & 127) /* Remove bits from type */
728
#define f_is_dec(x) ((x) & FIELDFLAG_DECIMAL)
729
#define f_is_num(x) ((x) & FIELDFLAG_NUMBER)
730
#define f_is_decimal_precision(x) ((x) & FIELDFLAG_DECIMAL_POSITION)
731
#define f_is_packed(x) ((x) & FIELDFLAG_PACK)
732
#define f_packtype(x) (((x) >> FIELDFLAG_PACK_SHIFT) & 15)
733
#define f_decimals(x) ((uint8_t) (((x) >> FIELDFLAG_DEC_SHIFT) & FIELDFLAG_MAX_DEC))
734
#define f_is_alpha(x) (!f_is_num(x))
735
#define f_is_binary(x) ((x) & FIELDFLAG_BINARY) // 4.0- compatibility
736
#define f_is_enum(x) (((x) & (FIELDFLAG_INTERVAL | FIELDFLAG_NUMBER)) == FIELDFLAG_INTERVAL)
737
#define f_is_blob(x) (((x) & (FIELDFLAG_BLOB | FIELDFLAG_NUMBER)) == FIELDFLAG_BLOB)
738
#define f_is_equ(x) ((x) & (1+2+FIELDFLAG_PACK+31*256))
739
#define f_settype(x) (((int) x) << FIELDFLAG_PACK_SHIFT)
740
#define f_maybe_null(x) (x & FIELDFLAG_MAYBE_NULL)
741
#define f_no_default(x) (x & FIELDFLAG_NO_DEFAULT)
742
#define f_is_hex_escape(x) ((x) & FIELDFLAG_HEX_ESCAPE)
745
check_string_copy_error(Field_str *field,
746
const char *well_formed_error_pos,
747
const char *cannot_convert_error_pos,
749
const CHARSET_INFO * const cs);
751
685
#endif /* DRIZZLED_FIELD_H */