Commit 48488e48 authored by ingo@mysql.com's avatar ingo@mysql.com

Merge mysql.com:/home/mydev/mysql-4.1-4100

into mysql.com:/home/mydev/mysql-5.0-5000
parents 160541b5 42531336
...@@ -6,12 +6,15 @@ then ...@@ -6,12 +6,15 @@ then
exit 1 exit 1
fi fi
prefix_configs="--prefix=/usr/local/mysql"
just_print= just_print=
just_configure= just_configure=
full_debug= full_debug=
while test $# -gt 0 while test $# -gt 0
do do
case "$1" in case "$1" in
--prefix=* ) prefix_configs="$1"; shift ;;
--with-debug=full ) full_debug="=full"; shift ;;
-c | --just-configure ) just_configure=1; shift ;; -c | --just-configure ) just_configure=1; shift ;;
-n | --just-print | --print ) just_print=1; shift ;; -n | --just-print | --print ) just_print=1; shift ;;
-h | --help ) cat <<EOF; exit 0 ;; -h | --help ) cat <<EOF; exit 0 ;;
...@@ -19,12 +22,11 @@ Usage: $0 [-h|-n] [configure-options] ...@@ -19,12 +22,11 @@ Usage: $0 [-h|-n] [configure-options]
-h, --help Show this help message. -h, --help Show this help message.
-n, --just-print Don't actually run any commands; just print them. -n, --just-print Don't actually run any commands; just print them.
-c, --just-configure Stop after running configure. -c, --just-configure Stop after running configure.
--with-debug=full Build with full debug.
Any other options will be passed directly to configure. --prefix=path Build with prefix 'path'.
Note: this script is intended for internal use by MySQL developers. Note: this script is intended for internal use by MySQL developers.
EOF EOF
--with-debug=full ) full_debug="=full"; shift ;;
* ) * )
echo "Unknown option '$1'" echo "Unknown option '$1'"
exit 1 exit 1
...@@ -70,7 +72,7 @@ debug_extra_cflags="-O1 -Wuninitialized" ...@@ -70,7 +72,7 @@ debug_extra_cflags="-O1 -Wuninitialized"
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti" base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
amd64_cxxflags="-DBIG_TABLES" amd64_cxxflags="-DBIG_TABLES"
base_configs="--prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-readline" base_configs="$prefix_configs --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-readline"
static_link="--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static" static_link="--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static"
amd64_configs="" amd64_configs=""
alpha_configs="" # Not used yet alpha_configs="" # Not used yet
......
...@@ -530,7 +530,11 @@ typedef SOCKET_SIZE_TYPE size_socket; ...@@ -530,7 +530,11 @@ typedef SOCKET_SIZE_TYPE size_socket;
#define FN_LEN 256 /* Max file name len */ #define FN_LEN 256 /* Max file name len */
#define FN_HEADLEN 253 /* Max length of filepart of file name */ #define FN_HEADLEN 253 /* Max length of filepart of file name */
#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ #define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */
#ifdef PATH_MAX
#define FN_REFLEN PATH_MAX/* Max length of full path-name */
#else
#define FN_REFLEN 512 /* Max length of full path-name */ #define FN_REFLEN 512 /* Max length of full path-name */
#endif
#define FN_EXTCHAR '.' #define FN_EXTCHAR '.'
#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ #define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */
#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ #define FN_CURLIB '.' /* ./ is used as abbrev for current dir */
......
DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3,tT; DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3;
DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `TEST_$1`;
DROP DATABASE IF EXISTS `test_$1`; DROP DATABASE IF EXISTS `test_$1`;
CREATE TABLE T1 (a int); CREATE TABLE T1 (a int);
...@@ -131,13 +131,13 @@ show tables like 't1%'; ...@@ -131,13 +131,13 @@ show tables like 't1%';
Tables_in_test (t1%) Tables_in_test (t1%)
t1 t1
drop table t1; drop table t1;
create temporary table tT(a int(11), b varchar(8)); create temporary table T1(a int(11), b varchar(8));
insert into tT values (1, 'abc'); insert into T1 values (1, 'abc');
select * from tT; select * from T1;
a b a b
1 abc 1 abc
alter table tT add index (a); alter table T1 add index (a);
select * from tT; select * from T1;
a b a b
1 abc 1 abc
drop table tT; drop table T1;
...@@ -778,3 +778,20 @@ sid wnid ...@@ -778,3 +778,20 @@ sid wnid
39560 01019090000 39560 01019090000
37994 01019090000 37994 01019090000
drop table t1; drop table t1;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (2), (1), (1), (2), (1);
SELECT a FROM t1 ORDER BY a;
a
1
1
1
2
2
(SELECT a FROM t1) ORDER BY a;
a
1
1
1
2
2
DROP TABLE t1;
...@@ -10,7 +10,7 @@ show variables like "lower_case_table_names"; ...@@ -10,7 +10,7 @@ show variables like "lower_case_table_names";
enable_query_log; enable_query_log;
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3,tT; DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3;
DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `TEST_$1`;
DROP DATABASE IF EXISTS `test_$1`; DROP DATABASE IF EXISTS `test_$1`;
--enable_warnings --enable_warnings
...@@ -105,9 +105,9 @@ drop table t1; ...@@ -105,9 +105,9 @@ drop table t1;
# Bug #7261: Alter table loses temp table # Bug #7261: Alter table loses temp table
# #
create temporary table tT(a int(11), b varchar(8)); create temporary table T1(a int(11), b varchar(8));
insert into tT values (1, 'abc'); insert into T1 values (1, 'abc');
select * from tT; select * from T1;
alter table tT add index (a); alter table T1 add index (a);
select * from tT; select * from T1;
drop table tT; drop table T1;
...@@ -539,3 +539,13 @@ explain select * from t1 where wnid like '0101%' order by wnid; ...@@ -539,3 +539,13 @@ explain select * from t1 where wnid like '0101%' order by wnid;
select * from t1 where wnid like '0101%' order by wnid; select * from t1 where wnid like '0101%' order by wnid;
drop table t1; drop table t1;
#
# Bug #7672 - a wrong result for a select query in braces followed by order by
#
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (2), (1), (1), (2), (1);
SELECT a FROM t1 ORDER BY a;
(SELECT a FROM t1) ORDER BY a;
DROP TABLE t1;
...@@ -2134,7 +2134,6 @@ String *Item_char_typecast::val_str(String *str) ...@@ -2134,7 +2134,6 @@ String *Item_char_typecast::val_str(String *str)
String *res; String *res;
uint32 length; uint32 length;
#if 0
if (!charset_conversion) if (!charset_conversion)
{ {
if (!(res= args[0]->val_str(str))) if (!(res= args[0]->val_str(str)))
...@@ -2144,7 +2143,6 @@ String *Item_char_typecast::val_str(String *str) ...@@ -2144,7 +2143,6 @@ String *Item_char_typecast::val_str(String *str)
} }
} }
else else
#endif
{ {
// Convert character set if differ // Convert character set if differ
uint dummy_errors; uint dummy_errors;
...@@ -2182,9 +2180,18 @@ String *Item_char_typecast::val_str(String *str) ...@@ -2182,9 +2180,18 @@ String *Item_char_typecast::val_str(String *str)
void Item_char_typecast::fix_length_and_dec() void Item_char_typecast::fix_length_and_dec()
{ {
uint32 char_length; uint32 char_length;
charset_conversion= !my_charset_same(args[0]->collation.collation, cast_cs) && /*
args[0]->collation.collation != &my_charset_bin && We always force character set conversion if cast_cs
cast_cs != &my_charset_bin; is a multi-byte character set. It garantees that the
result of CAST is a well-formed string.
For single-byte character sets we allow just to copy
from the argument. A single-byte character sets string
is always well-formed.
*/
charset_conversion= (cast_cs->mbmaxlen > 1) ||
!my_charset_same(args[0]->collation.collation, cast_cs) &&
args[0]->collation.collation != &my_charset_bin &&
cast_cs != &my_charset_bin;
collation.set(cast_cs, DERIVATION_IMPLICIT); collation.set(cast_cs, DERIVATION_IMPLICIT);
char_length= (cast_length >= 0) ? cast_length : char_length= (cast_length >= 0) ? cast_length :
args[0]->max_length/args[0]->collation.collation->mbmaxlen; args[0]->max_length/args[0]->collation.collation->mbmaxlen;
......
...@@ -982,7 +982,7 @@ extern Gt_creator gt_creator; ...@@ -982,7 +982,7 @@ extern Gt_creator gt_creator;
extern Lt_creator lt_creator; extern Lt_creator lt_creator;
extern Ge_creator ge_creator; extern Ge_creator ge_creator;
extern Le_creator le_creator; extern Le_creator le_creator;
extern char language[LIBLEN],reg_ext[FN_EXTLEN]; extern char language[FN_REFLEN], reg_ext[FN_EXTLEN];
extern char glob_hostname[FN_REFLEN], mysql_home[FN_REFLEN]; extern char glob_hostname[FN_REFLEN], mysql_home[FN_REFLEN];
extern char pidfile_name[FN_REFLEN], system_time_zone[30], *opt_init_file; extern char pidfile_name[FN_REFLEN], system_time_zone[30], *opt_init_file;
extern char log_error_file[FN_REFLEN]; extern char log_error_file[FN_REFLEN];
......
...@@ -351,7 +351,7 @@ char *default_tz_name; ...@@ -351,7 +351,7 @@ char *default_tz_name;
char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN]; char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN];
char* log_error_file_ptr= log_error_file; char* log_error_file_ptr= log_error_file;
char mysql_real_data_home[FN_REFLEN], char mysql_real_data_home[FN_REFLEN],
language[LIBLEN],reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN], language[FN_REFLEN], reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN],
*mysqld_user,*mysqld_chroot, *opt_init_file, *mysqld_user,*mysqld_chroot, *opt_init_file,
*opt_init_connect, *opt_init_slave, *opt_init_connect, *opt_init_slave,
def_ft_boolean_syntax[sizeof(ft_boolean_syntax)]; def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment