~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table.cc

  • Committer: Brian Aker
  • Date: 2009-10-16 10:27:33 UTC
  • mfrom: (1183.1.4 merge)
  • Revision ID: brian@gaz-20091016102733-b10po5oup0hjlilh
MergeĀ EngineĀ changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
277
277
                                TableShare *share)
278
278
{
279
279
  int error= 0;
280
 
  handler *handler_file= NULL;
 
280
  Cursor *handler_file= NULL;
281
281
 
282
282
  share->setTableProto(new(nothrow) message::Table(table));
283
283
 
850
850
    memset(&temp_table, 0, sizeof(temp_table));
851
851
    temp_table.s= share;
852
852
    temp_table.in_use= session;
853
 
    temp_table.s->db_low_byte_first= 1; //handler->low_byte_first();
 
853
    temp_table.s->db_low_byte_first= 1; //Cursor->low_byte_first();
854
854
    temp_table.s->blob_ptr_size= portable_sizeof_char_ptr;
855
855
 
856
856
    Field* f= make_field(share,
962
962
  free(field_offsets);
963
963
  free(field_pack_length);
964
964
 
965
 
  if (! (handler_file= plugin::StorageEngine::getNewHandler(share,
966
 
                                                            session->mem_root,
967
 
                                                            share->db_type())))
 
965
  if (! (handler_file= share->db_type()->getCursor(share, session->mem_root)))
968
966
    abort(); // FIXME
969
967
 
970
968
  /* Fix key stuff */
1177
1175
 
1178
1176
  SYNOPSIS
1179
1177
  open_table_def()
1180
 
  session               Thread handler
 
1178
  session               Thread Cursor
1181
1179
  share         Fill this with table definition
1182
1180
 
1183
1181
  NOTES
1249
1247
 
1250
1248
  SYNOPSIS
1251
1249
    open_table_from_share()
1252
 
    session                     Thread handler
 
1250
    session                     Thread Cursor
1253
1251
    share               Table definition
1254
1252
    alias               Alias for table
1255
1253
    db_stat             open flags (for example HA_OPEN_KEYFILE|
1292
1290
  if (!(outparam->alias= strdup(alias)))
1293
1291
    goto err;
1294
1292
 
1295
 
  /* Allocate handler */
 
1293
  /* Allocate Cursor */
1296
1294
  if (!(prgflag & OPEN_FRM_FILE_ONLY))
1297
1295
  {
1298
 
    if (!(outparam->file= plugin::StorageEngine::getNewHandler(share, &outparam->mem_root,
1299
 
                                          share->db_type())))
 
1296
    if (!(outparam->file= share->db_type()->getCursor(share, &outparam->mem_root)))
1300
1297
      goto err;
1301
1298
  }
1302
1299
  else
1565
1562
    break;
1566
1563
  case 2:
1567
1564
  {
1568
 
    handler *file= 0;
 
1565
    Cursor *file= 0;
1569
1566
    const char *datext= "";
1570
1567
 
1571
1568
    if (db_type() != NULL)
1572
1569
    {
1573
 
      if ((file= plugin::StorageEngine::getNewHandler(this, current_session->mem_root,
1574
 
                                 db_type())))
 
1570
      if ((file= db_type()->getCursor(this, current_session->mem_root)))
1575
1571
      {
1576
1572
        if (!(datext= *db_type()->bas_ext()))
1577
1573
          datext= "";
1906
1902
 
1907
1903
 
1908
1904
/*
1909
 
  Tell handler we are going to call position() and rnd_pos() later.
 
1905
  Tell Cursor we are going to call position() and rnd_pos() later.
1910
1906
 
1911
1907
  NOTES:
1912
1908
  This is needed for handlers that uses the primary key to find the
2032
2028
void Table::mark_columns_needed_for_delete()
2033
2029
{
2034
2030
  /*
2035
 
    If the handler has no cursor capabilites, or we have row-based
 
2031
    If the Cursor has no cursor capabilites, or we have row-based
2036
2032
    replication active for the current statement, we have to read
2037
2033
    either the primary key, the hidden primary key or all columns to
2038
2034
    be able to do an delete
2081
2077
void Table::mark_columns_needed_for_update()
2082
2078
{
2083
2079
  /*
2084
 
    If the handler has no cursor capabilites, or we have row-based
 
2080
    If the Cursor has no cursor capabilites, or we have row-based
2085
2081
    logging active for the current statement, we have to read either
2086
2082
    the primary key, the hidden primary key or all columns to be
2087
2083
    able to do an update
2111
2107
 
2112
2108
 
2113
2109
/*
2114
 
  Mark columns the handler needs for doing an insert
 
2110
  Mark columns the Cursor needs for doing an insert
2115
2111
 
2116
2112
  For now, this is used to mark fields used by the trigger
2117
2113
  as changed.
2152
2148
/**
2153
2149
  Create field for temporary table from given field.
2154
2150
 
2155
 
  @param session               Thread handler
 
2151
  @param session               Thread Cursor
2156
2152
  @param org_field    field from which new field will be created
2157
2153
  @param name         New field name
2158
2154
  @param table         Temporary table
2213
2209
/**
2214
2210
  Create field for information schema table.
2215
2211
 
2216
 
  @param session                Thread handler
 
2212
  @param session                Thread Cursor
2217
2213
  @param table          Temporary table
2218
2214
  @param item           Item to create a field for
2219
2215
 
2579
2575
      OPTION_BIG_TABLES || (select_options & TMP_TABLE_FORCE_MYISAM))
2580
2576
  {
2581
2577
    share->storage_engine= myisam_engine;
2582
 
    table->file= plugin::StorageEngine::getNewHandler(share, &table->mem_root,
2583
 
                                 share->db_type());
 
2578
    table->file= share->db_type()->getCursor(share, &table->mem_root);
2584
2579
    if (group &&
2585
2580
        (param->group_parts > table->file->max_key_parts() ||
2586
2581
         param->group_length > table->file->max_key_length()))
2589
2584
  else
2590
2585
  {
2591
2586
    share->storage_engine= heap_engine;
2592
 
    table->file= plugin::StorageEngine::getNewHandler(share, &table->mem_root,
2593
 
                                 share->db_type());
 
2587
    table->file= share->db_type()->getCursor(share, &table->mem_root);
2594
2588
  }
2595
2589
  if (!table->file)
2596
2590
    goto err;
2940
2934
  Create a reduced Table object with properly set up Field list from a
2941
2935
  list of field definitions.
2942
2936
 
2943
 
    The created table doesn't have a table handler associated with
 
2937
    The created table doesn't have a table Cursor associated with
2944
2938
    it, has no keys, no group/distinct, no copy_funcs array.
2945
2939
    The sole purpose of this Table object is to use the power of Field
2946
2940
    class to read/write data to/from table->record[0]. Then one can store
3278
3272
  share= *table->s;
3279
3273
  new_table.s= &share;
3280
3274
  new_table.s->storage_engine= myisam_engine;
3281
 
  if (!(new_table.file= plugin::StorageEngine::getNewHandler(&share, &new_table.mem_root,
3282
 
                                        new_table.s->db_type())))
 
3275
  if (!(new_table.file= new_table.s->db_type()->getCursor(&share, &new_table.mem_root)))
3283
3276
    return true;                                // End of memory
3284
3277
 
3285
3278
  save_proc_info=session->get_proc_info();
3488
3481
  Returns -1 if row was not found, 0 if row was found and 1 on errors
3489
3482
*****************************************************************************/
3490
3483
 
3491
 
/** Help function when we get some an error from the table handler. */
 
3484
/** Help function when we get some an error from the table Cursor. */
3492
3485
 
3493
3486
int Table::report_error(int error)
3494
3487
{