mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge
BitKeeper/etc/logging_ok: auto-union BitKeeper/triggers/post-commit: Auto merged include/my_pthread.h: Auto merged mysql-test/r/select.result: Auto merged mysql-test/t/select.test: Auto merged sql/item.cc: Auto merged sql/log.cc: Auto merged sql/table.cc: SCCS merged
This commit is contained in:
@ -20,14 +20,20 @@ if [ "$BK_STATUS" = OK ]
|
|||||||
then
|
then
|
||||||
|
|
||||||
CHANGESET=`bk -R prs -r+ -h -d':P:::I:' ChangeSet`
|
CHANGESET=`bk -R prs -r+ -h -d':P:::I:' ChangeSet`
|
||||||
BUG=`bk -R prs -r+ -h -d':C:' ChangeSet | sed -ne 's/^.*[Bb][Uu][Gg] *# *\([0-9][0-9]*\).*$/ BUG#\1/p'`
|
BUG=`bk -R prs -r+ -h -d':C:' ChangeSet | sed -ne 's/^.*[Bb][Uu][Gg] *# *\([0-9][0-9]*\).*$/\1/p'`
|
||||||
WL=`bk -R prs -r+ -h -d':C:' ChangeSet | sed -ne 's/^.*[Ww][Ll] *# *\([0-9][0-9]*\).*$/ WL#\1/p'`
|
WL=`bk -R prs -r+ -h -d':C:' ChangeSet | sed -ne 's/^.*[Ww][Ll] *# *\([0-9][0-9]*\).*$/ WL#\1/p'`
|
||||||
|
|
||||||
if [ "$BUG" = "" ]
|
if [ "$BUG" = "" ]
|
||||||
then
|
then
|
||||||
TO=dev-public@mysql.com
|
TO=dev-public@mysql.com
|
||||||
|
BS=""
|
||||||
|
BH=""
|
||||||
else
|
else
|
||||||
TO=dev-bugs@mysql.com
|
TO=dev-bugs@mysql.com
|
||||||
|
BS=" BUG#$BUG"
|
||||||
|
# need newline here
|
||||||
|
BH="X-Bug: $BUG
|
||||||
|
"
|
||||||
fi
|
fi
|
||||||
#++
|
#++
|
||||||
# dev-public@ / dev-bugs@
|
# dev-public@ / dev-bugs@
|
||||||
@ -38,8 +44,8 @@ fi
|
|||||||
List-ID: <bk.mysql-$VERSION>
|
List-ID: <bk.mysql-$VERSION>
|
||||||
From: $FROM
|
From: $FROM
|
||||||
To: $TO
|
To: $TO
|
||||||
Subject: bk commit - $VERSION tree ($CHANGESET)${BUG}${WL}
|
Subject: bk commit - $VERSION tree ($CHANGESET)${BS}${WL}
|
||||||
|
$BH
|
||||||
EOF
|
EOF
|
||||||
bk changes -v -r+
|
bk changes -v -r+
|
||||||
bk cset -r+ -d
|
bk cset -r+ -d
|
||||||
@ -54,14 +60,15 @@ EOF
|
|||||||
List-ID: <bk.mysql-$VERSION>
|
List-ID: <bk.mysql-$VERSION>
|
||||||
From: $FROM
|
From: $FROM
|
||||||
To: $INTERNALS
|
To: $INTERNALS
|
||||||
Subject: bk commit into $VERSION tree ($CHANGESET)
|
Subject: bk commit into $VERSION tree ($CHANGESET)$BS
|
||||||
|
$BH
|
||||||
|
|
||||||
Below is the list of changes that have just been committed into a local
|
Below is the list of changes that have just been committed into a local
|
||||||
$VERSION repository of $USER. When $USER does a push these changes will
|
$VERSION repository of $USER. When $USER does a push these changes will
|
||||||
be propagated to the main repository and, within 24 hours after the
|
be propagated to the main repository and, within 24 hours after the
|
||||||
push, to the public repository.
|
push, to the public repository.
|
||||||
For information on how to access the public repository
|
For information on how to access the public repository
|
||||||
see http://www.mysql.com/doc/I/n/Installing_source_tree.html
|
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
bk changes -v -r+
|
bk changes -v -r+
|
||||||
@ -81,7 +88,7 @@ EOF
|
|||||||
List-ID: <bk.mysql-$VERSION>
|
List-ID: <bk.mysql-$VERSION>
|
||||||
From: $FROM
|
From: $FROM
|
||||||
To: $DOCS
|
To: $DOCS
|
||||||
Subject: bk commit - $VERSION tree (Manual) ($CHANGESET)
|
Subject: bk commit - $VERSION tree (Manual) ($CHANGESET)$BS
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
bk changes -v -r+
|
bk changes -v -r+
|
||||||
|
@ -66,18 +66,18 @@ LINK32=link.exe
|
|||||||
# PROP Output_Dir ".\Release"
|
# PROP Output_Dir ".\Release"
|
||||||
# PROP Intermediate_Dir ".\Release"
|
# PROP Intermediate_Dir ".\Release"
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/client_test.pch" /Fo".\Release/" /Fd".\Release/" /c /GX
|
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_client_test.pch" /Fo".\Release/" /Fd".\Release/" /c /GX
|
||||||
# ADD CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/client_test.pch" /Fo".\Release/" /Fd".\Release/" /c /GX
|
# ADD CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_client_test.pch" /Fo".\Release/" /Fd".\Release/" /c /GX
|
||||||
# ADD BASE MTL /nologo /tlb".\Release\client_test.tlb" /win32
|
# ADD BASE MTL /nologo /tlb".\Release\mysql_client_test.tlb" /win32
|
||||||
# ADD MTL /nologo /tlb".\Release\client_test.tlb" /win32
|
# ADD MTL /nologo /tlb".\Release\mysql_client_test.tlb" /win32
|
||||||
# ADD BASE RSC /l 1033
|
# ADD BASE RSC /l 1033
|
||||||
# ADD RSC /l 1033
|
# ADD RSC /l 1033
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
# ADD BASE BSC32 /nologo
|
# ADD BASE BSC32 /nologo
|
||||||
# ADD BSC32 /nologo
|
# ADD BSC32 /nologo
|
||||||
LINK32=link.exe
|
LINK32=link.exe
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\tests\client_test.exe" /incremental:no /pdb:".\Release\client_test.pdb" /pdbtype:sept /subsystem:console
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\tests\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\tests\client_test.exe" /incremental:no /pdb:".\Release\client_test.pdb" /pdbtype:sept /subsystem:console
|
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\tests\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||||
|
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
@ -376,8 +376,8 @@ static REP_SET *make_new_set(REP_SETS *sets);
|
|||||||
static void make_sets_invisible(REP_SETS *sets);
|
static void make_sets_invisible(REP_SETS *sets);
|
||||||
static void free_last_set(REP_SETS *sets);
|
static void free_last_set(REP_SETS *sets);
|
||||||
static void free_sets(REP_SETS *sets);
|
static void free_sets(REP_SETS *sets);
|
||||||
static void set_bit(REP_SET *set, uint bit);
|
static void internal_set_bit(REP_SET *set, uint bit);
|
||||||
static void clear_bit(REP_SET *set, uint bit);
|
static void internal_clear_bit(REP_SET *set, uint bit);
|
||||||
static void or_bits(REP_SET *to,REP_SET *from);
|
static void or_bits(REP_SET *to,REP_SET *from);
|
||||||
static void copy_bits(REP_SET *to,REP_SET *from);
|
static void copy_bits(REP_SET *to,REP_SET *from);
|
||||||
static int cmp_bits(REP_SET *set1,REP_SET *set2);
|
static int cmp_bits(REP_SET *set1,REP_SET *set2);
|
||||||
@ -454,7 +454,7 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
|||||||
{
|
{
|
||||||
if (from[i][0] == '\\' && from[i][1] == '^')
|
if (from[i][0] == '\\' && from[i][1] == '^')
|
||||||
{
|
{
|
||||||
set_bit(start_states,states+1);
|
internal_set_bit(start_states,states+1);
|
||||||
if (!from[i][2])
|
if (!from[i][2])
|
||||||
{
|
{
|
||||||
start_states->table_offset=i;
|
start_states->table_offset=i;
|
||||||
@ -463,8 +463,8 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
|||||||
}
|
}
|
||||||
else if (from[i][0] == '\\' && from[i][1] == '$')
|
else if (from[i][0] == '\\' && from[i][1] == '$')
|
||||||
{
|
{
|
||||||
set_bit(start_states,states);
|
internal_set_bit(start_states,states);
|
||||||
set_bit(word_states,states);
|
internal_set_bit(word_states,states);
|
||||||
if (!from[i][2] && start_states->table_offset == (uint) ~0)
|
if (!from[i][2] && start_states->table_offset == (uint) ~0)
|
||||||
{
|
{
|
||||||
start_states->table_offset=i;
|
start_states->table_offset=i;
|
||||||
@ -473,11 +473,11 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
set_bit(word_states,states);
|
internal_set_bit(word_states,states);
|
||||||
if (from[i][0] == '\\' && (from[i][1] == 'b' && from[i][2]))
|
if (from[i][0] == '\\' && (from[i][1] == 'b' && from[i][2]))
|
||||||
set_bit(start_states,states+1);
|
internal_set_bit(start_states,states+1);
|
||||||
else
|
else
|
||||||
set_bit(start_states,states);
|
internal_set_bit(start_states,states);
|
||||||
}
|
}
|
||||||
for (pos=from[i], len=0; *pos ; pos++)
|
for (pos=from[i], len=0; *pos ; pos++)
|
||||||
{
|
{
|
||||||
@ -583,9 +583,9 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
|||||||
follow[i].len > found_end)
|
follow[i].len > found_end)
|
||||||
found_end=follow[i].len;
|
found_end=follow[i].len;
|
||||||
if (chr && follow[i].chr)
|
if (chr && follow[i].chr)
|
||||||
set_bit(new_set,i+1); /* To next set */
|
internal_set_bit(new_set,i+1); /* To next set */
|
||||||
else
|
else
|
||||||
set_bit(new_set,i);
|
internal_set_bit(new_set,i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (found_end)
|
if (found_end)
|
||||||
@ -602,7 +602,7 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
|||||||
if (follow[bit_nr-1].len < found_end ||
|
if (follow[bit_nr-1].len < found_end ||
|
||||||
(new_set->found_len &&
|
(new_set->found_len &&
|
||||||
(chr == 0 || !follow[bit_nr].chr)))
|
(chr == 0 || !follow[bit_nr].chr)))
|
||||||
clear_bit(new_set,i);
|
internal_clear_bit(new_set,i);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (chr == 0 || !follow[bit_nr].chr)
|
if (chr == 0 || !follow[bit_nr].chr)
|
||||||
@ -751,13 +751,13 @@ static void free_sets(REP_SETS *sets)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_bit(REP_SET *set, uint bit)
|
static void internal_set_bit(REP_SET *set, uint bit)
|
||||||
{
|
{
|
||||||
set->bits[bit / WORD_BIT] |= 1 << (bit % WORD_BIT);
|
set->bits[bit / WORD_BIT] |= 1 << (bit % WORD_BIT);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clear_bit(REP_SET *set, uint bit)
|
static void internal_clear_bit(REP_SET *set, uint bit)
|
||||||
{
|
{
|
||||||
set->bits[bit / WORD_BIT] &= ~ (1 << (bit % WORD_BIT));
|
set->bits[bit / WORD_BIT] &= ~ (1 << (bit % WORD_BIT));
|
||||||
return;
|
return;
|
||||||
|
@ -637,7 +637,7 @@ extern int pthread_dummy(int);
|
|||||||
MySQL can survive with 32K, but some glibc libraries require > 128K stack
|
MySQL can survive with 32K, but some glibc libraries require > 128K stack
|
||||||
To resolve hostnames
|
To resolve hostnames
|
||||||
*/
|
*/
|
||||||
#define DEFAULT_THREAD_STACK (192*1024L)
|
#define DEFAULT_THREAD_STACK (256*1024L)
|
||||||
#else
|
#else
|
||||||
#define DEFAULT_THREAD_STACK (192*1024)
|
#define DEFAULT_THREAD_STACK (192*1024)
|
||||||
#endif
|
#endif
|
||||||
|
@ -2388,3 +2388,16 @@ WART 0100 1
|
|||||||
WART 0200 1
|
WART 0200 1
|
||||||
WART 0300 3
|
WART 0300 3
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 ( a BLOB, INDEX (a(20)) );
|
||||||
|
CREATE TABLE t2 ( a BLOB, INDEX (a(20)) );
|
||||||
|
INSERT INTO t1 VALUES ('one'),('two'),('three'),('four'),('five');
|
||||||
|
INSERT INTO t2 VALUES ('one'),('two'),('three'),('four'),('five');
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USE INDEX (a) ON t1.a=t2.a;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
|
1 SIMPLE t2 ref a a 23 test.t1.a 2
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 FORCE INDEX (a) ON t1.a=t2.a;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
|
1 SIMPLE t2 ref a a 23 test.t1.a 2
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -1970,3 +1970,18 @@ SELECT K2C4, K4N4, F2I4 FROM t1
|
|||||||
WHERE K2C4 = 'WART' AND (K2C4 = 'WART' OR K4N4 = '0200');
|
WHERE K2C4 = 'WART' AND (K2C4 = 'WART' OR K4N4 = '0200');
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test case for bug 7520: a wrong cost of the index for a BLOB field
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( a BLOB, INDEX (a(20)) );
|
||||||
|
CREATE TABLE t2 ( a BLOB, INDEX (a(20)) );
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES ('one'),('two'),('three'),('four'),('five');
|
||||||
|
INSERT INTO t2 VALUES ('one'),('two'),('three'),('four'),('five');
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USE INDEX (a) ON t1.a=t2.a;
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 FORCE INDEX (a) ON t1.a=t2.a;
|
||||||
|
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -4525,7 +4525,7 @@ bool Item_type_holder::join_types(THD *thd, Item *item, TABLE *table)
|
|||||||
bool use_new_field= 0, use_expression_type= 0;
|
bool use_new_field= 0, use_expression_type= 0;
|
||||||
Item_result new_result_type= type_convertor[item_type][item->result_type()];
|
Item_result new_result_type= type_convertor[item_type][item->result_type()];
|
||||||
Field *field= get_holder_example_field(thd, item, table);
|
Field *field= get_holder_example_field(thd, item, table);
|
||||||
bool item_is_a_field= field;
|
bool item_is_a_field= (field != NULL);
|
||||||
/*
|
/*
|
||||||
Check if both items point to fields: in this case we
|
Check if both items point to fields: in this case we
|
||||||
can adjust column types of result table in the union smartly.
|
can adjust column types of result table in the union smartly.
|
||||||
|
@ -1325,7 +1325,7 @@ bool MYSQL_LOG::write(Log_event* event_info)
|
|||||||
binlog_[wild_]{do|ignore}_table?" (WL#1049)"
|
binlog_[wild_]{do|ignore}_table?" (WL#1049)"
|
||||||
*/
|
*/
|
||||||
if ((thd && !(thd->options & OPTION_BIN_LOG)) ||
|
if ((thd && !(thd->options & OPTION_BIN_LOG)) ||
|
||||||
(local_db && !db_ok(local_db, binlog_do_db, binlog_ignore_db)))
|
(!db_ok(local_db, binlog_do_db, binlog_ignore_db)))
|
||||||
{
|
{
|
||||||
VOID(pthread_mutex_unlock(&LOCK_log));
|
VOID(pthread_mutex_unlock(&LOCK_log));
|
||||||
DBUG_PRINT("error",("!db_ok('%s')", local_db));
|
DBUG_PRINT("error",("!db_ok('%s')", local_db));
|
||||||
|
@ -661,6 +661,7 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
|
|||||||
if (!(field->flags & BINARY_FLAG))
|
if (!(field->flags & BINARY_FLAG))
|
||||||
keyinfo->flags|= HA_END_SPACE_KEY;
|
keyinfo->flags|= HA_END_SPACE_KEY;
|
||||||
}
|
}
|
||||||
|
set_if_bigger(outparam->max_key_length, keyinfo->key_length);
|
||||||
if (field->type() == MYSQL_TYPE_BIT)
|
if (field->type() == MYSQL_TYPE_BIT)
|
||||||
key_part->key_part_flag|= HA_BIT_PART;
|
key_part->key_part_flag|= HA_BIT_PART;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user