mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge branch '10.3' into 10.4
This commit is contained in:
@ -18,7 +18,8 @@ macro(restore WHAT)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
foreach (WHAT SUMMARY DESCRIPTION)
|
foreach (WHAT SUMMARY DESCRIPTION)
|
||||||
if(NOT CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT})
|
if(CPACK_RPM_PACKAGE_COMPONENT AND
|
||||||
|
NOT CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT})
|
||||||
message(FATAL_ERROR "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT} is not defined")
|
message(FATAL_ERROR "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT} is not defined")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -3272,6 +3272,30 @@ pk i v a b
|
|||||||
2 2 4 2 4
|
2 2 4 2 4
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
#
|
#
|
||||||
|
# MDEV-26553: Always FALSE/NULL disjunct on top level of WHERE is removed
|
||||||
|
#
|
||||||
|
create table t1 (a int, b int, index idx(a,b));
|
||||||
|
insert into t1 values (1,1), (1,2), (2,1), (2,2), (3,3);
|
||||||
|
create table t2 (c int);
|
||||||
|
insert into t2 values (5), (2), (3), (4);
|
||||||
|
select 1 from t1 s1
|
||||||
|
where 1 not in (select 1 from t1
|
||||||
|
where ((a = 1 or a = 2) and b = 1) or (b > 5 and b < 1));
|
||||||
|
1
|
||||||
|
select 1 from t1 s1
|
||||||
|
where 1 not in (select 1 from t1
|
||||||
|
where ((a = 1 or a = 2) and b = 1) or b = NULL);
|
||||||
|
1
|
||||||
|
select c from t2
|
||||||
|
where 2 not in (select 1 from t1
|
||||||
|
where ((a=1 or a=2) and b = 1) or (b > 5 and b < 1));
|
||||||
|
c
|
||||||
|
5
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -2239,6 +2239,30 @@ select * from t1 inner join t2 on ( t2.b = t1.v or t2.a = t1.pk);
|
|||||||
select * from t1 inner join t2 on ( t2.b = t1.v or t2.a = t1.pk);
|
select * from t1 inner join t2 on ( t2.b = t1.v or t2.a = t1.pk);
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-26553: Always FALSE/NULL disjunct on top level of WHERE is removed
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (a int, b int, index idx(a,b));
|
||||||
|
insert into t1 values (1,1), (1,2), (2,1), (2,2), (3,3);
|
||||||
|
|
||||||
|
create table t2 (c int);
|
||||||
|
insert into t2 values (5), (2), (3), (4);
|
||||||
|
|
||||||
|
select 1 from t1 s1
|
||||||
|
where 1 not in (select 1 from t1
|
||||||
|
where ((a = 1 or a = 2) and b = 1) or (b > 5 and b < 1));
|
||||||
|
|
||||||
|
select 1 from t1 s1
|
||||||
|
where 1 not in (select 1 from t1
|
||||||
|
where ((a = 1 or a = 2) and b = 1) or b = NULL);
|
||||||
|
|
||||||
|
select c from t2
|
||||||
|
where 2 not in (select 1 from t1
|
||||||
|
where ((a=1 or a=2) and b = 1) or (b > 5 and b < 1));
|
||||||
|
|
||||||
|
drop table t1,t2;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -3269,6 +3269,30 @@ pk i v a b
|
|||||||
2 2 4 2 4
|
2 2 4 2 4
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
#
|
#
|
||||||
|
# MDEV-26553: Always FALSE/NULL disjunct on top level of WHERE is removed
|
||||||
|
#
|
||||||
|
create table t1 (a int, b int, index idx(a,b));
|
||||||
|
insert into t1 values (1,1), (1,2), (2,1), (2,2), (3,3);
|
||||||
|
create table t2 (c int);
|
||||||
|
insert into t2 values (5), (2), (3), (4);
|
||||||
|
select 1 from t1 s1
|
||||||
|
where 1 not in (select 1 from t1
|
||||||
|
where ((a = 1 or a = 2) and b = 1) or (b > 5 and b < 1));
|
||||||
|
1
|
||||||
|
select 1 from t1 s1
|
||||||
|
where 1 not in (select 1 from t1
|
||||||
|
where ((a = 1 or a = 2) and b = 1) or b = NULL);
|
||||||
|
1
|
||||||
|
select c from t2
|
||||||
|
where 2 not in (select 1 from t1
|
||||||
|
where ((a=1 or a=2) and b = 1) or (b > 5 and b < 1));
|
||||||
|
c
|
||||||
|
5
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -5026,7 +5026,7 @@ sub mysqld_start ($$) {
|
|||||||
$mysqld->{'started_opts'}= $extra_opts;
|
$mysqld->{'started_opts'}= $extra_opts;
|
||||||
|
|
||||||
my $expect_file= "$opt_vardir/tmp/".$mysqld->name().".expect";
|
my $expect_file= "$opt_vardir/tmp/".$mysqld->name().".expect";
|
||||||
return $oldexe eq $exe ||
|
return $oldexe eq ($exe || '') ||
|
||||||
sleep_until_file_created($mysqld->value('pid-file'), $expect_file,
|
sleep_until_file_created($mysqld->value('pid-file'), $expect_file,
|
||||||
$opt_start_timeout, $mysqld->{'proc'}, $warn_seconds);
|
$opt_start_timeout, $mysqld->{'proc'}, $warn_seconds);
|
||||||
}
|
}
|
||||||
|
@ -251,8 +251,9 @@ static int ptr_cmp(void **a, void **b)
|
|||||||
#define add_to_purgatory(PINS, ADDR) \
|
#define add_to_purgatory(PINS, ADDR) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
*(void **)((char *)(ADDR)+(PINS)->pinbox->free_ptr_offset)= \
|
my_atomic_storeptr_explicit( \
|
||||||
(PINS)->purgatory; \
|
(void **)((char *)(ADDR)+(PINS)->pinbox->free_ptr_offset), \
|
||||||
|
(PINS)->purgatory, MY_MEMORY_ORDER_RELEASE); \
|
||||||
(PINS)->purgatory= (ADDR); \
|
(PINS)->purgatory= (ADDR); \
|
||||||
(PINS)->purgatory_count++; \
|
(PINS)->purgatory_count++; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -112,13 +112,16 @@ retry:
|
|||||||
|
|
||||||
cur_hashnr= cursor->curr->hashnr;
|
cur_hashnr= cursor->curr->hashnr;
|
||||||
cur_keylen= cursor->curr->keylen;
|
cur_keylen= cursor->curr->keylen;
|
||||||
cur_key= cursor->curr->key;
|
cur_key= my_atomic_loadptr_explicit((void **) &cursor->curr->key,
|
||||||
|
MY_MEMORY_ORDER_ACQUIRE);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
link= cursor->curr->link;
|
link= (intptr) my_atomic_loadptr_explicit((void **) &cursor->curr->link,
|
||||||
|
MY_MEMORY_ORDER_RELAXED);
|
||||||
cursor->next= PTR(link);
|
cursor->next= PTR(link);
|
||||||
lf_pin(pins, 0, cursor->next);
|
lf_pin(pins, 0, cursor->next);
|
||||||
} while (link != cursor->curr->link && LF_BACKOFF());
|
} while (link != (intptr) my_atomic_loadptr((void **) &cursor->curr->link)
|
||||||
|
&& LF_BACKOFF());
|
||||||
|
|
||||||
if (!DELETED(link))
|
if (!DELETED(link))
|
||||||
{
|
{
|
||||||
|
@ -5506,6 +5506,7 @@ make_join_statistics(JOIN *join, List<TABLE_LIST> &tables_list,
|
|||||||
if (!s->const_keys.is_clear_all())
|
if (!s->const_keys.is_clear_all())
|
||||||
{
|
{
|
||||||
sargable_cond= get_sargable_cond(join, s->table);
|
sargable_cond= get_sargable_cond(join, s->table);
|
||||||
|
bool is_sargable_cond_of_where= sargable_cond == &join->conds;
|
||||||
|
|
||||||
select= make_select(s->table, found_const_table_map,
|
select= make_select(s->table, found_const_table_map,
|
||||||
found_const_table_map,
|
found_const_table_map,
|
||||||
@ -5522,6 +5523,12 @@ make_join_statistics(JOIN *join, List<TABLE_LIST> &tables_list,
|
|||||||
*/
|
*/
|
||||||
*sargable_cond= select->cond;
|
*sargable_cond= select->cond;
|
||||||
|
|
||||||
|
if (is_sargable_cond_of_where &&
|
||||||
|
join->conds && join->conds->type() == Item::COND_ITEM &&
|
||||||
|
((Item_cond*) (join->conds))->functype() ==
|
||||||
|
Item_func::COND_AND_FUNC)
|
||||||
|
join->cond_equal= &((Item_cond_and*) (join->conds))->m_cond_equal;
|
||||||
|
|
||||||
s->quick=select->quick;
|
s->quick=select->quick;
|
||||||
s->needed_reg=select->needed_reg;
|
s->needed_reg=select->needed_reg;
|
||||||
select->quick=0;
|
select->quick=0;
|
||||||
|
@ -86,7 +86,9 @@ set(LIB_DIR "lib")
|
|||||||
set(INCLUDE_DIR "include")
|
set(INCLUDE_DIR "include")
|
||||||
set(GRN_INCLUDE_DIR "include/groonga")
|
set(GRN_INCLUDE_DIR "include/groonga")
|
||||||
set(DATA_DIR "share")
|
set(DATA_DIR "share")
|
||||||
set(GRN_DATA_DIR "${DATA_DIR}/${GRN_PROJECT_NAME}")
|
if(NOT DEFINED GRN_DATA_DIR)
|
||||||
|
set(GRN_DATA_DIR "${DATA_DIR}/${GRN_PROJECT_NAME}")
|
||||||
|
endif()
|
||||||
set(CONFIG_DIR "etc")
|
set(CONFIG_DIR "etc")
|
||||||
set(GRN_CONFIG_DIR "${CONFIG_DIR}/${GRN_PROJECT_NAME}")
|
set(GRN_CONFIG_DIR "${CONFIG_DIR}/${GRN_PROJECT_NAME}")
|
||||||
set(GRN_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/${GRN_CONFIG_DIR}/groonga.conf")
|
set(GRN_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/${GRN_CONFIG_DIR}/groonga.conf")
|
||||||
|
@ -16,7 +16,9 @@
|
|||||||
# MA 02110-1335 USA
|
# MA 02110-1335 USA
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
set(GROONGA_NORMALIZER_MYSQL_PROJECT_NAME "groonga-normalizer-mysql")
|
if(NOT DEFINED GROONGA_NORMALIZER_MYSQL_PROJECT_NAME)
|
||||||
|
set(GROONGA_NORMALIZER_MYSQL_PROJECT_NAME "groonga-normalizer-mysql")
|
||||||
|
endif()
|
||||||
project("${GROONGA_NORMALIZER_MYSQL_PROJECT_NAME}")
|
project("${GROONGA_NORMALIZER_MYSQL_PROJECT_NAME}")
|
||||||
|
|
||||||
if(DEFINED GROONGA_NORMALIZER_MYSQL_EMBED)
|
if(DEFINED GROONGA_NORMALIZER_MYSQL_EMBED)
|
||||||
|
@ -59,7 +59,7 @@ int main(int argc __attribute__((unused)), char **argv)
|
|||||||
|
|
||||||
pthread_mutex_init(&mutex, 0);
|
pthread_mutex_init(&mutex, 0);
|
||||||
|
|
||||||
#define CYCLES 3000
|
#define CYCLES 30000
|
||||||
#define THREADS 30
|
#define THREADS 30
|
||||||
|
|
||||||
diag("N CPUs: %d", my_getncpus());
|
diag("N CPUs: %d", my_getncpus());
|
||||||
|
Reference in New Issue
Block a user