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
5ce8b773
Commit
5ce8b773
authored
Nov 15, 2002
by
ram@mysql.r18.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge rkalimullin@work.mysql.com:/home/bk/mysql-4.1
into mysql.r18.ru:/usr/home/ram/mysql-4.1.bdb
parents
72f36713
7d6ffa8e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
17 deletions
+21
-17
heap/heapdef.h
heap/heapdef.h
+2
-1
heap/hp_hash.c
heap/hp_hash.c
+17
-12
heap/hp_rkey.c
heap/hp_rkey.c
+2
-4
No files found.
heap/heapdef.h
View file @
5ce8b773
...
...
@@ -97,7 +97,8 @@ extern uint hp_rb_null_key_length(HP_KEYDEF *keydef, const byte *key);
extern
my_bool
hp_if_null_in_key
(
HP_KEYDEF
*
keyinfo
,
const
byte
*
record
);
extern
int
hp_close
(
register
HP_INFO
*
info
);
extern
void
hp_clear
(
HP_SHARE
*
info
);
extern
uint
hp_rb_pack_key
(
HP_KEYDEF
*
keydef
,
uchar
*
key
,
const
uchar
*
old
);
extern
uint
hp_rb_pack_key
(
HP_KEYDEF
*
keydef
,
uchar
*
key
,
const
uchar
*
old
,
uint
k_len
);
#ifdef THREAD
extern
pthread_mutex_t
THR_LOCK_heap
;
#else
...
...
heap/hp_hash.c
View file @
5ce8b773
...
...
@@ -30,27 +30,27 @@ ha_rows hp_rb_records_in_range(HP_INFO *info, int inx, const byte *start_key,
TREE
*
rb_tree
=
&
keyinfo
->
rb_tree
;
heap_rb_param
custom_arg
;
info
->
lastinx
=
inx
;
custom_arg
.
keyseg
=
keyinfo
->
seg
;
custom_arg
.
search_flag
=
SEARCH_FIND
|
SEARCH_SAME
;
custom_arg
.
key_length
=
start_key_len
;
info
->
lastinx
=
inx
;
custom_arg
.
keyseg
=
keyinfo
->
seg
;
custom_arg
.
search_flag
=
SEARCH_FIND
|
SEARCH_SAME
;
if
(
start_key
)
{
hp_rb_pack_key
(
keyinfo
,
info
->
recbuf
,
start_key
);
custom_arg
.
key_length
=
hp_rb_pack_key
(
keyinfo
,
info
->
recbuf
,
start_key
,
start_key_len
);
start_pos
=
tree_record_pos
(
rb_tree
,
info
->
recbuf
,
start_search_flag
,
&
custom_arg
);
&
custom_arg
);
}
else
{
start_pos
=
0
;
}
custom_arg
.
key_length
=
end_key_len
;
if
(
end_key
)
{
hp_rb_pack_key
(
keyinfo
,
info
->
recbuf
,
end_key
);
custom_arg
.
key_length
=
hp_rb_pack_key
(
keyinfo
,
info
->
recbuf
,
end_key
,
end_key_len
);
end_pos
=
tree_record_pos
(
rb_tree
,
info
->
recbuf
,
end_search_flag
,
&
custom_arg
);
&
custom_arg
);
}
else
{
...
...
@@ -450,21 +450,26 @@ uint hp_rb_make_key(HP_KEYDEF *keydef, byte *key,
return
key
-
start_key
;
}
uint
hp_rb_pack_key
(
HP_KEYDEF
*
keydef
,
uchar
*
key
,
const
uchar
*
old
)
uint
hp_rb_pack_key
(
HP_KEYDEF
*
keydef
,
uchar
*
key
,
const
uchar
*
old
,
uint
k_len
)
{
HA_KEYSEG
*
seg
,
*
endseg
;
uchar
*
start_key
=
key
;
for
(
seg
=
keydef
->
seg
,
endseg
=
seg
+
keydef
->
keysegs
;
seg
<
endseg
;
old
+=
seg
->
length
,
seg
++
)
for
(
seg
=
keydef
->
seg
,
endseg
=
seg
+
keydef
->
keysegs
;
seg
<
endseg
&&
(
int
)
k_len
>
0
;
old
+=
seg
->
length
,
seg
++
)
{
if
(
seg
->
null_bit
)
{
k_len
--
;
if
(
!
(
*
key
++=
(
char
)
1
-
*
old
++
))
{
k_len
-=
seg
->
length
;
continue
;
}
}
memcpy
((
byte
*
)
key
,
old
,
seg
->
length
);
key
+=
seg
->
length
;
k_len
-=
seg
->
length
;
}
return
key
-
start_key
;
}
...
...
heap/hp_rkey.c
View file @
5ce8b773
...
...
@@ -36,10 +36,9 @@ int heap_rkey(HP_INFO *info, byte *record, int inx, const byte *key,
{
heap_rb_param
custom_arg
;
hp_rb_pack_key
(
keyinfo
,
info
->
recbuf
,
key
);
custom_arg
.
keyseg
=
info
->
s
->
keydef
[
inx
].
seg
;
custom_arg
.
key_length
=
key_len
;
custom_arg
.
key_length
=
info
->
lastkey_len
=
hp_rb_pack_key
(
keyinfo
,
info
->
recbuf
,
key
,
key_len
);
custom_arg
.
search_flag
=
SEARCH_FIND
|
SEARCH_SAME
;
/* for next rkey() after deletion */
if
(
find_flag
==
HA_READ_AFTER_KEY
)
...
...
@@ -48,7 +47,6 @@ int heap_rkey(HP_INFO *info, byte *record, int inx, const byte *key,
info
->
last_find_flag
=
HA_READ_KEY_OR_PREV
;
else
info
->
last_find_flag
=
find_flag
;
info
->
lastkey_len
=
key_len
;
if
(
!
(
pos
=
tree_search_key
(
&
keyinfo
->
rb_tree
,
info
->
recbuf
,
info
->
parents
,
&
info
->
last_pos
,
find_flag
,
&
custom_arg
)))
{
...
...
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