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
ac287ad3
Commit
ac287ad3
authored
Mar 10, 2006
by
ingo@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/mydev/mysql-4.1
into mysql.com:/home/mydev/mysql-4.1-bug14980
parents
e60e9184
d0c6eb88
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
57 additions
and
3 deletions
+57
-3
include/my_base.h
include/my_base.h
+1
-1
myisam/mi_delete.c
myisam/mi_delete.c
+2
-0
myisam/mi_key.c
myisam/mi_key.c
+4
-0
myisam/mi_rnext_same.c
myisam/mi_rnext_same.c
+2
-2
myisam/mi_unique.c
myisam/mi_unique.c
+3
-0
myisam/mi_update.c
myisam/mi_update.c
+4
-0
myisam/mi_write.c
myisam/mi_write.c
+4
-0
mysql-test/r/myisam.result
mysql-test/r/myisam.result
+18
-0
mysql-test/t/myisam.test
mysql-test/t/myisam.test
+19
-0
No files found.
include/my_base.h
View file @
ac287ad3
...
...
@@ -340,7 +340,7 @@ enum ha_base_keytype {
#define HA_STATE_BUFF_SAVED 512
/* If current keybuff is info->buff */
#define HA_STATE_ROW_CHANGED 1024
/* To invalide ROW cache */
#define HA_STATE_EXTEND_BLOCK 2048
#define HA_STATE_RNEXT_SAME 4096
/* rnext_same
was called
*/
#define HA_STATE_RNEXT_SAME 4096
/* rnext_same
occupied lastkey2
*/
enum
en_fieldtype
{
FIELD_LAST
=-
1
,
FIELD_NORMAL
,
FIELD_SKIP_ENDSPACE
,
FIELD_SKIP_PRESPACE
,
...
...
myisam/mi_delete.c
View file @
ac287ad3
...
...
@@ -82,6 +82,8 @@ int mi_delete(MI_INFO *info,const byte *record)
_mi_make_key
(
info
,
i
,
old_key
,
record
,
info
->
lastpos
)))
goto
err
;
}
/* The above changed info->lastkey2. Inform mi_rnext_same(). */
info
->
update
&=
~
HA_STATE_RNEXT_SAME
;
}
}
...
...
myisam/mi_key.c
View file @
ac287ad3
...
...
@@ -393,6 +393,10 @@ static int _mi_put_key_in_record(register MI_INFO *info, uint keynr,
(
char
*
)
&
blob_ptr
,
sizeof
(
char
*
));
memcpy
(
blob_ptr
,
key
,
length
);
blob_ptr
+=
length
;
/* The above changed info->lastkey2. Inform mi_rnext_same(). */
info
->
update
&=
~
HA_STATE_RNEXT_SAME
;
_my_store_blob_length
(
record
+
keyseg
->
start
,
(
uint
)
keyseg
->
bit_start
,
length
);
key
+=
length
;
...
...
myisam/mi_rnext_same.c
View file @
ac287ad3
...
...
@@ -40,7 +40,7 @@ int mi_rnext_same(MI_INFO *info, byte *buf)
if
(
info
->
s
->
concurrent_insert
)
rw_rdlock
(
&
info
->
s
->
key_root_lock
[
inx
]);
switch
(
keyinfo
->
key_alg
)
{
#ifdef HAVE_RTREE_KEYS
...
...
@@ -102,4 +102,4 @@ int mi_rnext_same(MI_INFO *info, byte *buf)
DBUG_RETURN
(
0
);
}
DBUG_RETURN
(
my_errno
);
}
/* mi_rnext */
}
/* mi_rnext
_same
*/
myisam/mi_unique.c
View file @
ac287ad3
...
...
@@ -30,6 +30,9 @@ my_bool mi_check_unique(MI_INFO *info, MI_UNIQUEDEF *def, byte *record,
mi_unique_store
(
record
+
key
->
seg
->
start
,
unique_hash
);
_mi_make_key
(
info
,
def
->
key
,
key_buff
,
record
,
0
);
/* The above changed info->lastkey2. Inform mi_rnext_same(). */
info
->
update
&=
~
HA_STATE_RNEXT_SAME
;
if
(
_mi_search
(
info
,
info
->
s
->
keyinfo
+
def
->
key
,
key_buff
,
MI_UNIQUE_HASH_LENGTH
,
SEARCH_FIND
,
info
->
s
->
state
.
key_root
[
def
->
key
]))
{
...
...
myisam/mi_update.c
View file @
ac287ad3
...
...
@@ -108,6 +108,10 @@ int mi_update(register MI_INFO *info, const byte *oldrec, byte *newrec)
{
uint
new_length
=
_mi_make_key
(
info
,
i
,
new_key
,
newrec
,
pos
);
uint
old_length
=
_mi_make_key
(
info
,
i
,
old_key
,
oldrec
,
pos
);
/* The above changed info->lastkey2. Inform mi_rnext_same(). */
info
->
update
&=
~
HA_STATE_RNEXT_SAME
;
if
(
new_length
!=
old_length
||
memcmp
((
byte
*
)
old_key
,(
byte
*
)
new_key
,
new_length
))
{
...
...
myisam/mi_write.c
View file @
ac287ad3
...
...
@@ -128,6 +128,10 @@ int mi_write(MI_INFO *info, byte *record)
goto
err
;
}
}
/* The above changed info->lastkey2. Inform mi_rnext_same(). */
info
->
update
&=
~
HA_STATE_RNEXT_SAME
;
if
(
local_lock_tree
)
rw_unlock
(
&
share
->
key_root_lock
[
i
]);
}
...
...
mysql-test/r/myisam.result
View file @
ac287ad3
...
...
@@ -730,3 +730,21 @@ select * from t1 where bob is null and cip=1;
cip time score bob
1 00:01:00 0 NULL
drop table t1;
create table t1 (
id1 int not null auto_increment,
id2 int not null default '0',
t text not null,
primary key (id1),
key x (id2, t(32))
) engine=myisam;
insert into t1 (id2, t) values
(10, 'abc'), (10, 'abc'), (10, 'abc'),
(20, 'abc'), (20, 'abc'), (20, 'def'),
(10, 'abc'), (10, 'abc');
select count(*) from t1 where id2 = 10;
count(*)
5
select count(id1) from t1 where id2 = 10;
count(id1)
5
drop table t1;
mysql-test/t/myisam.test
View file @
ac287ad3
...
...
@@ -686,4 +686,23 @@ select * from t1 where bob is null and cip=1;
create
index
bug
on
t1
(
bob
(
22
),
cip
,
time
);
select
*
from
t1
where
bob
is
null
and
cip
=
1
;
drop
table
t1
;
#
# Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
#
create
table
t1
(
id1
int
not
null
auto_increment
,
id2
int
not
null
default
'0'
,
t
text
not
null
,
primary
key
(
id1
),
key
x
(
id2
,
t
(
32
))
)
engine
=
myisam
;
insert
into
t1
(
id2
,
t
)
values
(
10
,
'abc'
),
(
10
,
'abc'
),
(
10
,
'abc'
),
(
20
,
'abc'
),
(
20
,
'abc'
),
(
20
,
'def'
),
(
10
,
'abc'
),
(
10
,
'abc'
);
select
count
(
*
)
from
t1
where
id2
=
10
;
select
count
(
id1
)
from
t1
where
id2
=
10
;
drop
table
t1
;
# End of 4.1 tests
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