~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field/blob.cc

  • Committer: Stewart Smith
  • Date: 2010-07-27 00:49:32 UTC
  • mto: (1720.1.1 drizzle)
  • mto: This revision was merged to the branch mainline in revision 1721.
  • Revision ID: stewart@flamingspork.com-20100727004932-basq3vx9szmmbswm
fix storing and manipulating foreign keys in the proto around ALTER TABLE, CREATE TABLE and ALTER TABLE ADD/DROP FOREIGN KEY. We also (mostly) emulate the naming of innodb foreign keys in the upper layer.

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
{
64
64
  flags|= BLOB_FLAG;
65
65
  share->blob_fields++;
66
 
  /* TODO: why do not fill table->s->blob_field array here? */
 
66
  /* TODO: why do not fill table->getShare()->blob_field array here? */
67
67
}
68
68
 
69
69
void Field_blob::store_length(unsigned char *i_ptr,
107
107
void Field_blob::store_length(unsigned char *i_ptr, uint32_t i_packlength,
108
108
                  uint32_t i_number)
109
109
{
110
 
  store_length(i_ptr, i_packlength, i_number, table->s->db_low_byte_first);
 
110
  store_length(i_ptr, i_packlength, i_number, getTable()->getShare()->db_low_byte_first);
111
111
}
112
112
 
113
113
 
160
160
uint32_t Field_blob::get_length(uint32_t row_offset)
161
161
{
162
162
  return get_length(ptr+row_offset, this->packlength,
163
 
                    table->s->db_low_byte_first);
 
163
                    getTable()->getShare()->db_low_byte_first);
164
164
}
165
165
 
166
166
 
167
167
uint32_t Field_blob::get_length(const unsigned char *ptr_arg)
168
168
{
169
 
  return get_length(ptr_arg, this->packlength, table->s->db_low_byte_first);
 
169
  return get_length(ptr_arg, this->packlength, getTable()->getShare()->db_low_byte_first);
170
170
}
171
171
 
172
172
 
531
531
 
532
532
uint32_t Field_blob::pack_length() const
533
533
{
534
 
  return (uint32_t) (packlength+table->s->blob_ptr_size);
 
534
  return (uint32_t) (packlength + getTable()->getShare()->blob_ptr_size);
535
535
}
536
536
 
537
537
void Field_blob::sql_type(String &res) const
594
594
  uint32_t const master_packlength=
595
595
    param_data > 0 ? param_data & 0xFF : packlength;
596
596
  uint32_t const length= get_length(from, master_packlength, low_byte_first);
597
 
  table->setWriteSet(field_index);
 
597
  getTable()->setWriteSet(field_index);
598
598
  store(reinterpret_cast<const char*>(from) + master_packlength,
599
599
        length, field_charset);
600
600
  return(from + master_packlength + length);