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
2ed2594c
Commit
2ed2594c
authored
Oct 25, 2002
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/home/bk/mysql-4.1
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.1
parents
440db4c1
b0542bd9
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
37 additions
and
20 deletions
+37
-20
.bzrignore
.bzrignore
+8
-0
include/my_base.h
include/my_base.h
+13
-12
isam/_search.c
isam/_search.c
+1
-1
isam/static.c
isam/static.c
+1
-1
myisam/mi_search.c
myisam/mi_search.c
+1
-1
myisam/mi_static.c
myisam/mi_static.c
+2
-2
sql/opt_range.cc
sql/opt_range.cc
+10
-2
sql/sql_handler.cc
sql/sql_handler.cc
+1
-1
No files found.
.bzrignore
View file @
2ed2594c
...
...
@@ -505,3 +505,11 @@ vio/test-sslserver
vio/viotest-ssl
sql_error.cc
sql_prepare.cc
autom4te.cache/*
innobase/autom4te.cache/*
configure.lineno
innobase/configure.lineno
innobase/stamp-h1
myisam/rt_test.MYD
myisam/rt_test.MYI
stamp-h1
include/my_base.h
View file @
2ed2594c
...
...
@@ -50,13 +50,14 @@
/* The following is parameter to ha_rkey() how to use key */
enum
ha_rkey_function
{
HA_READ_KEY_EXACT
,
/* Find first record else error */
HA_READ_KEY_OR_NEXT
,
/* Record or next record */
HA_READ_KEY_OR_PREV
,
/* Record or previous */
HA_READ_AFTER_KEY
,
/* Find next rec. after key-record */
HA_READ_BEFORE_KEY
,
/* Find next rec. before key-record */
HA_READ_PREFIX
,
/* Key which as same prefix */
HA_READ_PREFIX_LAST
,
/* Last key with the same prefix */
HA_READ_KEY_EXACT
,
/* Find first record else error */
HA_READ_KEY_OR_NEXT
,
/* Record or next record */
HA_READ_KEY_OR_PREV
,
/* Record or previous */
HA_READ_AFTER_KEY
,
/* Find next rec. after key-record */
HA_READ_BEFORE_KEY
,
/* Find next rec. before key-record */
HA_READ_PREFIX
,
/* Key which as same prefix */
HA_READ_PREFIX_LAST
,
/* Last key with the same prefix */
HA_READ_PREFIX_LAST_OR_PREV
,
/* Last or prev key with the same prefix */
HA_READ_MBR_CONTAIN
,
HA_READ_MBR_INTERSECT
,
HA_READ_MBR_WITHIN
,
...
...
@@ -66,7 +67,7 @@ enum ha_rkey_function {
/* Key algorithm types */
enum
ha_key_alg
{
enum
ha_key_alg
{
HA_KEY_ALG_UNDEF
=
0
,
/* Not specified (old file) */
HA_KEY_ALG_BTREE
=
1
,
/* B-tree, default one */
HA_KEY_ALG_RTREE
=
2
,
/* R-tree, for spatial searches */
...
...
@@ -202,7 +203,7 @@ enum ha_base_keytype {
/* Bits in flag to _status */
#define HA_STATUS_POS 1
/* Return position */
#define HA_STATUS_NO_LOCK
2
/* Don't use external lock */
#define HA_STATUS_NO_LOCK 2
/* Don't use external lock */
#define HA_STATUS_TIME 4
/* Return update time */
#define HA_STATUS_CONST 8
/* Return constants values */
#define HA_STATUS_VARIABLE 16
...
...
@@ -233,7 +234,7 @@ enum ha_base_keytype {
#define HA_ERR_WRONG_TABLE_DEF 143
#define HA_ERR_CRASHED_ON_REPAIR 144
/* Last (automatic?) repair failed */
#define HA_ERR_CRASHED_ON_USAGE 145
/* Table must be repaired */
#define HA_ERR_LOCK_WAIT_TIMEOUT 146
#define HA_ERR_LOCK_WAIT_TIMEOUT 146
#define HA_ERR_LOCK_TABLE_FULL 147
#define HA_ERR_READ_ONLY_TRANSACTION 148
/* Updates not allowed */
#define HA_ERR_LOCK_DEADLOCK 149
...
...
@@ -272,7 +273,7 @@ enum ha_base_keytype {
#define READ_CHECK_USED 4
#define KEY_READ_USED 8
#define WRITE_CACHE_USED 16
#define OPT_NO_ROWS
32
#define OPT_NO_ROWS 32
/* bits in update */
#define HA_STATE_CHANGED 1
/* Database has changed */
...
...
@@ -302,7 +303,7 @@ enum data_file_type {
#ifdef BIG_TABLES
typedef
my_off_t
ha_rows
;
#else
typedef
ulong
ha_rows
;
typedef
ulong
ha_rows
;
#endif
#define HA_POS_ERROR (~ (ha_rows) 0)
...
...
isam/_search.c
View file @
2ed2594c
...
...
@@ -118,7 +118,7 @@ int _nisam_search(register N_INFO *info, register N_KEYDEF *keyinfo, uchar *key,
if
((
nextflag
&
(
SEARCH_SMALLER
|
SEARCH_LAST
))
&&
flag
!=
0
)
{
keypos
=
_nisam_get_last_key
(
info
,
keyinfo
,
buff
,
lastkey
,
keypos
);
if
(
(
nextflag
&
SEARCH_LAST
)
&&
if
(
!
(
nextflag
&
SEARCH_SMALLER
)
&&
_nisam_key_cmp
(
keyinfo
->
seg
,
info
->
lastkey
,
key
,
key_len
,
SEARCH_FIND
))
{
my_errno
=
HA_ERR_KEY_NOT_FOUND
;
/* Didn't find key */
...
...
isam/static.c
View file @
2ed2594c
...
...
@@ -41,5 +41,5 @@ uint NEAR nisam_read_vec[]=
{
SEARCH_FIND
,
SEARCH_FIND
|
SEARCH_BIGGER
,
SEARCH_FIND
|
SEARCH_SMALLER
,
SEARCH_NO_FIND
|
SEARCH_BIGGER
,
SEARCH_NO_FIND
|
SEARCH_SMALLER
,
SEARCH_FIND
,
SEARCH_LAST
SEARCH_FIND
,
SEARCH_LAST
,
SEARCH_LAST
|
SEARCH_SMALLER
};
myisam/mi_search.c
View file @
2ed2594c
...
...
@@ -132,7 +132,7 @@ int _mi_search(register MI_INFO *info, register MI_KEYDEF *keyinfo,
if
(
_mi_get_prev_key
(
info
,
keyinfo
,
buff
,
info
->
lastkey
,
keypos
,
&
info
->
lastkey_length
))
goto
err
;
if
(
(
nextflag
&
SEARCH_LAST
)
&&
if
(
!
(
nextflag
&
SEARCH_SMALLER
)
&&
ha_key_cmp
(
keyinfo
->
seg
,
info
->
lastkey
,
key
,
key_len
,
SEARCH_FIND
,
&
not_used
))
{
...
...
myisam/mi_static.c
View file @
2ed2594c
...
...
@@ -51,12 +51,12 @@ uint NEAR myisam_read_vec[]=
{
SEARCH_FIND
,
SEARCH_FIND
|
SEARCH_BIGGER
,
SEARCH_FIND
|
SEARCH_SMALLER
,
SEARCH_NO_FIND
|
SEARCH_BIGGER
,
SEARCH_NO_FIND
|
SEARCH_SMALLER
,
SEARCH_FIND
|
SEARCH_PREFIX
,
SEARCH_LAST
,
SEARCH_FIND
|
SEARCH_PREFIX
,
SEARCH_LAST
,
SEARCH_LAST
|
SEARCH_SMALLER
,
MBR_CONTAIN
,
MBR_INTERSECT
,
MBR_WITHIN
,
MBR_DISJOINT
,
MBR_EQUAL
};
uint
NEAR
myisam_readnext_vec
[]
=
{
SEARCH_BIGGER
,
SEARCH_BIGGER
,
SEARCH_SMALLER
,
SEARCH_BIGGER
,
SEARCH_SMALLER
,
SEARCH_BIGGER
,
SEARCH_SMALLER
SEARCH_BIGGER
,
SEARCH_SMALLER
,
SEARCH_SMALLER
};
sql/opt_range.cc
View file @
2ed2594c
...
...
@@ -2238,7 +2238,7 @@ check_quick_keys(PARAM *param,uint idx,SEL_ARG *key_tree,
{
tmp
=
param
->
table
->
file
->
records_in_range
((
int
)
keynr
,(
byte
*
)(
param
->
min_key
+
1
),
min_key_length
,
(
ha_rkey_function
)(
tmp_min_flag
^
GEOM_FLAG
),
min_key_length
,
(
ha_rkey_function
)(
tmp_min_flag
^
GEOM_FLAG
),
(
byte
*
)
NullS
,
0
,
HA_READ_KEY_EXACT
);
}
else
...
...
@@ -2705,20 +2705,28 @@ int QUICK_SELECT_DESC::get_next()
}
else
{
DBUG_ASSERT
(
range
->
flag
&
NEAR_MAX
||
range_reads_after_key
(
range
));
#if NOT_IMPLEMENTED_YET
result
=
file
->
index_read
(
record
,
(
byte
*
)
range
->
max_key
,
range
->
max_length
,
((
range
->
flag
&
NEAR_MAX
)
?
HA_READ_BEFORE_KEY
:
HA_READ_PREFIX_LAST_OR_PREV
));
#else
/* Heikki changed Sept 11, 2002: since InnoDB does not store the cursor
position if READ_KEY_EXACT is used to a primary key with all
key columns specified, we must use below HA_READ_KEY_OR_NEXT,
so that InnoDB stores the cursor position and is able to move
the cursor one step backward after the search. */
DBUG_ASSERT
(
range
->
flag
&
NEAR_MAX
||
range_reads_after_key
(
range
));
/* Note: even if max_key is only a prefix, HA_READ_AFTER_KEY will
* do the right thing - go past all keys which match the prefix */
result
=
file
->
index_read
(
record
,
(
byte
*
)
range
->
max_key
,
range
->
max_length
,
((
range
->
flag
&
NEAR_MAX
)
?
HA_READ_KEY_OR_NEXT
:
HA_READ_AFTER_KEY
));
result
=
file
->
index_prev
(
record
);
#endif
}
if
(
result
)
{
...
...
sql/sql_handler.cc
View file @
2ed2594c
...
...
@@ -88,7 +88,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
}
static
enum
enum_ha_read_modes
rkey_to_rnext
[]
=
{
RNEXT
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
};
{
RNEXT
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
,
RPREV
};
int
mysql_ha_read
(
THD
*
thd
,
TABLE_LIST
*
tables
,
...
...
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