~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field.h

  • Committer: Monty Taylor
  • Date: 2008-11-19 08:44:26 UTC
  • mfrom: (584.5.1 fix-headers)
  • mto: This revision was merged to the branch mainline in revision 590.
  • Revision ID: monty@inaugust.com-20081119084426-zdambea9ya8aac63
Merged in fix-headers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
677
677
 
678
678
 
679
679
bool
680
 
test_if_important_data(const CHARSET_INFO * const cs, 
681
 
                       const char *str,
 
680
test_if_important_data(const CHARSET_INFO * const cs,
 
681
                       const char *str,
682
682
                       const char *strend);
683
683
 
684
 
/*
685
 
  Field subclasses
686
 
 */
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>
705
 
 
706
 
/*
707
 
  The following are for the interface with the .frm file
708
 
*/
709
 
 
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!
717
 
 
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
725
 
 
726
 
#define MTYP_TYPENR(type) (type & 127)  /* Remove bits from type */
727
 
 
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)
743
 
 
744
 
bool
745
 
check_string_copy_error(Field_str *field,
746
 
                        const char *well_formed_error_pos,
747
 
                        const char *cannot_convert_error_pos,
748
 
                        const char *end,
749
 
                        const CHARSET_INFO * const cs);
750
684
 
751
685
#endif /* DRIZZLED_FIELD_H */