~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_insert.cc

  • Committer: Monty Taylor
  • Date: 2009-04-25 06:33:32 UTC
  • mto: (997.2.5 mordred)
  • mto: This revision was merged to the branch mainline in revision 1003.
  • Revision ID: mordred@inaugust.com-20090425063332-7mwb7spok7yt6h1z
Moved myisam to new plugin system.

Show diffs side-by-side

added added

removed removed

Lines of Context:
128
128
        table->write_set->set(table->timestamp_field->field_index);
129
129
      }
130
130
    }
 
131
    /* Mark all virtual columns for write*/
 
132
    if (table->vfield)
 
133
      table->mark_virtual_columns();
131
134
  }
132
135
 
133
136
  return 0;
347
350
  {
348
351
    if (fields.elements || !value_count)
349
352
    {
350
 
      table->restoreRecordAsDefault();  // Get empty record
 
353
      restore_record(table,s->default_values);  // Get empty record
351
354
      if (fill_record(session, fields, *values, 0))
352
355
      {
353
356
        if (values_list.elements != 1 && ! session->is_error())
367
370
    else
368
371
    {
369
372
      if (session->used_tables)                 // Column used in values()
370
 
        table->restoreRecordAsDefault();        // Get empty record
 
373
        restore_record(table,s->default_values);        // Get empty record
371
374
      else
372
375
      {
373
376
        /*
810
813
          an error is returned
811
814
        */
812
815
        assert(table->insert_values != NULL);
813
 
        table->storeRecordAsInsert();
814
 
        table->restoreRecord();
 
816
        store_record(table,insert_values);
 
817
        restore_record(table,record[1]);
815
818
        assert(info->update_fields->elements ==
816
819
                    info->update_values->elements);
817
820
        if (fill_record(session, *info->update_fields,
1181
1184
    */
1182
1185
    table->file->ha_start_bulk_insert((ha_rows) 0);
1183
1186
  }
1184
 
  table->restoreRecordAsDefault();              // Get empty record
 
1187
  restore_record(table,s->default_values);              // Get empty record
1185
1188
  table->next_number_field=table->found_next_number_field;
1186
1189
 
1187
1190
  session->cuted_fields=0;
1276
1279
        originally touched by INSERT ... SELECT, so we have to restore
1277
1280
        their original values for the next row.
1278
1281
      */
1279
 
      table->restoreRecordAsDefault();
 
1282
      restore_record(table, s->default_values);
1280
1283
    }
1281
1284
    if (table->next_number_field)
1282
1285
    {
1459
1462
                                      DRIZZLE_LOCK **lock)
1460
1463
{
1461
1464
  Table tmp_table;              // Used during 'Create_field()'
1462
 
  TableShare share;
 
1465
  TABLE_SHARE share;
1463
1466
  Table *table= 0;
1464
1467
  uint32_t select_field_count= items->elements;
1465
1468
  /* Add selected items to field list */
1488
1491
  tmp_table.alias= 0;
1489
1492
  tmp_table.timestamp_field= 0;
1490
1493
  tmp_table.s= &share;
 
1494
  init_tmp_table_share(session, &share, "", 0, "", "");
1491
1495
 
1492
1496
  tmp_table.s->db_create_options=0;
1493
1497
  tmp_table.s->blob_ptr_size= portable_sizeof_char_ptr;
1669
1673
  table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET;
1670
1674
  table->next_number_field=table->found_next_number_field;
1671
1675
 
1672
 
  table->restoreRecordAsDefault();      // Get empty record
 
1676
  restore_record(table,s->default_values);      // Get empty record
1673
1677
  session->cuted_fields=0;
1674
1678
  if (info.ignore || info.handle_duplicates != DUP_ERROR)
1675
1679
    table->file->extra(HA_EXTRA_IGNORE_DUP_KEY);