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
9323e733
Commit
9323e733
authored
Oct 15, 2000
by
monty@tik.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed meaning of HA_EXTRA_RESET and start of hidden primary keys for BDB tables
parent
00625e0f
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
71 additions
and
42 deletions
+71
-42
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-26
heap/hp_extra.c
heap/hp_extra.c
+1
-0
include/my_base.h
include/my_base.h
+2
-1
isam/extra.c
isam/extra.c
+8
-0
isam/pack_isam.c
isam/pack_isam.c
+2
-2
merge/extra.c
merge/extra.c
+2
-2
myisam/mi_extra.c
myisam/mi_extra.c
+18
-0
myisam/myisampack.c
myisam/myisampack.c
+2
-2
myisammrg/myrg_extra.c
myisammrg/myrg_extra.c
+2
-2
sql/filesort.cc
sql/filesort.cc
+3
-1
sql/ha_berkeley.cc
sql/ha_berkeley.cc
+26
-5
sql/ha_berkeley.h
sql/ha_berkeley.h
+4
-1
No files found.
BitKeeper/etc/logging_ok
View file @
9323e733
bk@work.mysql.com
davida@work.mysql.com
jamppa@work.mysql.com
jcole@ham.spaceapes.com
jcole@jcole.burghcom.com
jcole@nslinux.bedford.progress.com
jcole@tetra.bedford.progress.com
jcole@tetra.spaceapes.com
matt@work.mysql.com
monty@donna.mysql.com
monty@work.mysql.com
mwagner@evoq.home.mwagner.org
nusphere@main.burghcom.com
paul@central.snake.net
paul@work.mysql.com
sasha@mysql.sashanet.com
sasha@work.mysql.com
serg@infomag.ape.relarn.ru
serg@serg.mysql.com
serg@work.mysql.com
sinisa@work.mysql.com
spurr@nslinux.bedford.progress.com
tim@localhost.polyesthetic.msg
tim@threads.polyesthetic.msg
tim@work.mysql.com
tonu@work.mysql.com
monty@tik.mysql.com
heap/hp_extra.c
View file @
9323e733
...
...
@@ -29,6 +29,7 @@ int heap_extra(register HP_INFO *info, enum ha_extra_function function)
switch
(
function
)
{
case
HA_EXTRA_RESET
:
case
HA_EXTRA_RESET_STATE
:
info
->
lastinx
=
-
1
;
info
->
current_record
=
(
ulong
)
~
0L
;
info
->
current_hash_ptr
=
0
;
...
...
include/my_base.h
View file @
9323e733
...
...
@@ -87,7 +87,8 @@ enum ha_extra_function {
HA_EXTRA_REINIT_CACHE
=
20
,
/* init cache from current record */
HA_EXTRA_FORCE_REOPEN
=
21
,
/* Datafile have changed on disk */
HA_EXTRA_FLUSH
,
/* Flush tables to disk */
HA_EXTRA_NO_ROWS
/* Don't write rows */
HA_EXTRA_NO_ROWS
,
/* Don't write rows */
HA_EXTRA_RESET_STATE
/* Reset positions */
};
/* The following is parameter to ha_panic() */
...
...
isam/extra.c
View file @
9323e733
...
...
@@ -36,6 +36,14 @@ int nisam_extra(N_INFO *info, enum ha_extra_function function)
switch
(
function
)
{
case
HA_EXTRA_RESET
:
if
(
info
->
opt_flag
&
(
READ_CACHE_USED
|
WRITE_CACHE_USED
))
{
info
->
opt_flag
&=
~
(
READ_CACHE_USED
|
WRITE_CACHE_USED
);
error
=
end_io_cache
(
&
info
->
rec_cache
);
}
info
->
opt_flag
&=
~
(
KEY_READ_USED
|
REMEMBER_OLD_POS
);
case
HA_EXTRA_RESET_STATE
:
info
->
lastinx
=
0
;
/* Use first index as def */
info
->
int_pos
=
info
->
lastpos
=
NI_POS_ERROR
;
info
->
page_changed
=
1
;
...
...
isam/pack_isam.c
View file @
9323e733
...
...
@@ -2012,8 +2012,8 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf)
{
isam_info
=
*
(
info
->
current
=
info
->
file
);
info
->
end
=
info
->
current
+
info
->
count
;
nisam_extra
(
isam_info
,
HA_EXTRA_CACHE
);
nisam_extra
(
isam_info
,
HA_EXTRA_RESET
);
nisam_extra
(
isam_info
,
HA_EXTRA_CACHE
);
filepos
=
isam_info
->
s
->
pack
.
header_length
;
}
else
...
...
@@ -2035,8 +2035,8 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf)
info
->
current
++
;
isam_info
=
*
info
->
current
;
filepos
=
isam_info
->
s
->
pack
.
header_length
;
nisam_extra
(
isam_info
,
HA_EXTRA_CACHE
);
nisam_extra
(
isam_info
,
HA_EXTRA_RESET
);
nisam_extra
(
isam_info
,
HA_EXTRA_CACHE
);
}
}
...
...
merge/extra.c
View file @
9323e733
...
...
@@ -32,9 +32,9 @@ enum ha_extra_function function;
info
->
cache_in_use
=
1
;
else
{
if
(
function
==
HA_EXTRA_NO_CACHE
)
if
(
function
==
HA_EXTRA_NO_CACHE
||
function
==
HA_EXTRA_RESET
)
info
->
cache_in_use
=
0
;
if
(
function
==
HA_EXTRA_RESET
)
if
(
function
==
HA_EXTRA_RESET
||
function
==
HA_EXTRA_RESET_STATE
)
{
info
->
current_table
=
0
;
info
->
last_used_table
=
info
->
open_tables
;
...
...
myisam/mi_extra.c
View file @
9323e733
...
...
@@ -37,6 +37,24 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function)
switch
(
function
)
{
case
HA_EXTRA_RESET
:
/*
Free buffers and reset the following flags:
EXTRA_CACHE, EXTRA_WRITE_CACHE, EXTRA_KEYREAD, EXTRA_QUICK
*/
if
(
info
->
opt_flag
&
(
READ_CACHE_USED
|
WRITE_CACHE_USED
))
{
info
->
opt_flag
&=
~
(
READ_CACHE_USED
|
WRITE_CACHE_USED
);
error
=
end_io_cache
(
&
info
->
rec_cache
);
}
#if defined(HAVE_MMAP) && defined(HAVE_MADVICE)
if
(
info
->
opt_flag
&
MEMMAP_USED
)
madvise
(
share
->
file_map
,
share
->
state
.
state
.
data_file_length
,
MADV_RANDOM
);
#endif
info
->
opt_flag
&=
~
(
KEY_READ_USED
|
REMEMBER_OLD_POS
);
info
->
quick_mode
=
0
;
/* Fall through */
case
HA_EXTRA_RESET_STATE
:
/* Reset state (don't free buffers) */
info
->
lastinx
=
0
;
/* Use first index as def */
info
->
last_search_keypage
=
info
->
lastpos
=
HA_OFFSET_ERROR
;
info
->
page_changed
=
1
;
...
...
myisam/myisampack.c
View file @
9323e733
...
...
@@ -2104,8 +2104,8 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf)
{
isam_info
=
*
(
info
->
current
=
info
->
file
);
info
->
end
=
info
->
current
+
info
->
count
;
mi_extra
(
isam_info
,
HA_EXTRA_CACHE
);
mi_extra
(
isam_info
,
HA_EXTRA_RESET
);
mi_extra
(
isam_info
,
HA_EXTRA_CACHE
);
filepos
=
isam_info
->
s
->
pack
.
header_length
;
}
else
...
...
@@ -2127,8 +2127,8 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf)
info
->
current
++
;
isam_info
=
*
info
->
current
;
filepos
=
isam_info
->
s
->
pack
.
header_length
;
mi_extra
(
isam_info
,
HA_EXTRA_CACHE
);
mi_extra
(
isam_info
,
HA_EXTRA_RESET
);
mi_extra
(
isam_info
,
HA_EXTRA_CACHE
);
}
}
...
...
myisammrg/myrg_extra.c
View file @
9323e733
...
...
@@ -31,9 +31,9 @@ int myrg_extra(MYRG_INFO *info,enum ha_extra_function function)
info
->
cache_in_use
=
1
;
else
{
if
(
function
==
HA_EXTRA_NO_CACHE
)
if
(
function
==
HA_EXTRA_NO_CACHE
||
function
==
HA_EXTRA_RESET
)
info
->
cache_in_use
=
0
;
if
(
function
==
HA_EXTRA_RESET
)
if
(
function
==
HA_EXTRA_RESET
||
function
==
HA_EXTRA_RESET_STATE
)
{
info
->
current_table
=
0
;
info
->
last_used_table
=
info
->
open_tables
;
...
...
sql/filesort.cc
View file @
9323e733
...
...
@@ -330,7 +330,9 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select,
next_pos
=
ref_pos
;
if
(
!
indexfile
&&
!
quick_select
)
{
file
->
reset
();
file
->
reset
();
// QQ; Shouldn't be needed
if
(
table
->
keyread
)
// QQ Can be removed after the reset
file
->
extra
(
HA_EXTRA_KEYREAD
);
// QQ is removed
next_pos
=
(
byte
*
)
0
;
/* Find records in sequence */
file
->
rnd_init
();
file
->
extra
(
HA_EXTRA_CACHE
);
/* Quicker reads */
...
...
sql/ha_berkeley.cc
View file @
9323e733
...
...
@@ -319,8 +319,14 @@ int ha_berkeley::open(const char *name, int mode, uint test_if_locked)
/* Open other keys */
bzero
((
char
*
)
key_file
,
sizeof
(
*
key_file
)
*
table
->
keys
);
key_used_on_scan
=
primary_key
=
table
->
primary_key
;
if
((
key_used_on_scan
=
primary_key
=
table
->
primary_key
)
<
MAX_KEY
)
key_file
[
primary_key
]
=
file
;
else
// No primary key
{
hidden_primary_key
=
1
;
if
(
!
share
->
primary_key_inited
)
update_auto_primary_key
();
}
bzero
((
char
*
)
&
current_row
,
sizeof
(
current_row
));
DB
**
ptr
=
key_file
;
...
...
@@ -1387,8 +1393,6 @@ static BDB_SHARE *get_share(const char *table_name)
if
((
share
=
(
BDB_SHARE
*
)
my_malloc
(
sizeof
(
*
share
)
+
length
+
1
,
MYF
(
MY_WME
|
MY_ZEROFILL
))))
{
// pthread_mutex_init(&share->mutex);
// pthread_cond_init(&share->cond);
share
->
table_name_length
=
length
;
share
->
table_name
=
(
char
*
)
(
share
+
1
);
strmov
(
share
->
table_name
,
table_name
);
...
...
@@ -1399,6 +1403,7 @@ static BDB_SHARE *get_share(const char *table_name)
return
0
;
}
thr_lock_init
(
&
share
->
lock
);
pthread_mutex_init
(
&
share
->
mutex
);
}
}
share
->
use_count
++
;
...
...
@@ -1413,10 +1418,26 @@ static void free_share(BDB_SHARE *share)
{
hash_delete
(
&
bdb_open_tables
,
(
gptr
)
share
);
thr_lock_delete
(
&
share
->
lock
);
//
pthread_mutex_destroy(&share->mutex);
pthread_mutex_destroy
(
&
share
->
mutex
);
my_free
((
gptr
)
share
,
MYF
(
0
));
}
pthread_mutex_unlock
(
&
bdb_mutex
);
}
void
ha_berkeley
::
update_auto_primary_key
()
{
(
void
)
extra
(
HA_EXTRA_KEYREAD
);
pthread_mutex_lock
(
&
share
->
mutex
);
if
(
!
share
->
primary_key_inited
)
{
index_init
(
primary_key
);
if
(
!
index_last
(
table
->
record
[
1
]))
share
->
auto_ident
=
current_ident
;
index_end
();
}
pthread_mutex_unlock
(
&
share
->
mutex
);
(
void
)
extra
(
HA_EXTRA_NO_KEYREAD
);
}
#endif
/* HAVE_BERKELEY_DB */
sql/ha_berkeley.h
View file @
9323e733
...
...
@@ -24,9 +24,12 @@
#include <db.h>
typedef
struct
st_berkeley_share
{
ulonglong
auto_ident
;
THR_LOCK
lock
;
pthread_mutex_t
mutex
;
char
*
table_name
;
uint
table_name_length
,
use_count
;
my_bool
inited
;
}
BDB_SHARE
;
class
ha_berkeley
:
public
handler
...
...
@@ -44,7 +47,7 @@ class ha_berkeley: public handler
ulong
int_option_flag
;
ulong
alloced_rec_buff_length
;
uint
primary_key
,
last_dup_key
;
bool
fixed_length_row
,
fixed_length_primary_key
;
bool
fixed_length_row
,
fixed_length_primary_key
,
hidden_primary_key
;
bool
fix_rec_buff_for_blob
(
ulong
length
);
ulong
max_row_length
(
const
byte
*
buf
);
...
...
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