~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field.h

  • Committer: Brian Aker
  • Date: 2011-02-12 06:56:00 UTC
  • mto: This revision was merged to the branch mainline in revision 2161.
  • Revision ID: brian@tangent.org-20110212065600-m6c68fybw51rflhj
Further strip out includes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
802
802
  SendField() {}
803
803
};
804
804
 
805
 
/**
806
 
 * A class for quick copying data to fields
807
 
 */
808
 
class CopyField :public memory::SqlAlloc
809
 
{
810
 
  /**
811
 
    Convenience definition of a copy function returned by
812
 
    get_copy_func.
813
 
  */
814
 
  typedef void Copy_func(CopyField*);
815
 
  Copy_func *get_copy_func(Field *to, Field *from);
816
 
 
817
 
public:
818
 
  unsigned char *from_ptr;
819
 
  unsigned char *to_ptr;
820
 
  unsigned char *from_null_ptr;
821
 
  unsigned char *to_null_ptr;
822
 
  bool *null_row;
823
 
  uint32_t from_bit;
824
 
  uint32_t to_bit;
825
 
  uint32_t from_length;
826
 
  uint32_t to_length;
827
 
  Field *from_field;
828
 
  Field *to_field;
829
 
  String tmp;                                   // For items
830
 
 
831
 
  CopyField() :
832
 
    from_ptr(0),
833
 
    to_ptr(0),
834
 
    from_null_ptr(0),
835
 
    to_null_ptr(0),
836
 
    null_row(0),
837
 
    from_bit(0),
838
 
    to_bit(0),
839
 
    from_length(0),
840
 
    to_length(0),
841
 
    from_field(0),
842
 
    to_field(0)
843
 
  {}
844
 
 
845
 
  ~CopyField()
846
 
  {}
847
 
 
848
 
  void set(Field *to,Field *from,bool save);    // Field to field
849
 
  void set(unsigned char *to,Field *from);              // Field to string
850
 
  void (*do_copy)(CopyField *);
851
 
  void (*do_copy2)(CopyField *);                // Used to handle null values
852
 
};
853
 
 
854
805
uint32_t pack_length_to_packflag(uint32_t type);
855
806
uint32_t calc_pack_length(enum_field_types type,uint32_t length);
856
807
int set_field_to_null(Field *field);