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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
d9d2bf5b
Commit
d9d2bf5b
authored
Jun 23, 2006
by
rburnett@bk-internal.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
parents
ebe57fc7
b072ecd0
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
102 additions
and
37 deletions
+102
-37
mysql-test/r/log_state.result
mysql-test/r/log_state.result
+11
-11
mysql-test/r/partition_innodb.result
mysql-test/r/partition_innodb.result
+15
-0
mysql-test/r/partition_pruning.result
mysql-test/r/partition_pruning.result
+1
-1
mysql-test/r/renamedb.result
mysql-test/r/renamedb.result
+4
-0
mysql-test/t/log_state.test
mysql-test/t/log_state.test
+8
-8
mysql-test/t/partition_innodb.test
mysql-test/t/partition_innodb.test
+12
-0
mysql-test/t/renamedb.test
mysql-test/t/renamedb.test
+8
-0
sql/field.cc
sql/field.cc
+30
-0
sql/field.h
sql/field.h
+3
-0
sql/key.cc
sql/key.cc
+4
-0
sql/sql_db.cc
sql/sql_db.cc
+3
-3
sql/sql_partition.cc
sql/sql_partition.cc
+3
-14
No files found.
mysql-test/r/log_state.result
View file @
d9d2bf5b
...
...
@@ -14,15 +14,15 @@ set global general_log= ON;
create table t1(f1 int);
select * from mysql.general_log;
event_time user_host thread_id server_id command_type argument
TIMESTAMP
root[root] @ localhost []
# 1 Query create table t1(f1 int)
TIMESTAMP
root[root] @ localhost []
# 1 Query select * from mysql.general_log
TIMESTAMP
USER_HOST
# 1 Query create table t1(f1 int)
TIMESTAMP
USER_HOST
# 1 Query select * from mysql.general_log
set global general_log= OFF;
drop table t1;
select * from mysql.general_log;
event_time user_host thread_id server_id command_type argument
TIMESTAMP
root[root] @ localhost []
# 1 Query create table t1(f1 int)
TIMESTAMP
root[root] @ localhost []
# 1 Query select * from mysql.general_log
TIMESTAMP
root[root] @ localhost []
# 1 Query set global general_log= OFF
TIMESTAMP
USER_HOST
# 1 Query create table t1(f1 int)
TIMESTAMP
USER_HOST
# 1 Query select * from mysql.general_log
TIMESTAMP
USER_HOST
# 1 Query set global general_log= OFF
set global general_log= ON;
flush logs;
show global variables
...
...
@@ -46,7 +46,7 @@ sleep(2)
0
select * from mysql.slow_log;
start_time user_host query_time lock_time rows_sent rows_examined db last_insert_id insert_id server_id sql_text
TIMESTAMP
, root[root] @ localhost [] USER_HOST, QUERY_TIME
1 0 test 0 0 1 select sleep(2)
TIMESTAMP
USER_HOST QUERY_TIME 00:00:00
1 0 test 0 0 1 select sleep(2)
show global variables
where Variable_name = 'log' or Variable_name = 'log_slow_queries' or
Variable_name = 'general_log' or Variable_name = 'slow_query_log';
...
...
@@ -67,9 +67,9 @@ create table t1(f1 int);
drop table t1;
select * from mysql.general_log;
event_time user_host thread_id server_id command_type argument
TIMESTAMP
root[root] @ localhost []
# 1 Query create table t1(f1 int)
TIMESTAMP
root[root] @ localhost []
# 1 Query drop table t1
TIMESTAMP
root[root] @ localhost []
# 1 Query select * from mysql.general_log
TIMESTAMP
USER_HOST
# 1 Query create table t1(f1 int)
TIMESTAMP
USER_HOST
# 1 Query drop table t1
TIMESTAMP
USER_HOST
# 1 Query select * from mysql.general_log
set global general_log= OFF;
truncate table mysql.general_log;
select * from mysql.general_log;
...
...
@@ -151,5 +151,5 @@ set global general_log=ON;
drop table t1;
select * from mysql.general_log;
event_time user_host thread_id server_id command_type argument
TIMESTAMP
root[root] @ localhost []
# 1 Query drop table t1
TIMESTAMP
root[root] @ localhost []
# 1 Query select * from mysql.general_log
TIMESTAMP
USER_HOST
# 1 Query drop table t1
TIMESTAMP
USER_HOST
# 1 Query select * from mysql.general_log
mysql-test/r/partition_innodb.result
View file @
d9d2bf5b
...
...
@@ -92,3 +92,18 @@ DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t0_aux;
DROP TABLE IF EXISTS t0_definition;
DROP TABLE IF EXISTS t0_template;
create table t1 (id varchar(64) primary key) engine=innodb
partition by key(id) partitions 5;
insert into t1 values ('a');
insert into t1 values ('aa');
insert into t1 values ('aaa');
select * from t1 where id = 'a';
id
a
select * from t1 where id = 'aa';
id
aa
select * from t1 where id = 'aaa';
id
aaa
drop table t1;
mysql-test/r/partition_pruning.result
View file @
d9d2bf5b
...
...
@@ -31,7 +31,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t2 p0,p1 ALL NULL NULL NULL NULL 3 Using where
explain partitions select * from t2 where a=1 and b=1;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t2 p0 ALL NULL NULL NULL NULL
3
Using where
1 SIMPLE t2 p0 ALL NULL NULL NULL NULL
2
Using where
create table t3 (
a int
)
...
...
mysql-test/r/renamedb.result
View file @
d9d2bf5b
...
...
@@ -27,3 +27,7 @@ a
2
3
drop database testdb2;
create database testdb1;
rename database testdb1 to testdb1;
ERROR HY000: Can't create database 'testdb1'; database exists
drop database testdb1;
mysql-test/t/log_state.test
View file @
d9d2bf5b
...
...
@@ -11,11 +11,11 @@ Variable_name = 'general_log' or Variable_name = 'slow_query_log';
flush
logs
;
set
global
general_log
=
ON
;
create
table
t1
(
f1
int
);
--
replace_column
1
TIMESTAMP
3
#
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
#
select
*
from
mysql
.
general_log
;
set
global
general_log
=
OFF
;
drop
table
t1
;
--
replace_column
1
TIMESTAMP
3
#
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
#
select
*
from
mysql
.
general_log
;
set
global
general_log
=
ON
;
flush
logs
;
...
...
@@ -27,7 +27,7 @@ connect (con1,localhost,root,,);
connection
con1
;
set
session
long_query_time
=
1
;
select
sleep
(
2
);
--
replace_column
1
TIMESTAMP
,
3
USER_HOST
,
4
QUERY_TIME
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
QUERY_TIME
select
*
from
mysql
.
slow_log
;
connection
default
;
...
...
@@ -35,7 +35,7 @@ set global slow_query_log= ON;
connection
con1
;
set
session
long_query_time
=
1
;
select
sleep
(
2
);
--
replace_column
1
TIMESTAMP
,
3
USER_HOST
,
4
QUERY_TIME
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
QUERY_TIME
select
*
from
mysql
.
slow_log
;
disconnect
con1
;
connection
default
;
...
...
@@ -54,11 +54,11 @@ set global general_log= ON;
truncate
table
mysql
.
general_log
;
create
table
t1
(
f1
int
);
drop
table
t1
;
--
replace_column
1
TIMESTAMP
3
#
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
#
select
*
from
mysql
.
general_log
;
set
global
general_log
=
OFF
;
truncate
table
mysql
.
general_log
;
--
replace_column
1
TIMESTAMP
3
#
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
#
select
*
from
mysql
.
general_log
;
set
global
general_log
=
ON
;
show
global
variables
...
...
@@ -109,14 +109,14 @@ truncate table mysql.general_log;
show
variables
like
'log_output'
;
set
global
general_log
=
ON
;
create
table
t1
(
f1
int
);
--
replace_column
1
TIMESTAMP
3
#
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
#
select
*
from
mysql
.
general_log
;
set
global
general_log
=
OFF
;
set
global
log_output
=
"FILE,TABLE"
;
show
variables
like
'log_output'
;
set
global
general_log
=
ON
;
drop
table
t1
;
--
replace_column
1
TIMESTAMP
3
#
--
replace_column
1
TIMESTAMP
2
USER_HOST
3
#
select
*
from
mysql
.
general_log
;
--
enable_ps_protocol
mysql-test/t/partition_innodb.test
View file @
d9d2bf5b
...
...
@@ -66,3 +66,15 @@ DROP TABLE IF EXISTS t0_definition;
DROP
TABLE
IF
EXISTS
t0_template
;
--
enable_warnings
#
# Bug#20086: Can't get data from key partitioned tables with VARCHAR key
#
create
table
t1
(
id
varchar
(
64
)
primary
key
)
engine
=
innodb
partition
by
key
(
id
)
partitions
5
;
insert
into
t1
values
(
'a'
);
insert
into
t1
values
(
'aa'
);
insert
into
t1
values
(
'aaa'
);
select
*
from
t1
where
id
=
'a'
;
select
*
from
t1
where
id
=
'aa'
;
select
*
from
t1
where
id
=
'aaa'
;
drop
table
t1
;
mysql-test/t/renamedb.test
View file @
d9d2bf5b
...
...
@@ -16,3 +16,11 @@ select database();
show
tables
;
select
a
from
t1
order
by
a
;
drop
database
testdb2
;
#
# Bug#19392 Rename Database: Crash if case change
#
create
database
testdb1
;
--
error
1007
rename
database
testdb1
to
testdb1
;
drop
database
testdb1
;
sql/field.cc
View file @
d9d2bf5b
...
...
@@ -1243,6 +1243,21 @@ uint Field::offset()
}
void
Field
::
hash
(
ulong
*
nr
,
ulong
*
nr2
)
{
if
(
is_null
())
{
*
nr
^=
(
*
nr
<<
1
)
|
1
;
}
else
{
uint
len
=
pack_length
();
CHARSET_INFO
*
cs
=
charset
();
cs
->
coll
->
hash_sort
(
cs
,
(
uchar
*
)
ptr
,
len
,
nr
,
nr2
);
}
}
void
Field
::
copy_from_tmp
(
int
row_offset
)
{
memcpy
(
ptr
,
ptr
+
row_offset
,
pack_length
());
...
...
@@ -6925,6 +6940,21 @@ uint Field_varstring::is_equal(create_field *new_field)
}
void
Field_varstring
::
hash
(
ulong
*
nr
,
ulong
*
nr2
)
{
if
(
is_null
())
{
*
nr
^=
(
*
nr
<<
1
)
|
1
;
}
else
{
uint
len
=
length_bytes
==
1
?
(
uint
)
(
uchar
)
*
ptr
:
uint2korr
(
ptr
);
CHARSET_INFO
*
cs
=
charset
();
cs
->
coll
->
hash_sort
(
cs
,
(
uchar
*
)
ptr
+
length_bytes
,
len
,
nr
,
nr2
);
}
}
/****************************************************************************
** blob type
** A blob is saved as a length and a pointer. The length is stored in the
...
...
sql/field.h
View file @
d9d2bf5b
...
...
@@ -351,6 +351,8 @@ class Field
return
field_length
/
charset
()
->
mbmaxlen
;
}
/* Hash value */
virtual
void
hash
(
ulong
*
nr
,
ulong
*
nr2
);
friend
bool
reopen_table
(
THD
*
,
struct
st_table
*
,
bool
);
friend
int
cre_myisam
(
my_string
name
,
register
TABLE
*
form
,
uint
options
,
ulonglong
auto_increment_value
);
...
...
@@ -1120,6 +1122,7 @@ class Field_varstring :public Field_longstr {
char
*
new_ptr
,
uchar
*
new_null_ptr
,
uint
new_null_bit
);
uint
is_equal
(
create_field
*
new_field
);
void
hash
(
ulong
*
nr
,
ulong
*
nr2
);
};
...
...
sql/key.cc
View file @
d9d2bf5b
...
...
@@ -210,9 +210,13 @@ void key_restore(byte *to_record, byte *from_key, KEY *key_info,
}
else
if
(
key_part
->
key_part_flag
&
HA_VAR_LENGTH_PART
)
{
my_bitmap_map
*
old_map
;
key_length
-=
HA_KEY_BLOB_LENGTH
;
length
=
min
(
key_length
,
key_part
->
length
);
old_map
=
dbug_tmp_use_all_columns
(
key_part
->
field
->
table
,
key_part
->
field
->
table
->
write_set
);
key_part
->
field
->
set_key_image
((
char
*
)
from_key
,
length
);
dbug_tmp_restore_column_map
(
key_part
->
field
->
table
->
write_set
,
old_map
);
from_key
+=
HA_KEY_BLOB_LENGTH
;
}
else
...
...
sql/sql_db.cc
View file @
d9d2bf5b
...
...
@@ -134,8 +134,8 @@ void lock_db_delete(const char *name, uint length)
{
my_dblock_t
*
opt
;
safe_mutex_assert_owner
(
&
LOCK_lock_db
);
opt
=
(
my_dblock_t
*
)
hash_search
(
&
lock_db_cache
,
(
const
byte
*
)
name
,
length
);
DBUG_ASSERT
(
opt
!=
NULL
);
if
((
opt
=
(
my_dblock_t
*
)
hash_search
(
&
lock_db_cache
,
(
const
byte
*
)
name
,
length
)))
hash_delete
(
&
lock_db_cache
,
(
byte
*
)
opt
);
}
...
...
sql/sql_partition.cc
View file @
d9d2bf5b
...
...
@@ -2103,26 +2103,15 @@ static inline longlong part_val_int(Item *item_expr)
static
uint32
calculate_key_value
(
Field
**
field_array
)
{
u
int32
hashnr
=
0
;
u
long
nr1
=
1
;
ulong
nr2
=
4
;
do
{
Field
*
field
=
*
field_array
;
if
(
field
->
is_null
())
{
hashnr
^=
(
hashnr
<<
1
)
|
1
;
}
else
{
uint
len
=
field
->
pack_length
();
ulong
nr1
=
1
;
CHARSET_INFO
*
cs
=
field
->
charset
();
cs
->
coll
->
hash_sort
(
cs
,
(
uchar
*
)
field
->
ptr
,
len
,
&
nr1
,
&
nr2
);
hashnr
^=
(
uint32
)
nr1
;
}
field
->
hash
(
&
nr1
,
&
nr2
);
}
while
(
*
(
++
field_array
));
return
hashnr
;
return
(
uint32
)
nr1
;
}
...
...
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