Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
7cbe8b36
Commit
7cbe8b36
authored
Aug 12, 2002
by
serg@sergbook.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
put InnoDB HANDLER patch back again :))
parent
efe85086
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
0 deletions
+74
-0
innobase/include/trx0trx.h
innobase/include/trx0trx.h
+7
-0
innobase/trx/trx0trx.c
innobase/trx/trx0trx.c
+11
-0
sql/ha_innobase.cc
sql/ha_innobase.cc
+55
-0
sql/ha_innobase.h
sql/ha_innobase.h
+1
-0
No files found.
innobase/include/trx0trx.h
View file @
7cbe8b36
...
@@ -117,6 +117,13 @@ void
...
@@ -117,6 +117,13 @@ void
trx_start_if_not_started
(
trx_start_if_not_started
(
/*=====================*/
/*=====================*/
trx_t
*
trx
);
/* in: transaction */
trx_t
*
trx
);
/* in: transaction */
/*****************************************************************
Starts the transaction if it is not yet started. */
void
trx_start_if_not_started_noninline
(
/*===============================*/
trx_t
*
trx
);
/* in: transaction */
/********************************************************************
/********************************************************************
Commits a transaction. */
Commits a transaction. */
...
...
innobase/trx/trx0trx.c
View file @
7cbe8b36
...
@@ -39,6 +39,17 @@ sess_t* trx_dummy_sess = NULL;
...
@@ -39,6 +39,17 @@ sess_t* trx_dummy_sess = NULL;
the kernel mutex */
the kernel mutex */
ulint
trx_n_mysql_transactions
=
0
;
ulint
trx_n_mysql_transactions
=
0
;
/*****************************************************************
Starts the transaction if it is not yet started. */
void
trx_start_if_not_started_noninline
(
/*===============================*/
trx_t
*
trx
)
/* in: transaction */
{
trx_start_if_not_started
(
trx
);
}
/********************************************************************
/********************************************************************
Retrieves the error_info field from a trx. */
Retrieves the error_info field from a trx. */
...
...
sql/ha_innobase.cc
View file @
7cbe8b36
...
@@ -398,6 +398,61 @@ ha_innobase::update_thd(
...
@@ -398,6 +398,61 @@ ha_innobase::update_thd(
return
(
0
);
return
(
0
);
}
}
/*********************************************************************
Call this when you have opened a new table handle in HANDLER, before you
call index_read_idx() etc. Actually, we can let the cursor stay open even
over a transaction commit! Then you should call this before every operation,
fecth next etc. This function inits the necessary things even after a
transaction commit. */
/* TODO: THIS CODE HAS NOT BEEN TESTED!!! */
void
ha_innobase
::
init_table_handle_for_HANDLER
(
void
)
/*============================================*/
{
row_prebuilt_t
*
prebuilt
;
/* If current thd does not yet have a trx struct, create one.
If the current handle does not yet have a prebuilt struct, create
one. Update the trx pointers in the prebuilt struct. Normally
this operation is done in external_lock. */
update_thd
(
current_thd
);
/* Initialize the prebuilt struct much like it would be inited in
external_lock */
prebuilt
=
(
row_prebuilt_t
*
)
innobase_prebuilt
;
/* If the transaction is not started yet, start it */
trx_start_if_not_started_noninline
(
prebuilt
->
trx
);
/* Assign a read view if the transaction does not have it yet */
trx_assign_read_view
(
prebuilt
->
trx
);
/* We did the necessary inits in this function, no need to repeat them
in row_search_for_mysql */
prebuilt
->
sql_stat_start
=
FALSE
;
/* We let HANDLER always to do the reads as consistent reads, even
if the trx isolation level would have been specified as SERIALIZABLE */
prebuilt
->
select_lock_type
=
LOCK_NONE
;
/* Always fetch all columns in the index record */
prebuilt
->
hint_no_need_to_fetch_extra_cols
=
FALSE
;
/* We want always to fetch all columns in the whole row? Or do
we???? */
prebuilt
->
read_just_key
=
FALSE
;
}
/*************************************************************************
/*************************************************************************
Opens an InnoDB database. */
Opens an InnoDB database. */
...
...
sql/ha_innobase.h
View file @
7cbe8b36
...
@@ -157,6 +157,7 @@ class ha_innobase: public handler
...
@@ -157,6 +157,7 @@ class ha_innobase: public handler
void
free_foreign_key_create_info
(
char
*
str
);
void
free_foreign_key_create_info
(
char
*
str
);
THR_LOCK_DATA
**
store_lock
(
THD
*
thd
,
THR_LOCK_DATA
**
to
,
THR_LOCK_DATA
**
store_lock
(
THD
*
thd
,
THR_LOCK_DATA
**
to
,
enum
thr_lock_type
lock_type
);
enum
thr_lock_type
lock_type
);
void
init_table_handle_for_HANDLER
();
/* TODO: NOT TESTED!!! */
longlong
get_auto_increment
();
longlong
get_auto_increment
();
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment