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
b1271392
Commit
b1271392
authored
Sep 14, 2005
by
tulin@dl145c.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug #13179 partition info in mysqldump makes it hard to use dump in different sized cluster
parent
cde15356
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
46 additions
and
7 deletions
+46
-7
mysql-test/r/ndb_partition_key.result
mysql-test/r/ndb_partition_key.result
+9
-0
mysql-test/r/ndb_partition_range.result
mysql-test/r/ndb_partition_range.result
+9
-0
mysql-test/t/ndb_partition_key.test
mysql-test/t/ndb_partition_key.test
+7
-0
mysql-test/t/ndb_partition_range.test
mysql-test/t/ndb_partition_range.test
+6
-0
sql/handler.h
sql/handler.h
+2
-1
sql/sql_partition.cc
sql/sql_partition.cc
+8
-1
sql/sql_show.cc
sql/sql_show.cc
+2
-2
sql/sql_table.cc
sql/sql_table.cc
+3
-3
No files found.
mysql-test/r/ndb_partition_key.result
View file @
b1271392
...
@@ -68,4 +68,13 @@ PRIMARY KEY(a, b, c) - UniqueHashIndex
...
@@ -68,4 +68,13 @@ PRIMARY KEY(a, b, c) - UniqueHashIndex
NDBT_ProgramExit: 0 - OK
NDBT_ProgramExit: 0 - OK
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL default '0',
`b` char(10) character set latin1 collate latin1_bin NOT NULL default '',
`c` int(11) NOT NULL default '0',
`d` int(11) default NULL,
PRIMARY KEY USING HASH (`a`,`b`,`c`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY (b)
DROP TABLE t1;
DROP TABLE t1;
mysql-test/r/ndb_partition_range.result
View file @
b1271392
...
@@ -102,4 +102,13 @@ a b c
...
@@ -102,4 +102,13 @@ a b c
1 1 1
1 1 1
DELETE from t1 WHERE b = 6;
DELETE from t1 WHERE b = 6;
DELETE from t1 WHERE a = 6;
DELETE from t1 WHERE a = 6;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` int(11) NOT NULL,
`c` int(11) NOT NULL,
PRIMARY KEY (`b`),
UNIQUE KEY `a` (`a`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (b) (PARTITION x1 VALUES LESS THAN (5) ENGINE = NDBCLUSTER, PARTITION x2 VALUES LESS THAN (10) ENGINE = NDBCLUSTER, PARTITION x3 VALUES LESS THAN (20) ENGINE = NDBCLUSTER)
drop table t1;
drop table t1;
mysql-test/t/ndb_partition_key.test
View file @
b1271392
...
@@ -55,4 +55,11 @@ insert into t1 values (1,"a",1,1),(2,"a",1,1),(3,"a",1,1);
...
@@ -55,4 +55,11 @@ insert into t1 values (1,"a",1,1),(2,"a",1,1),(3,"a",1,1);
# should show only one attribute with DISTRIBUTION KEY
# should show only one attribute with DISTRIBUTION KEY
--
exec
$NDB_TOOLS_DIR
/
ndb_desc
--
no
-
defaults
-
d
test
t1
|
sed
's/Version: [0-9]*//'
|
sed
's/\(Length of frm data: \)[0-9]*/\1#/'
--
exec
$NDB_TOOLS_DIR
/
ndb_desc
--
no
-
defaults
-
d
test
t1
|
sed
's/Version: [0-9]*//'
|
sed
's/\(Length of frm data: \)[0-9]*/\1#/'
#
# Test that explicit partition info is not shown in show create table
# result should not contain (PARTITION P0 ... etc) since this is what shows up in
# mysqldump, and we don't want that info there
#
show
create
table
t1
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
mysql-test/t/ndb_partition_range.test
View file @
b1271392
...
@@ -82,5 +82,11 @@ select * from t1 where a=1 and b in (1,6,10,21) order by b;
...
@@ -82,5 +82,11 @@ select * from t1 where a=1 and b in (1,6,10,21) order by b;
DELETE
from
t1
WHERE
b
=
6
;
DELETE
from
t1
WHERE
b
=
6
;
DELETE
from
t1
WHERE
a
=
6
;
DELETE
from
t1
WHERE
a
=
6
;
#
# Test that explicit partition info _is_ shown in show create table
# result _should_ contain (PARTITION x1 ... etc)
#
show
create
table
t1
;
drop
table
t1
;
drop
table
t1
;
sql/handler.h
View file @
b1271392
...
@@ -675,7 +675,8 @@ bool check_partition_info(partition_info *part_info,enum db_type eng_type,
...
@@ -675,7 +675,8 @@ bool check_partition_info(partition_info *part_info,enum db_type eng_type,
handler
*
file
,
ulonglong
max_rows
);
handler
*
file
,
ulonglong
max_rows
);
bool
fix_partition_func
(
THD
*
thd
,
const
char
*
name
,
TABLE
*
table
);
bool
fix_partition_func
(
THD
*
thd
,
const
char
*
name
,
TABLE
*
table
);
char
*
generate_partition_syntax
(
partition_info
*
part_info
,
char
*
generate_partition_syntax
(
partition_info
*
part_info
,
uint
*
buf_length
,
bool
use_sql_alloc
);
uint
*
buf_length
,
bool
use_sql_alloc
,
bool
add_default_info
);
bool
partition_key_modified
(
TABLE
*
table
,
List
<
Item
>
&
fields
);
bool
partition_key_modified
(
TABLE
*
table
,
List
<
Item
>
&
fields
);
void
get_partition_set
(
const
TABLE
*
table
,
byte
*
buf
,
const
uint
index
,
void
get_partition_set
(
const
TABLE
*
table
,
byte
*
buf
,
const
uint
index
,
const
key_range
*
key_spec
,
const
key_range
*
key_spec
,
...
...
sql/sql_partition.cc
View file @
b1271392
...
@@ -1961,6 +1961,7 @@ static int add_partition_values(File fptr, partition_info *part_info,
...
@@ -1961,6 +1961,7 @@ static int add_partition_values(File fptr, partition_info *part_info,
buf_length A pointer to the returned buffer length
buf_length A pointer to the returned buffer length
use_sql_alloc Allocate buffer from sql_alloc if true
use_sql_alloc Allocate buffer from sql_alloc if true
otherwise use my_malloc
otherwise use my_malloc
add_default_info Add info generated by default
RETURN VALUES
RETURN VALUES
NULL error
NULL error
buf, buf_length Buffer and its length
buf, buf_length Buffer and its length
...
@@ -1986,7 +1987,8 @@ static int add_partition_values(File fptr, partition_info *part_info,
...
@@ -1986,7 +1987,8 @@ static int add_partition_values(File fptr, partition_info *part_info,
char
*
generate_partition_syntax
(
partition_info
*
part_info
,
char
*
generate_partition_syntax
(
partition_info
*
part_info
,
uint
*
buf_length
,
uint
*
buf_length
,
bool
use_sql_alloc
)
bool
use_sql_alloc
,
bool
add_default_info
)
{
{
uint
i
,
j
,
no_parts
,
no_subparts
;
uint
i
,
j
,
no_parts
,
no_subparts
;
partition_element
*
part_elem
;
partition_element
*
part_elem
;
...
@@ -2013,9 +2015,11 @@ char *generate_partition_syntax(partition_info *part_info,
...
@@ -2013,9 +2015,11 @@ char *generate_partition_syntax(partition_info *part_info,
switch
(
part_info
->
part_type
)
switch
(
part_info
->
part_type
)
{
{
case
RANGE_PARTITION
:
case
RANGE_PARTITION
:
add_default_info
=
TRUE
;
err
+=
add_part_key_word
(
fptr
,
range_str
);
err
+=
add_part_key_word
(
fptr
,
range_str
);
break
;
break
;
case
LIST_PARTITION
:
case
LIST_PARTITION
:
add_default_info
=
TRUE
;
err
+=
add_part_key_word
(
fptr
,
list_str
);
err
+=
add_part_key_word
(
fptr
,
list_str
);
break
;
break
;
case
HASH_PARTITION
:
case
HASH_PARTITION
:
...
@@ -2051,6 +2055,8 @@ char *generate_partition_syntax(partition_info *part_info,
...
@@ -2051,6 +2055,8 @@ char *generate_partition_syntax(partition_info *part_info,
err
+=
add_end_parenthesis
(
fptr
);
err
+=
add_end_parenthesis
(
fptr
);
err
+=
add_space
(
fptr
);
err
+=
add_space
(
fptr
);
}
}
if
(
add_default_info
)
{
err
+=
add_begin_parenthesis
(
fptr
);
err
+=
add_begin_parenthesis
(
fptr
);
List_iterator
<
partition_element
>
part_it
(
part_info
->
partitions
);
List_iterator
<
partition_element
>
part_it
(
part_info
->
partitions
);
no_parts
=
part_info
->
no_parts
;
no_parts
=
part_info
->
no_parts
;
...
@@ -2095,6 +2101,7 @@ char *generate_partition_syntax(partition_info *part_info,
...
@@ -2095,6 +2101,7 @@ char *generate_partition_syntax(partition_info *part_info,
else
else
err
+=
add_end_parenthesis
(
fptr
);
err
+=
add_end_parenthesis
(
fptr
);
}
while
(
++
i
<
no_parts
);
}
while
(
++
i
<
no_parts
);
}
if
(
err
)
if
(
err
)
goto
close_file
;
goto
close_file
;
buffer_length
=
my_seek
(
fptr
,
0L
,
MY_SEEK_END
,
MYF
(
0
));
buffer_length
=
my_seek
(
fptr
,
0L
,
MY_SEEK_END
,
MYF
(
0
));
...
...
sql/sql_show.cc
View file @
b1271392
...
@@ -961,7 +961,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet)
...
@@ -961,7 +961,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet)
packet
->
append
(
"
\n
)"
,
2
);
packet
->
append
(
"
\n
)"
,
2
);
if
(
!
(
thd
->
variables
.
sql_mode
&
MODE_NO_TABLE_OPTIONS
)
&&
!
foreign_db_mode
)
if
(
!
(
thd
->
variables
.
sql_mode
&
MODE_NO_TABLE_OPTIONS
)
&&
!
foreign_db_mode
)
{
{
#ifdef HAVE_PARTITION_DB
#if
0 //
def HAVE_PARTITION_DB
if (!table->s->part_info)
if (!table->s->part_info)
#endif
#endif
{
{
...
@@ -1047,7 +1047,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet)
...
@@ -1047,7 +1047,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet)
if
(
table
->
s
->
part_info
&&
if
(
table
->
s
->
part_info
&&
((
part_syntax
=
generate_partition_syntax
(
table
->
s
->
part_info
,
((
part_syntax
=
generate_partition_syntax
(
table
->
s
->
part_info
,
&
part_syntax_len
,
&
part_syntax_len
,
FALSE
))))
FALSE
,
FALSE
))))
{
{
packet
->
append
(
part_syntax
,
part_syntax_len
);
packet
->
append
(
part_syntax
,
part_syntax_len
);
my_free
(
part_syntax
,
MYF
(
0
));
my_free
(
part_syntax
,
MYF
(
0
));
...
...
sql/sql_table.cc
View file @
b1271392
...
@@ -1629,7 +1629,7 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
...
@@ -1629,7 +1629,7 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
*/
*/
if
(
!
(
part_syntax_buf
=
generate_partition_syntax
(
part_info
,
if
(
!
(
part_syntax_buf
=
generate_partition_syntax
(
part_info
,
&
syntax_len
,
&
syntax_len
,
TRUE
)))
TRUE
,
TRUE
)))
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
part_info
->
part_info_string
=
part_syntax_buf
;
part_info
->
part_info_string
=
part_syntax_buf
;
part_info
->
part_info_len
=
syntax_len
;
part_info
->
part_info_len
=
syntax_len
;
...
@@ -4274,7 +4274,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
...
@@ -4274,7 +4274,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
/*select_field_count*/
0
);
/*select_field_count*/
0
);
if
(
!
(
part_syntax_buf
=
generate_partition_syntax
(
part_info
,
if
(
!
(
part_syntax_buf
=
generate_partition_syntax
(
part_info
,
&
syntax_len
,
&
syntax_len
,
TRUE
)))
TRUE
,
TRUE
)))
{
{
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
...
@@ -4310,7 +4310,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
...
@@ -4310,7 +4310,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
}
}
if
(
!
(
part_syntax_buf
=
generate_partition_syntax
(
part_info
,
if
(
!
(
part_syntax_buf
=
generate_partition_syntax
(
part_info
,
&
syntax_len
,
&
syntax_len
,
TRUE
)))
TRUE
,
TRUE
)))
{
{
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
...
...
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