547
class Field_num :public Field {
550
bool decimal_precision; // Purify cannot handle bit fields & only for decimal type
551
bool unsigned_flag; // Purify cannot handle bit fields
552
Field_num(unsigned char *ptr_arg,uint32_t len_arg, unsigned char *null_ptr_arg,
553
unsigned char null_bit_arg, utype unireg_check_arg,
554
const char *field_name_arg,
555
uint8_t dec_arg, bool zero_arg, bool unsigned_arg);
556
Item_result result_type () const { return REAL_RESULT; }
557
void add_unsigned(String &res) const;
558
friend class Create_field;
559
void make_field(Send_field *);
560
uint32_t decimals() const { return (uint32_t) dec; }
561
uint32_t size_of() const { return sizeof(*this); }
562
bool eq_def(Field *field);
563
int store_decimal(const my_decimal *);
564
my_decimal *val_decimal(my_decimal *);
565
uint32_t is_equal(Create_field *new_field);
566
int check_int(const CHARSET_INFO * const cs, const char *str, int length,
567
const char *int_end, int error);
568
bool get_int(const CHARSET_INFO * const cs, const char *from, uint32_t len,
569
int64_t *rnd, uint64_t unsigned_max,
570
int64_t signed_min, int64_t signed_max);
573
class Field_tiny :public Field_num {
575
Field_tiny(unsigned char *ptr_arg, uint32_t len_arg, unsigned char *null_ptr_arg,
576
unsigned char null_bit_arg,
577
enum utype unireg_check_arg, const char *field_name_arg,
578
bool zero_arg, bool unsigned_arg)
579
:Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg,
580
unireg_check_arg, field_name_arg,
581
0, zero_arg,unsigned_arg)
583
enum Item_result result_type () const { return INT_RESULT; }
584
enum_field_types type() const { return DRIZZLE_TYPE_TINY;}
585
enum ha_base_keytype key_type() const
586
{ return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; }
587
int store(const char *to,uint32_t length, const CHARSET_INFO * const charset);
588
int store(double nr);
589
int store(int64_t nr, bool unsigned_val);
590
int reset(void) { ptr[0]=0; return 0; }
591
double val_real(void);
592
int64_t val_int(void);
593
String *val_str(String*,String *);
594
bool send_binary(Protocol *protocol);
595
int cmp(const unsigned char *,const unsigned char *);
596
void sort_string(unsigned char *buff,uint32_t length);
597
uint32_t pack_length() const { return 1; }
598
void sql_type(String &str) const;
599
uint32_t max_display_length() { return 4; }
601
virtual unsigned char *pack(unsigned char* to, const unsigned char *from,
602
uint32_t max_length __attribute__((unused)),
603
bool low_byte_first __attribute__((unused)))
609
virtual const unsigned char *unpack(unsigned char* to, const unsigned char *from,
610
uint32_t param_data __attribute__((unused)),
611
bool low_byte_first __attribute__((unused)))
619
547
Create field class for CREATE TABLE
814
744
const char *cannot_convert_error_pos,
816
746
const CHARSET_INFO * const cs);
749
class Field_tiny :public Field_num {
751
Field_tiny(unsigned char *ptr_arg, uint32_t len_arg, unsigned char *null_ptr_arg,
752
unsigned char null_bit_arg,
753
enum utype unireg_check_arg, const char *field_name_arg,
754
bool zero_arg, bool unsigned_arg)
755
:Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg,
756
unireg_check_arg, field_name_arg,
757
0, zero_arg,unsigned_arg)
759
enum Item_result result_type () const { return INT_RESULT; }
760
enum_field_types type() const { return DRIZZLE_TYPE_TINY;}
761
enum ha_base_keytype key_type() const
762
{ return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; }
763
int store(const char *to,uint32_t length, const CHARSET_INFO * const charset);
764
int store(double nr);
765
int store(int64_t nr, bool unsigned_val);
766
int reset(void) { ptr[0]=0; return 0; }
767
double val_real(void);
768
int64_t val_int(void);
769
String *val_str(String*,String *);
770
bool send_binary(Protocol *protocol);
771
int cmp(const unsigned char *,const unsigned char *);
772
void sort_string(unsigned char *buff,uint32_t length);
773
uint32_t pack_length() const { return 1; }
774
void sql_type(String &str) const;
775
uint32_t max_display_length() { return 4; }
777
virtual unsigned char *pack(unsigned char* to, const unsigned char *from,
778
uint32_t max_length __attribute__((unused)),
779
bool low_byte_first __attribute__((unused)))
785
virtual const unsigned char *unpack(unsigned char* to, const unsigned char *from,
786
uint32_t param_data __attribute__((unused)),
787
bool low_byte_first __attribute__((unused)))