52 RecTableHasBlob= 0x10,
58 ,RecHasUserDefinedPartitioning = 0x40
81 IsDistributionKey= 0x20,
88 IsMysqldShrinkVarchar= 0x80,
90 IsMysqldBitfield= 0x100
128 Uint32 nullbit_byte_offset;
129 Uint32 nullbit_bit_in_byte;
131 bool get_var_length(
const char *row, Uint32& len)
const
133 if (flags & IsVar1ByteLen)
134 len= 1 + *((Uint8*)(row+offset));
135 else if (flags & IsVar2ByteLen)
136 len= 2 + uint2korr(row+offset);
139 return len <= maxSize;
141 bool is_null(
const char *row)
const
143 return (flags & IsNullable) &&
144 (row[nullbit_byte_offset] & (1 << nullbit_bit_in_byte));
148 STATIC_CONST( SHRINK_VARCHAR_BUFFSIZE= 256 );
155 bool shrink_varchar(
const char *row, Uint32& out_len,
char *
buf)
const
157 const char *p= row + offset;
158 Uint32 len= uint2korr(p);
159 if (len >= SHRINK_VARCHAR_BUFFSIZE || len >= maxSize)
164 buf[0]= (
unsigned char)len;
165 memcpy(buf+1, p+2, len);
175 void get_mysqld_bitfield(
const char *src_row,
char *dst_buffer)
const;
176 void put_mysqld_bitfield(
char *dst_row,
const char *src_buffer)
const;
191 Uint32 m_keyLenInWords;
193 Uint32 m_max_transid_ai_bytes;
211 const Uint32 *key_indexes;
213 Uint32 key_index_length;
222 const Uint32 *distkey_indexes;
224 Uint32 distkey_index_length;
234 Uint32 m_attrId_indexes_length;
243 Uint32 m_min_distkey_prefix_length;
246 struct Attr columns[1];
249 void copyMask(Uint32 *dst,
const unsigned char *src)
const;
252 void clearMask(Uint32 *dst)
const