The world's most popular open source database
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Classes | |
| class | Field |
| class | Field_num |
| class | Field_str |
| class | Field_longstr |
| class | Field_real |
| class | Field_decimal |
| class | Field_new_decimal |
| class | Field_tiny |
| class | Field_short |
| class | Field_medium |
| class | Field_long |
| class | Field_float |
| class | Field_double |
| class | Field_null |
| class | Field_timestamp |
| class | Field_year |
| class | Field_date |
| class | Field_newdate |
| class | Field_time |
| class | Field_datetime |
| class | Field_string |
| class | Field_varstring |
| class | Field_blob |
| class | Field_enum |
| class | Field_set |
| class | Field_bit |
| class | Field_bit_as_char |
| class | create_field |
| class | Send_field |
| class | Copy_field |
Defines | |
| #define | NOT_FIXED_DEC 31 |
| #define | DATETIME_DEC 6 |
| #define | FIELDFLAG_DECIMAL 1 |
| #define | FIELDFLAG_BINARY 1 |
| #define | FIELDFLAG_NUMBER 2 |
| #define | FIELDFLAG_ZEROFILL 4 |
| #define | FIELDFLAG_PACK 120 |
| #define | FIELDFLAG_INTERVAL 256 |
| #define | FIELDFLAG_BITFIELD 512 |
| #define | FIELDFLAG_BLOB 1024 |
| #define | FIELDFLAG_GEOM 2048 |
| #define | FIELDFLAG_TREAT_BIT_AS_CHAR 4096 |
| #define | FIELDFLAG_LEFT_FULLSCREEN 8192 |
| #define | FIELDFLAG_RIGHT_FULLSCREEN 16384 |
| #define | FIELDFLAG_FORMAT_NUMBER 16384 |
| #define | FIELDFLAG_NO_DEFAULT 16384 |
| #define | FIELDFLAG_SUM ((uint) 32768) |
| #define | FIELDFLAG_MAYBE_NULL ((uint) 32768) |
| #define | FIELDFLAG_PACK_SHIFT 3 |
| #define | FIELDFLAG_DEC_SHIFT 8 |
| #define | FIELDFLAG_MAX_DEC 31 |
| #define | FIELDFLAG_NUM_SCREEN_TYPE 0x7F01 |
| #define | FIELDFLAG_ALFA_SCREEN_TYPE 0x7800 |
| #define | MTYP_TYPENR(type) (type & 127) |
| #define | f_is_dec(x) ((x) & FIELDFLAG_DECIMAL) |
| #define | f_is_num(x) ((x) & FIELDFLAG_NUMBER) |
| #define | f_is_zerofill(x) ((x) & FIELDFLAG_ZEROFILL) |
| #define | f_is_packed(x) ((x) & FIELDFLAG_PACK) |
| #define | f_packtype(x) (((x) >> FIELDFLAG_PACK_SHIFT) & 15) |
| #define | f_decimals(x) ((uint8) (((x) >> FIELDFLAG_DEC_SHIFT) & FIELDFLAG_MAX_DEC)) |
| #define | f_is_alpha(x) (!f_is_num(x)) |
| #define | f_is_binary(x) ((x) & FIELDFLAG_BINARY) |
| #define | f_is_enum(x) (((x) & (FIELDFLAG_INTERVAL | FIELDFLAG_NUMBER)) == FIELDFLAG_INTERVAL) |
| #define | f_is_bitfield(x) (((x) & (FIELDFLAG_BITFIELD | FIELDFLAG_NUMBER)) == FIELDFLAG_BITFIELD) |
| #define | f_is_blob(x) (((x) & (FIELDFLAG_BLOB | FIELDFLAG_NUMBER)) == FIELDFLAG_BLOB) |
| #define | f_is_geom(x) (((x) & (FIELDFLAG_GEOM | FIELDFLAG_NUMBER)) == FIELDFLAG_GEOM) |
| #define | f_is_equ(x) ((x) & (1+2+FIELDFLAG_PACK+31*256)) |
| #define | f_settype(x) (((int) x) << FIELDFLAG_PACK_SHIFT) |
| #define | f_maybe_null(x) (x & FIELDFLAG_MAYBE_NULL) |
| #define | f_no_default(x) (x & FIELDFLAG_NO_DEFAULT) |
| #define | f_bit_as_char(x) ((x) & FIELDFLAG_TREAT_BIT_AS_CHAR) |
Functions | |
| void | field_conv (Field *to, Field *from) |
| uint | get_enum_pack_length (int elements) |
| uint | get_set_pack_length (int elements) |
| Field * | make_field (TABLE_SHARE *share, char *ptr, uint32 field_length, uchar *null_pos, uchar null_bit, uint pack_flag, enum_field_types field_type, CHARSET_INFO *cs, Field::geometry_type geom_type, Field::utype unireg_check, TYPELIB *interval, const char *field_name) |
| uint | pack_length_to_packflag (uint type) |
| enum_field_types | get_blob_type_from_length (ulong length) |
| uint32 | calc_pack_length (enum_field_types type, uint32 length) |
| int | set_field_to_null (Field *field) |
| int | set_field_to_null_with_conversions (Field *field, bool no_conversions) |
| #define DATETIME_DEC 6 |
Definition at line 28 of file field.h.
Referenced by Field_datetime::decimals(), Item_func_sec_to_time::fix_length_and_dec(), Item_func_from_unixtime::fix_length_and_dec(), Item_func_now::fix_length_and_dec(), and Item_func_curtime::fix_length_and_dec().
Definition at line 1602 of file field.h.
Referenced by create_field::create_length_to_internal_length(), make_empty_rec(), and make_field().
Definition at line 1600 of file field.h.
Referenced by create_virtual_tmp_table(), make_field(), and pack_header().
Definition at line 1599 of file field.h.
Referenced by pack_length_to_packflag(), and prepare_create_field().
| #define FIELDFLAG_BINARY 1 |
Definition at line 1561 of file field.h.
Referenced by create_myisam_tmp_table(), create_tmp_table(), key_cmp_if_same(), and prepare_create_field().
| #define FIELDFLAG_BITFIELD 512 |
| #define FIELDFLAG_BLOB 1024 |
| #define FIELDFLAG_DEC_SHIFT 8 |
Definition at line 1579 of file field.h.
Referenced by create_field::init_for_tmp_table(), and prepare_create_field().
| #define FIELDFLAG_DECIMAL 1 |
Definition at line 1560 of file field.h.
Referenced by create_field::init_for_tmp_table(), and prepare_create_field().
| #define FIELDFLAG_GEOM 2048 |
| #define FIELDFLAG_INTERVAL 256 |
| #define FIELDFLAG_MAX_DEC 31 |
| #define FIELDFLAG_MAYBE_NULL ((uint) 32768) |
Definition at line 1577 of file field.h.
Referenced by create_field::init_for_tmp_table(), and prepare_create_field().
| #define FIELDFLAG_NO_DEFAULT 16384 |
| #define FIELDFLAG_NUMBER 2 |
Definition at line 1562 of file field.h.
Referenced by create_field::init_for_tmp_table(), key_cmp_if_same(), mysql_prepare_table(), prepare_create_field(), and sp_prepare_create_field().
| #define FIELDFLAG_PACK 120 |
| #define FIELDFLAG_TREAT_BIT_AS_CHAR 4096 |
Definition at line 1570 of file field.h.
Referenced by mysql_prepare_table(), and sp_prepare_create_field().
| #define FIELDFLAG_ZEROFILL 4 |
| #define MTYP_TYPENR | ( | type | ) | (type & 127) |
Definition at line 1584 of file field.h.
Referenced by make_empty_rec(), mysql_alter_table(), and pack_header().
| uint32 calc_pack_length | ( | enum_field_types | type, | |
| uint32 | length | |||
| ) |
Definition at line 8853 of file field.cc.
References abort(), FIELD_TYPE_BIT, FIELD_TYPE_BLOB, FIELD_TYPE_DATE, FIELD_TYPE_DATETIME, FIELD_TYPE_DECIMAL, FIELD_TYPE_DOUBLE, FIELD_TYPE_ENUM, FIELD_TYPE_FLOAT, FIELD_TYPE_GEOMETRY, FIELD_TYPE_INT24, FIELD_TYPE_LONG, FIELD_TYPE_LONG_BLOB, FIELD_TYPE_LONGLONG, FIELD_TYPE_MEDIUM_BLOB, FIELD_TYPE_NEWDATE, FIELD_TYPE_NEWDECIMAL, FIELD_TYPE_NULL, FIELD_TYPE_SET, FIELD_TYPE_SHORT, FIELD_TYPE_TIME, FIELD_TYPE_TIMESTAMP, FIELD_TYPE_TINY, FIELD_TYPE_TINY_BLOB, FIELD_TYPE_YEAR, MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VARCHAR, and portable_sizeof_char_ptr.
08854 { 08855 switch (type) { 08856 case MYSQL_TYPE_VAR_STRING: 08857 case MYSQL_TYPE_STRING: 08858 case FIELD_TYPE_DECIMAL: return (length); 08859 case MYSQL_TYPE_VARCHAR: return (length + (length < 256 ? 1: 2)); 08860 case FIELD_TYPE_YEAR: 08861 case FIELD_TYPE_TINY : return 1; 08862 case FIELD_TYPE_SHORT : return 2; 08863 case FIELD_TYPE_INT24: 08864 case FIELD_TYPE_NEWDATE: 08865 case FIELD_TYPE_TIME: return 3; 08866 case FIELD_TYPE_TIMESTAMP: 08867 case FIELD_TYPE_DATE: 08868 case FIELD_TYPE_LONG : return 4; 08869 case FIELD_TYPE_FLOAT : return sizeof(float); 08870 case FIELD_TYPE_DOUBLE: return sizeof(double); 08871 case FIELD_TYPE_DATETIME: 08872 case FIELD_TYPE_LONGLONG: return 8; /* Don't crash if no longlong */ 08873 case FIELD_TYPE_NULL : return 0; 08874 case FIELD_TYPE_TINY_BLOB: return 1+portable_sizeof_char_ptr; 08875 case FIELD_TYPE_BLOB: return 2+portable_sizeof_char_ptr; 08876 case FIELD_TYPE_MEDIUM_BLOB: return 3+portable_sizeof_char_ptr; 08877 case FIELD_TYPE_LONG_BLOB: return 4+portable_sizeof_char_ptr; 08878 case FIELD_TYPE_GEOMETRY: return 4+portable_sizeof_char_ptr; 08879 case FIELD_TYPE_SET: 08880 case FIELD_TYPE_ENUM: 08881 case FIELD_TYPE_NEWDECIMAL: 08882 abort(); return 0; // This shouldn't happen 08883 case FIELD_TYPE_BIT: return length / 8; 08884 default: 08885 return 0; 08886 } 08887 }
Here is the call graph for this function:

Definition at line 642 of file field_conv.cc.
References DECIMAL_RESULT, FIELD_TYPE_BIT, FIELD_TYPE_BLOB, FIELD_TYPE_DATE, FIELD_TYPE_DATETIME, FIELD_TYPE_DECIMAL, FIELD_TYPE_ENUM, FIELD_TYPE_NEWDECIMAL, FIELD_TYPE_SET, from, MAX_FIELD_WIDTH, memcpy, MODE_INVALID_DATES, MODE_NO_ZERO_DATE, MODE_NO_ZERO_IN_DATE, MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR, REAL_RESULT, STRING_RESULT, test, to, and UNSIGNED_FLAG.
Referenced by Item_ref::save_in_field(), Item_field::save_in_field(), and Item_field::save_org_in_field().
00643 { 00644 if (to->real_type() == from->real_type() && 00645 !(to->type() == FIELD_TYPE_BLOB && to->table->copy_blobs)) 00646 { 00647 if (to->pack_length() == from->pack_length() && 00648 !(to->flags & UNSIGNED_FLAG && !(from->flags & UNSIGNED_FLAG)) && 00649 to->real_type() != FIELD_TYPE_ENUM && 00650 to->real_type() != FIELD_TYPE_SET && 00651 to->real_type() != FIELD_TYPE_BIT && 00652 (to->real_type() != FIELD_TYPE_NEWDECIMAL || 00653 (to->field_length == from->field_length && 00654 (((Field_num*)to)->dec == ((Field_num*)from)->dec))) && 00655 from->charset() == to->charset() && 00656 to->table->s->db_low_byte_first == from->table->s->db_low_byte_first && 00657 (!(to->table->in_use->variables.sql_mode & 00658 (MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE | MODE_INVALID_DATES)) || 00659 to->type() != FIELD_TYPE_DATE && 00660 to->type() != FIELD_TYPE_DATETIME) && 00661 (from->real_type() != MYSQL_TYPE_VARCHAR || 00662 ((Field_varstring*)from)->length_bytes == 00663 ((Field_varstring*)to)->length_bytes)) 00664 { // Identical fields 00665 #ifdef HAVE_purify 00666 /* This may happen if one does 'UPDATE ... SET x=x' */ 00667 if (to->ptr != from->ptr) 00668 #endif 00669 memcpy(to->ptr,from->ptr,to->pack_length()); 00670 return; 00671 } 00672 } 00673 if (to->type() == FIELD_TYPE_BLOB) 00674 { // Be sure the value is stored 00675 Field_blob *blob=(Field_blob*) to; 00676 from->val_str(&blob->value); 00677 /* 00678 Copy value if copy_blobs is set, or source is not a string and 00679 we have a pointer to its internal string conversion buffer. 00680 */ 00681 if (to->table->copy_blobs || 00682 (!blob->value.is_alloced() && 00683 from->real_type() != MYSQL_TYPE_STRING && 00684 from->real_type() != MYSQL_TYPE_VARCHAR)) 00685 blob->value.copy(); 00686 blob->store(blob->value.ptr(),blob->value.length(),from->charset()); 00687 return; 00688 } 00689 if ((from->result_type() == STRING_RESULT && 00690 (to->result_type() == STRING_RESULT || 00691 (from->real_type() != FIELD_TYPE_ENUM && 00692 from->real_type() != FIELD_TYPE_SET))) || 00693 to->type() == FIELD_TYPE_DECIMAL) 00694 { 00695 char buff[MAX_FIELD_WIDTH]; 00696 String result(buff,sizeof(buff),from->charset()); 00697 from->val_str(&result); 00698 /* 00699 We use c_ptr_quick() here to make it easier if to is a float/double 00700 as the conversion routines will do a copy of the result doesn't 00701 end with \0. Can be replaced with .ptr() when we have our own 00702 string->double conversion. 00703 */ 00704 to->store(result.c_ptr_quick(),result.length(),from->charset()); 00705 } 00706 else if (from->result_type() == REAL_RESULT) 00707 to->store(from->val_real()); 00708 else if (from->result_type() == DECIMAL_RESULT) 00709 { 00710 my_decimal buff; 00711 to->store_decimal(from->val_decimal(&buff)); 00712 } 00713 else 00714 to->store(from->val_int(), test(from->flags & UNSIGNED_FLAG)); 00715 }
Here is the caller graph for this function:

| enum_field_types get_blob_type_from_length | ( | ulong | length | ) |
Definition at line 8834 of file field.cc.
References FIELD_TYPE_BLOB, FIELD_TYPE_LONG_BLOB, FIELD_TYPE_MEDIUM_BLOB, and FIELD_TYPE_TINY_BLOB.
Referenced by prepare_blob_field().
08835 { 08836 enum_field_types type; 08837 if (length < 256) 08838 type= FIELD_TYPE_TINY_BLOB; 08839 else if (length < 65536) 08840 type= FIELD_TYPE_BLOB; 08841 else if (length < 256L*256L*256L) 08842 type= FIELD_TYPE_MEDIUM_BLOB; 08843 else 08844 type= FIELD_TYPE_LONG_BLOB; 08845 return type; 08846 }
Here is the caller graph for this function:

| uint get_enum_pack_length | ( | int | elements | ) | [inline] |
Definition at line 36 of file field.h.
Referenced by create_field::init(), and Item_type_holder::make_field_by_type().
Here is the caller graph for this function:

| uint get_set_pack_length | ( | int | elements | ) | [inline] |
Definition at line 41 of file field.h.
Referenced by create_field::init(), and Item_type_holder::make_field_by_type().
00042 { 00043 uint len= (elements + 7) / 8; 00044 return len > 4 ? 8 : len; 00045 }
Here is the caller graph for this function:

| Field* make_field | ( | TABLE_SHARE * | share, | |
| char * | ptr, | |||
| uint32 | field_length, | |||
| uchar * | null_pos, | |||
| uchar | null_bit, | |||
| uint | pack_flag, | |||
| enum_field_types | field_type, | |||
| CHARSET_INFO * | cs, | |||
| Field::geometry_type | geom_type, | |||
| Field::utype | unireg_check, | |||
| TYPELIB * | interval, | |||
| const char * | field_name | |||
| ) |
Definition at line 8903 of file field.cc.
References calc_pack_length(), f_bit_as_char, f_decimals, f_is_alpha, f_is_blob, f_is_dec, f_is_enum, f_is_geom, f_is_packed, f_is_zerofill, f_maybe_null, f_packtype, FIELD_TYPE_BIT, FIELD_TYPE_DATE, FIELD_TYPE_DATETIME, FIELD_TYPE_DECIMAL, FIELD_TYPE_DOUBLE, FIELD_TYPE_FLOAT, FIELD_TYPE_INT24, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG, FIELD_TYPE_NEWDATE, FIELD_TYPE_NEWDECIMAL, FIELD_TYPE_NULL, FIELD_TYPE_SHORT, FIELD_TYPE_TIME, FIELD_TYPE_TIMESTAMP, FIELD_TYPE_TINY, FIELD_TYPE_YEAR, HA_VARCHAR_PACKLENGTH, interval, LINT_INIT, MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING, and MYSQL_TYPE_VARCHAR.
Referenced by sp_head::create_result_field(), create_virtual_tmp_table(), and make_empty_rec().
08912 { 08913 uchar *bit_ptr; 08914 uchar bit_offset; 08915 LINT_INIT(bit_ptr); 08916 LINT_INIT(bit_offset); 08917 if (field_type == FIELD_TYPE_BIT && !f_bit_as_char(pack_flag)) 08918 { 08919 bit_ptr= null_pos; 08920 bit_offset= null_bit; 08921 if (f_maybe_null(pack_flag)) // if null field 08922 { 08923 bit_ptr+= (null_bit == 7); // shift bit_ptr and bit_offset 08924 bit_offset= (bit_offset + 1) & 7; 08925 } 08926 } 08927 08928 if (!f_maybe_null(pack_flag)) 08929 { 08930 null_pos=0; 08931 null_bit=0; 08932 } 08933 else 08934 { 08935 null_bit= ((uchar) 1) << null_bit; 08936 } 08937 08938 switch (field_type) { 08939 case FIELD_TYPE_DATE: 08940 case FIELD_TYPE_NEWDATE: 08941 case FIELD_TYPE_TIME: 08942 case FIELD_TYPE_DATETIME: 08943 case FIELD_TYPE_TIMESTAMP: 08944 field_charset= &my_charset_bin; 08945 default: break; 08946 } 08947 08948 if (f_is_alpha(pack_flag)) 08949 { 08950 if (!f_is_packed(pack_flag)) 08951 { 08952 if (field_type == MYSQL_TYPE_STRING || 08953 field_type == FIELD_TYPE_DECIMAL || // 3.23 or 4.0 string 08954 field_type == MYSQL_TYPE_VAR_STRING) 08955 return new Field_string(ptr,field_length,null_pos,null_bit, 08956 unireg_check, field_name, 08957 field_charset); 08958 if (field_type == MYSQL_TYPE_VARCHAR) 08959 return new Field_varstring(ptr,field_length, 08960 HA_VARCHAR_PACKLENGTH(field_length), 08961 null_pos,null_bit, 08962 unireg_check, field_name, 08963 share, 08964 field_charset); 08965 return 0; // Error 08966 } 08967 08968 uint pack_length=calc_pack_length((enum_field_types) 08969 f_packtype(pack_flag), 08970 field_length); 08971 08972 #ifdef HAVE_SPATIAL 08973 if (f_is_geom(pack_flag)) 08974 return new Field_geom(ptr,null_pos,null_bit, 08975 unireg_check, field_name, share, 08976 pack_length, geom_type); 08977 #endif 08978 if (f_is_blob(pack_flag)) 08979 return new Field_blob(ptr,null_pos,null_bit, 08980 unireg_check, field_name, share, 08981 pack_length, field_charset); 08982 if (interval) 08983 { 08984 if (f_is_enum(pack_flag)) 08985 return new Field_enum(ptr,field_length,null_pos,null_bit, 08986 unireg_check, field_name, 08987 pack_length, interval, field_charset); 08988 else 08989 return new Field_set(ptr,field_length,null_pos,null_bit, 08990 unireg_check, field_name, 08991 pack_length, interval, field_charset); 08992 } 08993 } 08994 08995 switch (field_type) { 08996 case FIELD_TYPE_DECIMAL: 08997 return new Field_decimal(ptr,field_length,null_pos,null_bit, 08998 unireg_check, field_name, 08999 f_decimals(pack_flag), 09000 f_is_zerofill(pack_flag) != 0, 09001 f_is_dec(pack_flag) == 0); 09002 case FIELD_TYPE_NEWDECIMAL: 09003 return new Field_new_decimal(ptr,field_length,null_pos,null_bit, 09004 unireg_check, field_name, 09005 f_decimals(pack_flag), 09006 f_is_zerofill(pack_flag) != 0, 09007 f_is_dec(pack_flag) == 0); 09008 case FIELD_TYPE_FLOAT: 09009 return new Field_float(ptr,field_length,null_pos,null_bit, 09010 unireg_check, field_name, 09011 f_decimals(pack_flag), 09012 f_is_zerofill(pack_flag) != 0, 09013 f_is_dec(pack_flag)== 0); 09014 case FIELD_TYPE_DOUBLE: 09015 return new Field_double(ptr,field_length,null_pos,null_bit, 09016 unireg_check, field_name, 09017 f_decimals(pack_flag), 09018 f_is_zerofill(pack_flag) != 0, 09019 f_is_dec(pack_flag)== 0); 09020 case FIELD_TYPE_TINY: 09021 return new Field_tiny(ptr,field_length,null_pos,null_bit, 09022 unireg_check, field_name, 09023 f_is_zerofill(pack_flag) != 0, 09024 f_is_dec(pack_flag) == 0); 09025 case FIELD_TYPE_SHORT: 09026 return new Field_short(ptr,field_length,null_pos,null_bit, 09027 unireg_check, field_name, 09028 f_is_zerofill(pack_flag) != 0, 09029 f_is_dec(pack_flag) == 0); 09030 case FIELD_TYPE_INT24: 09031 return new Field_medium(ptr,field_length,null_pos,null_bit, 09032 unireg_check, field_name, 09033 f_is_zerofill(pack_flag) != 0, 09034 f_is_dec(pack_flag) == 0); 09035 case FIELD_TYPE_LONG: 09036 return new Field_long(ptr,field_length,null_pos,null_bit, 09037 unireg_check, field_name, 09038 f_is_zerofill(pack_flag) != 0, 09039 f_is_dec(pack_flag) == 0); 09040 case FIELD_TYPE_LONGLONG: 09041 return new Field_longlong(ptr,field_length,null_pos,null_bit, 09042 unireg_check, field_name, 09043 f_is_zerofill(pack_flag) != 0, 09044 f_is_dec(pack_flag) == 0); 09045 case FIELD_TYPE_TIMESTAMP: 09046 return new Field_timestamp(ptr,field_length, null_pos, null_bit, 09047 unireg_check, field_name, share, 09048 field_charset); 09049 case FIELD_TYPE_YEAR: 09050 return new Field_year(ptr,field_length,null_pos,null_bit, 09051 unireg_check, field_name); 09052 case FIELD_TYPE_DATE: 09053 return new Field_date(ptr,null_pos,null_bit, 09054 unireg_check, field_name, field_charset); 09055 case FIELD_TYPE_NEWDATE: 09056 return new Field_newdate(ptr,null_pos,null_bit, 09057 unireg_check, field_name, field_charset); 09058 case FIELD_TYPE_TIME: 09059 return new Field_time(ptr,null_pos,null_bit, 09060 unireg_check, field_name, field_charset); 09061 case FIELD_TYPE_DATETIME: 09062 return new Field_datetime(ptr,null_pos,null_bit, 09063 unireg_check, field_name, field_charset); 09064 case FIELD_TYPE_NULL: 09065 return new Field_null(ptr, field_length, unireg_check, field_name, 09066 field_charset); 09067 case FIELD_TYPE_BIT: 09068 return f_bit_as_char(pack_flag) ? 09069 new Field_bit_as_char(ptr, field_length, null_pos, null_bit, 09070 unireg_check, field_name) : 09071 new Field_bit(ptr, field_length, null_pos, null_bit, bit_ptr, 09072 bit_offset, unireg_check, field_name); 09073 09074 default: // Impossible (Wrong version) 09075

