~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/handler/ha_innodb.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:
49
49
 
50
50
***********************************************************************/
51
51
 
52
 
/* TODO list for the InnoDB handler in 5.0:
 
52
/* TODO list for the InnoDB Cursor in 5.0:
53
53
  - Remove the flag trx->active_trans and look at trx->conc_state
54
54
  - fix savepoint functions to use savepoint storage area
55
55
  - Find out what kind of problems the OS X case-insensitivity causes to
306
306
                        /* out: 0 or error number */
307
307
        XID     *xid);  /* in: X/Open XA transaction identification */
308
308
 
309
 
  virtual handler *create(TableShare *table,
 
309
  virtual Cursor *create(TableShare *table,
310
310
                          MEM_ROOT *mem_root)
311
311
  {
312
312
    return new (mem_root) ha_innobase(this, table);
590
590
srv_conc_force_exit_innodb().
591
591
 
592
592
DRIZZLE: Note, we didn't change this name to avoid more ifdef forking 
593
 
         in non-handler code.
 
593
         in non-Cursor code.
594
594
@return true if session is the replication thread */
595
595
extern "C" UNIV_INTERN
596
596
ibool
664
664
rolling back transactions that have edited non-transactional tables.
665
665
 
666
666
DRIZZLE: Note, we didn't change this name to avoid more ifdef forking 
667
 
         in non-handler code.
 
667
         in non-Cursor code.
668
668
@return true if non-transactional tables have been edited */
669
669
extern "C" UNIV_INTERN
670
670
ibool
731
731
/********************************************************************//**
732
732
Call this function when mysqld passes control to the client. That is to
733
733
avoid deadlocks on the adaptive hash S-latch possibly held by session. For more
734
 
documentation, see handler.cc.
 
734
documentation, see Cursor.cc.
735
735
@return 0 */
736
736
int
737
737
InnobaseEngine::release_temporary_latches(
900
900
after you release the kernel_mutex.
901
901
 
902
902
DRIZZLE: Note, we didn't change this name to avoid more ifdef forking 
903
 
         in non-handler code.
 
903
         in non-Cursor code.
904
904
 */
905
905
extern "C" UNIV_INTERN
906
906
void
918
918
released before this function is invoked. 
919
919
 
920
920
DRIZZLE: Note, we didn't change this name to avoid more ifdef forking 
921
 
         in non-handler code.
 
921
         in non-Cursor code.
922
922
*/
923
923
extern "C" UNIV_INTERN
924
924
void
1283
1283
}
1284
1284
 
1285
1285
/*********************************************************************//**
1286
 
Allocates an InnoDB transaction for a MySQL handler object.
 
1286
Allocates an InnoDB transaction for a MySQL Cursor object.
1287
1287
@return InnoDB transaction handle */
1288
1288
extern "C" UNIV_INTERN
1289
1289
trx_t*
1307
1307
}
1308
1308
 
1309
1309
/*********************************************************************//**
1310
 
Gets the InnoDB transaction handle for a MySQL handler object, creates
 
1310
Gets the InnoDB transaction handle for a MySQL Cursor object, creates
1311
1311
an InnoDB transaction struct if the corresponding MySQL thread struct still
1312
1312
lacks one.
1313
1313
@return InnoDB transaction handle */
1335
1335
 
1336
1336
 
1337
1337
/*********************************************************************//**
1338
 
Construct ha_innobase handler. */
 
1338
Construct ha_innobase Cursor. */
1339
1339
UNIV_INTERN
1340
1340
ha_innobase::ha_innobase(drizzled::plugin::StorageEngine *engine_arg,
1341
1341
                         TableShare *table_arg)
1342
 
  :handler(engine_arg, table_arg),
 
1342
  :Cursor(engine_arg, table_arg),
1343
1343
  int_table_flags(HA_REC_NOT_IN_SEQ |
1344
1344
                  HA_NULL_IN_KEY |
1345
1345
                  HA_CAN_INDEX_BLOBS |
1357
1357
{}
1358
1358
 
1359
1359
/*********************************************************************//**
1360
 
Destruct ha_innobase handler. */
 
1360
Destruct ha_innobase Cursor. */
1361
1361
UNIV_INTERN
1362
1362
ha_innobase::~ha_innobase()
1363
1363
{
2487
2487
Get the table flags to use for the statement.
2488
2488
@return table flags */
2489
2489
UNIV_INTERN
2490
 
handler::Table_flags
 
2490
Cursor::Table_flags
2491
2491
ha_innobase::table_flags() const
2492
2492
/*============================*/
2493
2493
{
4363
4363
        return;
4364
4364
}
4365
4365
 
4366
 
/* See handler.h and row0mysql.h for docs on this function. */
 
4366
/* See Cursor.h and row0mysql.h for docs on this function. */
4367
4367
UNIV_INTERN
4368
4368
bool
4369
4369
ha_innobase::was_semi_consistent_read(void)
4372
4372
        return(prebuilt->row_read_type == ROW_READ_DID_SEMI_CONSISTENT);
4373
4373
}
4374
4374
 
4375
 
/* See handler.h and row0mysql.h for docs on this function. */
 
4375
/* See Cursor.h and row0mysql.h for docs on this function. */
4376
4376
UNIV_INTERN
4377
4377
void
4378
4378
ha_innobase::try_semi_consistent_read(bool yes)
4513
4513
 (b) we also release possible 'SQL statement level resources' InnoDB may
4514
4514
have for this SQL statement. The MySQL interpreter does NOT execute
4515
4515
autocommit for pure read transactions, though it should. That is why the
4516
 
table handler in that case has to execute the COMMIT in ::external_lock.
 
4516
table Cursor in that case has to execute the COMMIT in ::external_lock.
4517
4517
 
4518
4518
  B) If the user has explicitly set MySQL table level locks, then MySQL
4519
4519
does NOT call ::external_lock at the start of the statement. To determine
6378
6378
 
6379
6379
        if (index != table->s->primary_key) {
6380
6380
                /* Not clustered */
6381
 
                return(handler::read_time(index, ranges, rows));
 
6381
                return(Cursor::read_time(index, ranges, rows));
6382
6382
        }
6383
6383
 
6384
6384
        if (rows <= 2) {
7057
7057
}
7058
7058
 
7059
7059
/*******************************************************************//**
7060
 
Tells something additional to the handler about how to do things.
 
7060
Tells something additional to the Cursor about how to do things.
7061
7061
@return 0 or error number */
7062
7062
UNIV_INTERN
7063
7063
int
8055
8055
        return(0);
8056
8056
}
8057
8057
 
8058
 
/* See comment in handler.cc */
 
8058
/* See comment in Cursor.cc */
8059
8059
UNIV_INTERN
8060
8060
bool
8061
8061
ha_innobase::get_error_message(int, String *buf)
9099
9099
  int res;
9100
9100
  //if (!eq_range_arg)
9101
9101
    //in_range_read= TRUE;
9102
 
  res= handler::read_range_first(start_key, end_key, eq_range_arg, sorted);
 
9102
  res= Cursor::read_range_first(start_key, end_key, eq_range_arg, sorted);
9103
9103
  //if (res)
9104
9104
  //  in_range_read= FALSE;
9105
9105
  return res;
9108
9108
 
9109
9109
int ha_innobase::read_range_next()
9110
9110
{
9111
 
  int res= handler::read_range_next();
 
9111
  int res= Cursor::read_range_next();
9112
9112
  //if (res)
9113
9113
  //  in_range_read= FALSE;
9114
9114
  return res;