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
c4140721
Commit
c4140721
authored
May 16, 2019
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.1 into 10.2
parents
56976e60
70a5fb49
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
146 additions
and
3 deletions
+146
-3
client/mysqlimport.c
client/mysqlimport.c
+9
-2
mysql-test/r/mysqldump.result
mysql-test/r/mysqldump.result
+18
-0
mysql-test/r/stat_tables.result
mysql-test/r/stat_tables.result
+30
-0
mysql-test/r/stat_tables_innodb.result
mysql-test/r/stat_tables_innodb.result
+30
-0
mysql-test/t/mysqldump.test
mysql-test/t/mysqldump.test
+29
-0
mysql-test/t/stat_tables.test
mysql-test/t/stat_tables.test
+26
-0
sql/opt_range.cc
sql/opt_range.cc
+1
-1
sql/sql_statistics.cc
sql/sql_statistics.cc
+3
-0
No files found.
client/mysqlimport.c
View file @
c4140721
...
...
@@ -48,8 +48,8 @@ static char *add_load_option(char *ptr,const char *object,
const
char
*
statement
);
static
my_bool
verbose
=
0
,
lock_tables
=
0
,
ignore_errors
=
0
,
opt_delete
=
0
,
replace
=
0
,
silent
=
0
,
ignore
=
0
,
opt_compress
=
0
,
opt_
low_priority
=
0
,
tty_password
=
0
;
replace
,
silent
,
ignore
,
ignore_foreign_keys
,
opt_
compress
,
opt_low_priority
,
tty_password
;
static
my_bool
debug_info_flag
=
0
,
debug_check_flag
=
0
;
static
uint
opt_use_threads
=
0
,
opt_local_file
=
0
,
my_end_arg
=
0
;
static
char
*
opt_password
=
0
,
*
current_user
=
0
,
...
...
@@ -123,6 +123,10 @@ static struct my_option my_long_options[] =
&
current_host
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ignore"
,
'i'
,
"If duplicate unique key was found, keep old row."
,
&
ignore
,
&
ignore
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ignore-foreign-keys"
,
'k'
,
"Disable foreign key checks while importing the data."
,
&
ignore_foreign_keys
,
&
ignore_foreign_keys
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ignore-lines"
,
OPT_IGN_LINES
,
"Ignore first n lines of data infile."
,
&
opt_ignore_lines
,
&
opt_ignore_lines
,
0
,
GET_LL
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
...
...
@@ -489,6 +493,9 @@ static MYSQL *db_connect(char *host, char *database,
ignore_errors
=
0
;
db_error
(
mysql
);
}
if
(
ignore_foreign_keys
)
mysql_query
(
mysql
,
"set foreign_key_checks= 0;"
);
return
mysql
;
}
...
...
mysql-test/r/mysqldump.result
View file @
c4140721
...
...
@@ -5629,6 +5629,24 @@ DROP FUNCTION f;
DROP VIEW v1;
DROP FUNCTION f;
#
# MDEV-788 New option to ignore foreign key contraints in mysqlimport
#
create table t1 (
id int primary key
) engine=InnoDB;
create table t2 (
t1_id int,
CONSTRAINT fk
FOREIGN KEY (t1_id) REFERENCES t1 (id)
) ENGINE = InnoDB;
select count(*) from t2;
count(*)
1
select count(*) from t2;
count(*)
2
drop tables t2, t1;
#
# Test for --add-drop-trigger
#
use test;
...
...
mysql-test/r/stat_tables.result
View file @
c4140721
...
...
@@ -707,8 +707,38 @@ ERROR 42S02: Table 'test.x' doesn't exist
select * from information_schema.tables where table_name='v';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
def test v VIEW NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL VIEW
set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
drop table t1,t2;
drop view v;
#
# MDEV-19407: Assertion `field->table->stats_is_read' failed in is_eits_usable
#
set @save_optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity;
set @@optimizer_use_condition_selectivity= 1;
set @@use_stat_tables='never';
create table t1(pk int);
insert into t1 values (4),(3);
set @@optimizer_use_condition_selectivity= 4;
set use_stat_tables='preferably';
INSERT INTO t1 SELECT * FROM x;
ERROR 42S02: Table 'test.x' doesn't exist
CREATE TABLE t2 SELECT pk FROM t1 WHERE pk>2;
select * from t2;
pk
4
3
drop table t1,t2;
create table t1(a int,b int, key k1(a) );
insert into t1 values(1,1),(2,2),(3,3);
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
select * from mysql.index_stats, t1 where index_name='k1' and t1.a > 1 and t1.b > 1;
db_name table_name index_name prefix_arity avg_frequency a b
test t1 k1 1 1.0000 2 2
test t1 k1 1 1.0000 3 3
drop table t1;
set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
set @save_optimizer_switch=@@optimizer_switch;
set use_stat_tables=@save_use_stat_tables;
...
...
mysql-test/r/stat_tables_innodb.result
View file @
c4140721
...
...
@@ -734,8 +734,38 @@ ERROR 42S02: Table 'test.x' doesn't exist
select * from information_schema.tables where table_name='v';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
def test v VIEW NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL VIEW
set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
drop table t1,t2;
drop view v;
#
# MDEV-19407: Assertion `field->table->stats_is_read' failed in is_eits_usable
#
set @save_optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity;
set @@optimizer_use_condition_selectivity= 1;
set @@use_stat_tables='never';
create table t1(pk int);
insert into t1 values (4),(3);
set @@optimizer_use_condition_selectivity= 4;
set use_stat_tables='preferably';
INSERT INTO t1 SELECT * FROM x;
ERROR 42S02: Table 'test.x' doesn't exist
CREATE TABLE t2 SELECT pk FROM t1 WHERE pk>2;
select * from t2;
pk
4
3
drop table t1,t2;
create table t1(a int,b int, key k1(a) );
insert into t1 values(1,1),(2,2),(3,3);
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
select * from mysql.index_stats, t1 where index_name='k1' and t1.a > 1 and t1.b > 1;
db_name table_name index_name prefix_arity avg_frequency a b
test t1 k1 1 1.0000 2 2
test t1 k1 1 1.0000 3 3
drop table t1;
set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
set @save_optimizer_switch=@@optimizer_switch;
set use_stat_tables=@save_use_stat_tables;
...
...
mysql-test/t/mysqldump.test
View file @
c4140721
...
...
@@ -2489,6 +2489,7 @@ DROP TABLE t1;
DROP TABLE t2;
DROP DATABASE db_20772273;
USE test;
--remove_file $MYSQLTEST_VARDIR/tmp/t2.txt
--echo #
--echo # Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITRARY QUERY
...
...
@@ -2657,6 +2658,34 @@ DROP FUNCTION f;
DROP
VIEW
v1
;
DROP
FUNCTION
f
;
--
echo
#
--
echo
# MDEV-788 New option to ignore foreign key contraints in mysqlimport
--
echo
#
create
table
t1
(
id
int
primary
key
)
engine
=
InnoDB
;
create
table
t2
(
t1_id
int
,
CONSTRAINT
fk
FOREIGN
KEY
(
t1_id
)
REFERENCES
t1
(
id
)
)
ENGINE
=
InnoDB
;
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
t2
.
txt
0
EOF
--
error
1
--
exec
$MYSQL_IMPORT
--
silent
test
$MYSQLTEST_VARDIR
/
tmp
/
t2
.
txt
--
exec
$MYSQL_IMPORT
--
silent
-
k
test
$MYSQLTEST_VARDIR
/
tmp
/
t2
.
txt
select
count
(
*
)
from
t2
;
--
exec
$MYSQL_IMPORT
--
silent
--
ignore
-
foreign
-
keys
test
$MYSQLTEST_VARDIR
/
tmp
/
t2
.
txt
select
count
(
*
)
from
t2
;
--
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
t2
.
txt
drop
tables
t2
,
t1
;
--
echo
#
--
echo
# Test for --add-drop-trigger
--
echo
#
...
...
mysql-test/t/stat_tables.test
View file @
c4140721
...
...
@@ -469,9 +469,35 @@ CREATE VIEW v AS SELECT * FROM t1 JOIN t2;
INSERT
INTO
t2
SELECT
*
FROM
x
;
select
*
from
information_schema
.
tables
where
table_name
=
'v'
;
set
@@
optimizer_use_condition_selectivity
=
@
save_optimizer_use_condition_selectivity
;
drop
table
t1
,
t2
;
drop
view
v
;
--
echo
#
--
echo
# MDEV-19407: Assertion `field->table->stats_is_read' failed in is_eits_usable
--
echo
#
set
@
save_optimizer_use_condition_selectivity
=
@@
optimizer_use_condition_selectivity
;
set
@@
optimizer_use_condition_selectivity
=
1
;
set
@@
use_stat_tables
=
'never'
;
create
table
t1
(
pk
int
);
insert
into
t1
values
(
4
),(
3
);
set
@@
optimizer_use_condition_selectivity
=
4
;
set
use_stat_tables
=
'preferably'
;
--
error
ER_NO_SUCH_TABLE
INSERT
INTO
t1
SELECT
*
FROM
x
;
CREATE
TABLE
t2
SELECT
pk
FROM
t1
WHERE
pk
>
2
;
select
*
from
t2
;
drop
table
t1
,
t2
;
create
table
t1
(
a
int
,
b
int
,
key
k1
(
a
)
);
insert
into
t1
values
(
1
,
1
),(
2
,
2
),(
3
,
3
);
analyze
table
t1
;
select
*
from
mysql
.
index_stats
,
t1
where
index_name
=
'k1'
and
t1
.
a
>
1
and
t1
.
b
>
1
;
drop
table
t1
;
set
@@
optimizer_use_condition_selectivity
=
@
save_optimizer_use_condition_selectivity
;
set
@
save_optimizer_switch
=@@
optimizer_switch
;
...
...
sql/opt_range.cc
View file @
c4140721
...
...
@@ -3038,7 +3038,7 @@ bool calculate_cond_selectivity_for_table(THD *thd, TABLE *table, Item **cond)
if
(
thd
->
variables
.
optimizer_use_condition_selectivity
>
2
&&
!
bitmap_is_clear_all
(
used_fields
)
&&
thd
->
variables
.
use_stat_tables
>
0
)
thd
->
variables
.
use_stat_tables
>
0
&&
table
->
stats_is_read
)
{
PARAM
param
;
MEM_ROOT
alloc
;
...
...
sql/sql_statistics.cc
View file @
c4140721
...
...
@@ -2201,6 +2201,9 @@ inline bool statistics_for_command_is_needed(THD *thd)
case
SQLCOM_DELETE_MULTI
:
case
SQLCOM_REPLACE
:
case
SQLCOM_REPLACE_SELECT
:
case
SQLCOM_CREATE_TABLE
:
case
SQLCOM_SET_OPTION
:
case
SQLCOM_DO
:
break
;
default:
return
FALSE
;
...
...
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