summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-02-17 05:43:37 +0200
committerunknown <monty@mashka.mysql.fi>2003-02-17 05:43:37 +0200
commite793dfe95e70c60af4a517ba7a5255ad15d48d95 (patch)
treea3fbfddbae0d5a6e600e68942bb243fadb5269aa
parent77f5c5a7cf4e99fa3d760f1541bafec3b182def3 (diff)
parent300b3fb64280ae3d982745b683029a2722b3daef (diff)
downloadmariadb-git-e793dfe95e70c60af4a517ba7a5255ad15d48d95.tar.gz
Merge with 4.0.11 tree to get latest bug fixes
client/mysql.cc: Auto merged client/mysqldump.c: Auto merged configure.in: Auto merged include/my_pthread.h: Auto merged include/mysql.h: Auto merged libmysql/libmysql.c: Auto merged libmysqld/libmysqld.c: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/rpl000001.result: Auto merged mysql-test/r/rpl000004.result: Auto merged mysql-test/r/type_blob.result: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/rpl000001.test: Auto merged mysys/my_init.c: Auto merged scripts/mysqld_safe.sh: Auto merged sql/item_cmpfunc.h: Auto merged sql/mysql_priv.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_handler.cc: Auto merged sql/sql_table.cc: Auto merged sql/structs.h: Auto merged Makefile.am: Merge with 4.0.11 mysql-test/mysql-test-run.sh: Merge with 4.0.11 mysql-test/r/rpl_log.result: Use local version (needs to be updated) mysql-test/t/type_blob.test: Merge with 4.0.11 sql/mysqld.cc: Merge with 4.0.11 sql/protocol.cc: Use local version
-rw-r--r--Makefile.am15
-rw-r--r--client/mysql.cc3
-rw-r--r--client/mysqldump.c12
-rw-r--r--configure.in61
-rw-r--r--extra/mysql_waitpid.c14
-rw-r--r--include/my_pthread.h2
-rw-r--r--include/mysql.h2
-rw-r--r--libmysql/libmysql.c5
-rw-r--r--libmysqld/libmysqld.c2
-rw-r--r--mysql-test/mysql-test-run.sh1
-rw-r--r--mysql-test/r/innodb.result10
-rw-r--r--mysql-test/r/rpl000001.result14
-rw-r--r--mysql-test/r/rpl000004.result2
-rw-r--r--mysql-test/r/type_blob.result7
-rw-r--r--mysql-test/std_data/words.dat60
-rw-r--r--mysql-test/t/innodb.test13
-rw-r--r--mysql-test/t/rpl000001.test2
-rw-r--r--mysql-test/t/type_blob.test14
-rw-r--r--mysys/my_init.c2
-rw-r--r--mysys/my_netware.c5
-rw-r--r--netware/Makefile.am23
-rw-r--r--netware/init_db.sql3
-rw-r--r--netware/isamchk.def2
-rw-r--r--netware/isamlog.def4
-rw-r--r--netware/libmysql.def2
-rw-r--r--netware/my_print_defaults.def2
-rw-r--r--netware/myisamchk.def2
-rw-r--r--netware/myisamlog.def2
-rw-r--r--netware/myisampack.def2
-rw-r--r--netware/mysql.def2
-rw-r--r--netware/mysql_install_db.c14
-rw-r--r--netware/mysql_install_db.def2
-rw-r--r--netware/mysql_test_run.def2
-rw-r--r--netware/mysqladmin.def2
-rw-r--r--netware/mysqlbinlog.def2
-rw-r--r--netware/mysqlcheck.def2
-rw-r--r--netware/mysqld_safe.c4
-rw-r--r--netware/mysqldump.def2
-rw-r--r--netware/mysqlimport.def2
-rw-r--r--netware/mysqlshow.def2
-rw-r--r--netware/mysqltest.def2
-rw-r--r--netware/pack_isam.def4
-rw-r--r--netware/perror.def2
-rw-r--r--netware/replace.def2
-rw-r--r--netware/resolveip.def2
-rw-r--r--netware/test_db.sql3
-rw-r--r--scripts/make_binary_distribution.sh18
-rw-r--r--scripts/mysqld_safe.sh2
-rw-r--r--sql/item_cmpfunc.h17
-rw-r--r--sql/mysql_priv.h2
-rw-r--r--sql/mysqld.cc44
-rw-r--r--sql/records.cc9
-rw-r--r--sql/sql_delete.cc10
-rw-r--r--sql/sql_handler.cc9
-rw-r--r--sql/sql_table.cc2
-rw-r--r--sql/structs.h2
56 files changed, 287 insertions, 167 deletions
diff --git a/Makefile.am b/Makefile.am
index fc3cc23cf69..9da59074caa 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,15 +25,15 @@ SUBDIRS = . include @docs_dirs@ \
@readline_topdir@ @readline_dir@ \
@thread_dirs@ pstack @sql_client_dirs@ \
@sql_server_dirs@ scripts man tests \
- BUILD netware os2 @libmysqld_dirs@ \
- @bench_dirs@ support-files @fs_dirs@ @tools_dirs@ \
- @platform_dir@
+ BUILD @netware_dir@ os2 @libmysqld_dirs@ \
+ @bench_dirs@ support-files @fs_dirs@ @tools_dirs@
+
# Relink after clean
linked_sources = linked_client_sources linked_server_sources \
linked_libmysql_sources linked_libmysql_r_sources \
linked_libmysqld_sources linked_libmysqldex_sources \
- linked_include_sources
+ linked_include_sources @linked_netware_sources@
CLEANFILES = $(linked_sources)
@@ -64,6 +64,10 @@ linked_libmysqldex_sources:
cd libmysqld/examples; $(MAKE) link_sources
echo timestamp > linked_libmysqldex_sources
+linked_netware_sources:
+ cd @netware_dir@; $(MAKE) link_sources
+ echo timestamp > linked_netware_sources
+
#avoid recursive make calls in sql directory
linked_server_sources:
cd sql; rm -f mini_client_errors.c;@LN_CP_F@ ../libmysql/errmsg.c mini_client_errors.c
@@ -74,7 +78,7 @@ init-db: all
$(top_builddir)/scripts/mysql_install_db
bin-dist: all
- $(top_builddir)/scripts/make_binary_distribution
+ $(top_builddir)/scripts/make_binary_distribution @MAKE_BINARY_DISTRIBUTION_OPTIONS@
# Remove BK's "SCCS" subdirectories from source distribution
dist-hook:
@@ -88,3 +92,4 @@ tags:
test:
cd mysql-test ; ./mysql-test-run
+
diff --git a/client/mysql.cc b/client/mysql.cc
index 41da0113670..75d67afab3f 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1885,6 +1885,9 @@ print_table_data_xml(MYSQL_RES *result)
{
MYSQL_ROW cur;
MYSQL_FIELD *fields;
+#ifdef __NETWARE__
+ uint lines= 0;
+#endif
mysql_field_seek(result,0);
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 908bdc5b51e..1e0f68eb94e 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -984,9 +984,12 @@ static void dumpTable(uint numFields, char *table)
{
char query[QUERY_LENGTH], *end, buff[256],table_buff[NAME_LEN+3];
MYSQL_RES *res;
- MYSQL_FIELD *field;
- MYSQL_ROW row;
+ MYSQL_FIELD *field;
+ MYSQL_ROW row;
ulong rownr, row_break, total_length, init_length;
+#if defined(__NETWARE__) && defined(THREAD)
+ uint lines= 0;
+#endif
if (verbose)
fprintf(stderr, "-- Sending SELECT query...\n");
@@ -1216,6 +1219,11 @@ static void dumpTable(uint numFields, char *table)
}
else if (!opt_xml)
fputs(");\n", md_result_file);
+#if defined(__NETWARE__) && defined(THREAD)
+ /* on a long result the screen could hog the cpu */
+ if ((lines++ & 1023) == 0)
+ pthread_yield();
+#endif
}
/* XML - close table tag and supress regular output */
diff --git a/configure.in b/configure.in
index 917ba9254a4..c8fe87fa0af 100644
--- a/configure.in
+++ b/configure.in
@@ -35,10 +35,10 @@ rm -f $AVAILABLE_LANGUAGES_ERRORS_RULES
for i in $AVAILABLE_LANGUAGES
do
AVAILABLE_LANGUAGES_ERRORS="$AVAILABLE_LANGUAGES_ERRORS $i/errmsg.sys"
- case $SYSTEM_TYPE in
- *netware* | *modesto*)
+ case $host_os in
+ netware* | modesto*)
echo "$i/errmsg.sys: $i/errmsg.txt
- \$(top_builddir)/extra/comp_err.cyg \$^ $i/errmsg.sys" \
+ \$(top_builddir)/extra/comp_err.linux \$^ $i/errmsg.sys" \
>> $AVAILABLE_LANGUAGES_ERRORS_RULES
;;
*)
@@ -1067,7 +1067,10 @@ dnl Is this the right match for DEC OSF on alpha?
*netware*)
# No need for curses library so set it to null
with_named_curses=""
- PLATFORM_NETWARE=yes
+
+ # No thread library - in LibC
+ with_named_thread=""
+
#
# Edit Makefile.in files.
#
@@ -1089,36 +1092,36 @@ dnl Is this the right match for DEC OSF on alpha?
fi
case $file in
sql/Makefile.in)
- # Use gen_lex_hash.cyg instead of gen_lex_hash
+ # Use gen_lex_hash.linux instead of gen_lex_hash
# Add library dependencies to mysqld_DEPENDENCIES
lib_DEPENDENCIES="\$(bdb_libs_with_path) \$(innodb_libs) \$(pstack_libs) \$(innodb_system_libs) \$(openssl_libs)"
cat > $filesed << EOF
s,\(^.*\$(MAKE) gen_lex_hash\),#\1,
-s,\(\./gen_lex_hash\),\1.cyg,
+s,\(\./gen_lex_hash\),\1.linux,
s%\(mysqld_DEPENDENCIES = \) %\1$lib_DEPENDENCIES %
EOF
;;
sql/share/Makefile.in)
cat > $filesed << EOF
-s,\(extra/comp_err\),\1.cyg,
+s,\(extra/comp_err\),\1.linux,
EOF
;;
libmysql/Makefile.in)
cat > $filesed << EOF
-s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.cyg\2,
-s,\(: conf_to_src\),\1.cyg,
+s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.linux\2,
+s,\(: conf_to_src\),\1.linux,
EOF
;;
libmysql_r/Makefile.in)
cat > $filesed << EOF
-s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.cyg\2,
-s,\(: conf_to_src\),\1.cyg,
+s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.linux\2,
+s,\(: conf_to_src\),\1.linux,
EOF
;;
strings/Makefile.in)
cat > $filesed << EOF
-s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.cyg\2,
-s,\(: conf_to_src\),\1.cyg,
+s,\(\./conf_to_src\)\( \$(top_srcdir)\),\1.linux\2,
+s,\(: conf_to_src\),\1.linux,
EOF
;;
client/Makefile.in)
@@ -1167,7 +1170,6 @@ EOF
;;
esac
-AM_CONDITIONAL(PLATFORM_NETWARE, test "$PLATFORM_NETWARE" = "yes")
#---START: Used in for client configure
# Check if we threads are in libc or if we should use
@@ -2270,13 +2272,6 @@ AC_ARG_WITH(extra-charsets,
[extra_charsets="$withval"],
[extra_charsets="none"])
-AC_ARG_WITH(platform-dir,
- [ --with-platform-dir=DIR
- Add specified directory to list of SUBDIRS to build.],
- [ with_platform_dir=$withval ],
- [ with_platform_dir=no ]
- )
-
AC_MSG_CHECKING("character sets")
if test "$extra_charsets" = none; then
@@ -2458,12 +2453,15 @@ AC_SUBST(CLIENT_LIBS)
AC_SUBST(sql_client_dirs)
AC_SUBST(linked_client_targets)
-platform_dir=
-if test "$with_platform_dir" != "no"
-then
- platform_dir="$with_platform_dir"
+# If configuring for NetWare, set up to link sources from and build the netware directory
+netware_dir=
+linked_netware_sources=
+if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then
+ netware_dir="netware"
+ linked_netware_sources="linked_netware_sources"
fi
-AC_SUBST(platform_dir)
+AC_SUBST(netware_dir)
+AC_SUBST(linked_netware_sources)
if test "$with_server" = "yes" -o "$THREAD_SAFE_CLIENT" != "no"
then
@@ -2630,6 +2628,17 @@ AC_SUBST(GXX)
#Remove TOOLS_LIBS, because this is included in LIBRARIES
#AC_SUBST(TOOLS_LIBS)
+# Set configuration options for make_binary_distribution
+case $SYSTEM_TYPE in
+ *netware*)
+ MAKE_BINARY_DISTRIBUTION_OPTIONS=--no-strip
+ ;;
+ *)
+ MAKE_BINARY_DISTRIBUTION_OPTIONS=
+ ;;
+esac
+AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
+
# Output results
if test "$compile_readline" = "yes"
diff --git a/extra/mysql_waitpid.c b/extra/mysql_waitpid.c
index 007db959111..bff1752ec21 100644
--- a/extra/mysql_waitpid.c
+++ b/extra/mysql_waitpid.c
@@ -16,6 +16,8 @@
/* Wait until a program dies */
+#ifndef __NETWARE__
+
#include <my_global.h>
#include <m_string.h>
#include <my_getopt.h>
@@ -101,3 +103,15 @@ void usage(void)
my_print_help(my_long_options);
exit(-1);
}
+
+#else
+
+#include <stdio.h>
+
+main()
+{
+ fprintf(stderr,"This tool has not been ported to NetWare\n");
+ return 0;
+}
+
+#endif /* __NETWARE__ */
diff --git a/include/my_pthread.h b/include/my_pthread.h
index e4d8069096b..ad4bb21ce00 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -431,7 +431,7 @@ struct tm *localtime_r(const time_t *clock, struct tm *res);
#define pthread_kill(A,B) pthread_dummy(0)
#undef pthread_detach_this_thread
#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); }
-#else /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */
+#elif !defined(__NETWARE__) /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */
#define HAVE_PTHREAD_KILL
#endif
diff --git a/include/mysql.h b/include/mysql.h
index 51bffa60294..5d9598de3e6 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -595,7 +595,7 @@ my_bool
simple_command(MYSQL *mysql,enum enum_server_command command, const char *arg,
unsigned long length, my_bool skip_check);
unsigned long net_safe_read(MYSQL* mysql);
-void STDCALL mysql_once_init(void);
+void mysql_once_init(void);
#ifdef __NETWARE__
#pragma pack(pop) /* restore alignment */
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index be51b530677..fee2895253e 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -774,7 +774,8 @@ char* getlogin(void);
/* default to "root" on NetWare */
static void read_user_name(char *name)
{
- (void)strmake(name,"root", USERNAME_LENGTH);
+ char *str=getenv("USER");
+ strmake(name, str ? str : "UNKNOWN_USER", USERNAME_LENGTH);
}
#elif !defined(MSDOS) && ! defined(VMS) && !defined(__WIN__) && !defined(OS2)
@@ -1773,7 +1774,7 @@ mysql_init(MYSQL *mysql)
outside program.
*/
-void STDCALL mysql_once_init(void)
+void mysql_once_init(void)
{
if (!mysql_client_init)
{
diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c
index 4ec37e12325..5a273f690ce 100644
--- a/libmysqld/libmysqld.c
+++ b/libmysqld/libmysqld.c
@@ -66,7 +66,7 @@ TYPELIB sql_protocol_typelib = {array_elements(sql_protocol_names_lib)-1,"",
#define closesocket(A) close(A)
#endif
-void STDCALL mysql_once_init(void);
+static void mysql_once_init(void);
static void end_server(MYSQL *mysql);
static void append_wild(char *to,char *end,const char *wild);
static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index e276a48bb6a..60c352e5e52 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -335,6 +335,7 @@ while test $# -gt 0; do
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc"
SLEEP_TIME_AFTER_RESTART=10
SLEEP_TIME_FOR_DELETE=60
+ USE_RUNNING_SERVER=""
;;
--valgrind-options=*)
TMP=`$ECHO "$1" | $SED -e "s;--valgrind-options=;;"`
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 9ea2ea0f87c..47ed1f99b0e 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -1057,3 +1057,13 @@ create table t2 (b varchar(10) not null unique) type=innodb;
select t1.a from t1,t2 where t1.a=t2.b;
a
drop table t1,t2;
+CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;
+CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE ) TYPE=INNODB;
+insert into t1 set id=1;
+insert into t2 set id=1, t1_id=1;
+delete t1,t2 from t1,t2 where t1.id=t2.t1_id;
+select * from t1;
+id
+select * from t2;
+id t1_id
+drop table t1,t2;
diff --git a/mysql-test/r/rpl000001.result b/mysql-test/r/rpl000001.result
index dd569944f0e..cc3df4730f2 100644
--- a/mysql-test/r/rpl000001.result
+++ b/mysql-test/r/rpl000001.result
@@ -7,7 +7,7 @@ start slave;
create table t1 (word char(20) not null);
load data infile '../../std_data/words.dat' into table t1;
load data local infile 'MYSQL_TEST_DIR/std_data/words.dat' into table t1;
-select * from t1;
+select * from t1 limit 10;
word
Aarhus
Aaron
@@ -19,16 +19,6 @@ abandoned
abandoning
abandonment
abandons
-Aarhus
-Aaron
-Ababa
-aback
-abaft
-abandon
-abandoned
-abandoning
-abandonment
-abandons
stop slave;
set password for root@"localhost" = password('foo');
start slave;
@@ -41,7 +31,7 @@ n
2
select sum(length(word)) from t1;
sum(length(word))
-141
+1021
drop table t1,t3;
reset master;
stop slave;
diff --git a/mysql-test/r/rpl000004.result b/mysql-test/r/rpl000004.result
index 067696345e4..9abb4db7974 100644
--- a/mysql-test/r/rpl000004.result
+++ b/mysql-test/r/rpl000004.result
@@ -18,7 +18,7 @@ Table Op Msg_type Msg_text
test.t1 check status OK
select count(*) from t2;
count(*)
-10
+70
select count(*) from t3;
count(*)
0
diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result
index 3ad8c8baec3..2126fadba58 100644
--- a/mysql-test/r/type_blob.result
+++ b/mysql-test/r/type_blob.result
@@ -484,3 +484,10 @@ select foobar, boggle from t1 where foobar = 'fish' and boggle = 10;
foobar boggle
fish 10
drop table t1;
+create table t1 (id integer auto_increment unique,imagem LONGBLOB not null);
+insert into t1 (id) values (1);
+update t1 set imagem=load_file('../../std_data/words.dat') where id=1;
+select if(imagem is null, "ERROR", "OK"),length(imagem) from t1 where id = 1;
+if(imagem is null, "ERROR", "OK") length(imagem)
+OK 581
+drop table t1;
diff --git a/mysql-test/std_data/words.dat b/mysql-test/std_data/words.dat
index c2d1cb70cbf..1b28624e354 100644
--- a/mysql-test/std_data/words.dat
+++ b/mysql-test/std_data/words.dat
@@ -8,3 +8,63 @@ abandoned
abandoning
abandonment
abandons
+Aarhus
+Aaron
+Ababa
+aback
+abaft
+abandon
+abandoned
+abandoning
+abandonment
+abandons
+abase
+abased
+abasement
+abasements
+abases
+abash
+abashed
+abashes
+abashing
+abasing
+abate
+abated
+abatement
+abatements
+abater
+abates
+abating
+Abba
+abbe
+abbey
+abbeys
+abbot
+abbots
+Abbott
+abbreviate
+abbreviated
+abbreviates
+abbreviating
+abbreviation
+abbreviations
+Abby
+abdomen
+abdomens
+abdominal
+abduct
+abducted
+abduction
+abductions
+abductor
+abductors
+abducts
+Abe
+abed
+Abel
+Abelian
+Abelson
+Aberdeen
+Abernathy
+aberrant
+aberration
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index f3bf1b21824..109a34e3068 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -698,3 +698,16 @@ create table t1 (a varchar(10) not null) type=myisam;
create table t2 (b varchar(10) not null unique) type=innodb;
select t1.a from t1,t2 where t1.a=t2.b;
drop table t1,t2;
+
+#
+# Test of multi-table-delete with foreign key constraints
+#
+
+CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;
+CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE ) TYPE=INNODB;
+insert into t1 set id=1;
+insert into t2 set id=1, t1_id=1;
+delete t1,t2 from t1,t2 where t1.id=t2.t1_id;
+select * from t1;
+select * from t2;
+drop table t1,t2;
diff --git a/mysql-test/t/rpl000001.test b/mysql-test/t/rpl000001.test
index 3975f14e523..d562a47ef90 100644
--- a/mysql-test/t/rpl000001.test
+++ b/mysql-test/t/rpl000001.test
@@ -4,7 +4,7 @@ create table t1 (word char(20) not null);
load data infile '../../std_data/words.dat' into table t1;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
-select * from t1;
+select * from t1 limit 10;
#
# Test slave with wrong password
diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test
index 1de08ff4e4d..002aeaed9dc 100644
--- a/mysql-test/t/type_blob.test
+++ b/mysql-test/t/type_blob.test
@@ -1,3 +1,7 @@
+# This test can't be run with running server (--extern) as this uses
+# load_file() on a file in the tree.
+#
+
#
# Basic cleanup
#
@@ -283,3 +287,13 @@ insert into t1 values ('fish', 10),('bear', 20);
select foobar, boggle from t1 where foobar = 'fish';
select foobar, boggle from t1 where foobar = 'fish' and boggle = 10;
drop table t1;
+
+#
+# Bug when blob is updated
+#
+
+create table t1 (id integer auto_increment unique,imagem LONGBLOB not null);
+insert into t1 (id) values (1);
+update t1 set imagem=load_file('../../std_data/words.dat') where id=1;
+select if(imagem is null, "ERROR", "OK"),length(imagem) from t1 where id = 1;
+drop table t1;
diff --git a/mysys/my_init.c b/mysys/my_init.c
index e18467b1235..ec7cae46d53 100644
--- a/mysys/my_init.c
+++ b/mysys/my_init.c
@@ -349,7 +349,7 @@ static my_bool win32_init_tcp_ip()
static void netware_init()
{
- char cwd[PATH_MAX], *name
+ char cwd[PATH_MAX], *name;
/* init only if we are not a client library */
if (my_progname)
diff --git a/mysys/my_netware.c b/mysys/my_netware.c
index 6c3242594df..e41dbd0a029 100644
--- a/mysys/my_netware.c
+++ b/mysys/my_netware.c
@@ -20,6 +20,7 @@
#include <mysys_priv.h>
#ifdef __NETWARE__
+ #include <string.h>
#include <library.h>
/*
@@ -61,8 +62,8 @@ long PMMeteredUsageRequest
long *NLSMeterErrCode
);
-ypedef long(*PMUR)(char*, long, char*, char, char*, long, long*, long*,
- long*);
+typedef long(*PMUR)(const char*, long, const char*, char,
+ const char*, long, long*, long*, long*);
/* infoType */
/* indicates that the info in the userInfo param is an NDS user */
diff --git a/netware/Makefile.am b/netware/Makefile.am
index bfa87f25770..5933340febb 100644
--- a/netware/Makefile.am
+++ b/netware/Makefile.am
@@ -14,7 +14,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-if PLATFORM_NETWARE
INCLUDES = -I$(srcdir)/../include -I../include -I..
bin_PROGRAMS = mysqld_safe mysql_install_db mysql_test_run libmysql
mysqld_safe_SOURCES= mysqld_safe.c my_manage.c
@@ -22,7 +21,27 @@ mysql_install_db_SOURCES= mysql_install_db.c my_manage.c
mysql_test_run_SOURCES= mysql_test_run.c my_manage.c
libmysql_SOURCES= libmysqlmain.c
libmysql_LDADD = ../libmysql/.libs/libmysqlclient.a
-endif
+
+netware_build_files = client/mysql.def client/mysqladmin.def \
+ client/mysqlbinlog.def client/mysqlcheck.def \
+ client/mysqldump.def client/mysqlimport.def \
+ client/mysqlshow.def client/mysqltest.def \
+ extra/mysql_install.def extra/my_print_defaults.def \
+ extra/perror.def extra/replace.def \
+ extra/resolveip.def isam/isamchk.def \
+ isam/isamlog.def isam/pack_isam.def \
+ libmysqld/libmysqld.def myisam/myisamchk.def \
+ myisam/myisamlog.def myisam/myisampack.def \
+ sql/mysqld.def sql/mysqld.xdc
+
+link_sources:
+ set -x; \
+ for f in $(netware_build_files); do \
+ rm -f $(srcdir)/../$$f; \
+ org=`echo $$f | sed -e 's/.*\/\(.*\)/\1/g'`; \
+ @LN_CP_F@ $(srcdir)/$$org $(srcdir)/../$$f; \
+ done;
+
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/netware/init_db.sql b/netware/init_db.sql
index 640fe3a4188..1e8354e13a1 100644
--- a/netware/init_db.sql
+++ b/netware/init_db.sql
@@ -1,3 +1,6 @@
+CREATE DATABASE mysql;
+CREATE DATABASE test;
+
USE mysql;
CREATE TABLE db (Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL, References_priv enum('N','Y') DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User)) comment='Database privileges';
diff --git a/netware/isamchk.def b/netware/isamchk.def
index 4ac6c6781c7..a724340066a 100644
--- a/netware/isamchk.def
+++ b/netware/isamchk.def
@@ -2,7 +2,7 @@
# ISAM Check
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL ISAM Table Check Tool"
VERSION 4, 0
STACKSIZE 65536
diff --git a/netware/isamlog.def b/netware/isamlog.def
index e87dafc6cb5..3f74d17f284 100644
--- a/netware/isamlog.def
+++ b/netware/isamlog.def
@@ -2,8 +2,8 @@
# ISAM Log
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
-DESCRIPTION "ISAM Log"
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
+DESCRIPTION "MySQL ISAM Table Log Tool"
VERSION 4, 0
DEBUG
diff --git a/netware/libmysql.def b/netware/libmysql.def
index f995eb8a496..f2ab1f0f21a 100644
--- a/netware/libmysql.def
+++ b/netware/libmysql.def
@@ -3,7 +3,7 @@
#------------------------------------------------------------------------------
MODULE libc.nlm
EXPORT @libmysql.imp
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Client Library"
VERSION 4, 0
AUTOUNLOAD
diff --git a/netware/my_print_defaults.def b/netware/my_print_defaults.def
index 384b705bead..7f474c50469 100644
--- a/netware/my_print_defaults.def
+++ b/netware/my_print_defaults.def
@@ -2,7 +2,7 @@
# My Print Defaults
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Print Defaults Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/myisamchk.def b/netware/myisamchk.def
index b9de47facc3..5a57866c1ee 100644
--- a/netware/myisamchk.def
+++ b/netware/myisamchk.def
@@ -2,7 +2,7 @@
# MyISAM Check
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL MyISAM Table Check Tool"
VERSION 4, 0
STACKSIZE 65536
diff --git a/netware/myisamlog.def b/netware/myisamlog.def
index f2b42757b34..c3bbee38d16 100644
--- a/netware/myisamlog.def
+++ b/netware/myisamlog.def
@@ -2,7 +2,7 @@
# MyISAM Log
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL MyISAM Table Log Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/myisampack.def b/netware/myisampack.def
index ada7c869243..ae025e5f84d 100644
--- a/netware/myisampack.def
+++ b/netware/myisampack.def
@@ -2,7 +2,7 @@
# MyISAM Pack
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL MyISAM Table Pack Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysql.def b/netware/mysql.def
index 3947252a097..a5e3ae21369 100644
--- a/netware/mysql.def
+++ b/netware/mysql.def
@@ -3,7 +3,7 @@
#------------------------------------------------------------------------------
MODULE libc.nlm
SCREENNAME "MySQL Monitor"
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Monitor"
VERSION 4, 0
MULTIPLE
diff --git a/netware/mysql_install_db.c b/netware/mysql_install_db.c
index 96f416880b1..128f07dc2bc 100644
--- a/netware/mysql_install_db.c
+++ b/netware/mysql_install_db.c
@@ -312,20 +312,6 @@ void create_paths()
{
mkdir(datadir, 0);
}
-
- // mysql directory
- snprintf(temp, PATH_MAX, "%s/mysql", datadir);
- if (stat(temp, &info))
- {
- mkdir(temp, 0);
- }
-
- // test directory
- snprintf(temp, PATH_MAX, "%s/test", datadir);
- if (stat(temp, &info))
- {
- mkdir(temp, 0);
- }
}
/******************************************************************************
diff --git a/netware/mysql_install_db.def b/netware/mysql_install_db.def
index 448e5a44635..c813e80d768 100644
--- a/netware/mysql_install_db.def
+++ b/netware/mysql_install_db.def
@@ -3,7 +3,7 @@
#------------------------------------------------------------------------------
MODULE libc.nlm
SCREENNAME "MySQL Install"
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Initial Database Installer"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysql_test_run.def b/netware/mysql_test_run.def
index b30139e5526..7cca2e1dea6 100644
--- a/netware/mysql_test_run.def
+++ b/netware/mysql_test_run.def
@@ -4,7 +4,7 @@
MODULE libc.nlm
STACKSIZE 65536
SCREENNAME "MySQL Test Run"
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Test Run"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqladmin.def b/netware/mysqladmin.def
index 750d2231888..02ea42a2343 100644
--- a/netware/mysqladmin.def
+++ b/netware/mysqladmin.def
@@ -3,7 +3,7 @@
#------------------------------------------------------------------------------
MODULE libc.nlm
SCREENNAME "MySQL Admin"
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Admin Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqlbinlog.def b/netware/mysqlbinlog.def
index a5ed40bf7fc..b62ce4a578f 100644
--- a/netware/mysqlbinlog.def
+++ b/netware/mysqlbinlog.def
@@ -2,7 +2,7 @@
# MySQL Binary Log
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Binary Log Dump Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqlcheck.def b/netware/mysqlcheck.def
index 98029cab416..ae554bc6a06 100644
--- a/netware/mysqlcheck.def
+++ b/netware/mysqlcheck.def
@@ -2,7 +2,7 @@
# MySQL Client
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Check Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqld_safe.c b/netware/mysqld_safe.c
index cf0d6989d8d..59c40eb61e6 100644
--- a/netware/mysqld_safe.c
+++ b/netware/mysqld_safe.c
@@ -190,7 +190,7 @@ void finish_defaults()
if (!err_log[0]) snprintf(err_log, PATH_MAX, "%s/%s.err", datadir, hostname);
// safe-log
- if (!safe_log[0]) snprintf(safe_log, PATH_MAX, "%s/%s.log", datadir, hostname);
+ if (!safe_log[0]) snprintf(safe_log, PATH_MAX, "%s/%s.safe", datadir, hostname);
// mysqld
if (!mysqld[0]) snprintf(mysqld, PATH_MAX, "%s/bin/mysqld-max", basedir);
@@ -364,7 +364,7 @@ void get_options(int argc, char *argv[])
// default file arguments
init_args(al);
- add_arg(al, "dummy");
+ add_arg(al, "ignore");
read_defaults(al);
parse_args(al->argc, al->argv);
free_args(al);
diff --git a/netware/mysqldump.def b/netware/mysqldump.def
index 2de489762b2..763097a338c 100644
--- a/netware/mysqldump.def
+++ b/netware/mysqldump.def
@@ -2,7 +2,7 @@
# MySQL Admin
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Dump Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqlimport.def b/netware/mysqlimport.def
index 35673c94391..990e704b73d 100644
--- a/netware/mysqlimport.def
+++ b/netware/mysqlimport.def
@@ -2,7 +2,7 @@
# MySQL Client
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Import Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqlshow.def b/netware/mysqlshow.def
index 2629ae38974..2849def8109 100644
--- a/netware/mysqlshow.def
+++ b/netware/mysqlshow.def
@@ -3,7 +3,7 @@
#------------------------------------------------------------------------------
MODULE libc.nlm
SCREENNAME "MySQL Show"
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Show Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/mysqltest.def b/netware/mysqltest.def
index 3f6bc631244..c4fadf141c6 100644
--- a/netware/mysqltest.def
+++ b/netware/mysqltest.def
@@ -2,7 +2,7 @@
# MySQL Admin
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Test Case Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/pack_isam.def b/netware/pack_isam.def
index f22eb13da39..0e077be6f00 100644
--- a/netware/pack_isam.def
+++ b/netware/pack_isam.def
@@ -2,8 +2,8 @@
# Pack ISAM
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
-DESCRIPTION "Pack ISAM"
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
+DESCRIPTION "MySQL ISAM Table Pack Tool"
VERSION 4, 0
DEBUG
diff --git a/netware/perror.def b/netware/perror.def
index 8c604b2b92b..08725a515ef 100644
--- a/netware/perror.def
+++ b/netware/perror.def
@@ -2,7 +2,7 @@
# PERROR
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Error Code Description Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/replace.def b/netware/replace.def
index 1e6955d3939..b639d40f58b 100644
--- a/netware/replace.def
+++ b/netware/replace.def
@@ -2,7 +2,7 @@
# Replace
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL Text Replacement Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/resolveip.def b/netware/resolveip.def
index f09a5bb915b..fc6ee0fa313 100644
--- a/netware/resolveip.def
+++ b/netware/resolveip.def
@@ -2,7 +2,7 @@
# Resolve IP
#------------------------------------------------------------------------------
MODULE libc.nlm
-COPYRIGHT "(c) 2002 Novell, Inc. Portions (c) 2002 MySQL AB. All Rights Reserved."
+COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
DESCRIPTION "MySQL IP/Hostname Resolve Tool"
VERSION 4, 0
#DEBUG
diff --git a/netware/test_db.sql b/netware/test_db.sql
index 453d81693ed..d43b632289c 100644
--- a/netware/test_db.sql
+++ b/netware/test_db.sql
@@ -1,3 +1,6 @@
+CREATE DATABASE mysql;
+CREATE DATABASE test;
+
USE mysql;
CREATE TABLE db (Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL, References_priv enum('N','Y') DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User)) comment='Database privileges';
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index 0773ccc679c..1bdf5b86fdf 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -10,6 +10,7 @@ version=@VERSION@
export machine system version
SOURCE=`pwd`
CP="cp -p"
+MV="mv"
STRIP=1
DEBUG=0
@@ -58,7 +59,7 @@ case $system in
MYSQL_SHARE=$BASE/share
EXTRA_BIN_FILES="netware/mysqld_safe.nlm netware/mysql_install_db.nlm \
netware/init_db.sql netware/test_db.sql netware/mysql_explain_log.nlm \
- netware/mysqlhotcopy.nlm netware/libmysql.nlm"
+ netware/mysqlhotcopy.nlm netware/libmysql.nlm netware/init_secure_db.sql"
;;
esac
@@ -122,7 +123,7 @@ do
done
if [ $BASE_SYSTEM = "netware" ] ; then
- $CP -r netware/scripts/* $BASE/scripts
+ $CP -r netware/*.pl $BASE/scripts
fi
for i in libmysql/.libs/libmysqlclient.a libmysql/.libs/libmysqlclient.so* libmysql/libmysqlclient.* libmysql_r/.libs/libmysqlclient_r.a libmysql_r/.libs/libmysqlclient_r.so* libmysql_r/libmysqlclient_r.* mysys/libmysys.a strings/libmystrings.a dbug/libdbug.a libmysqld/.libs/libmysqld.a libmysqld/.libs/libmysqld.so* libmysqld/libmysqld.a netware/libmysql.imp
@@ -148,12 +149,15 @@ if [ $BASE_SYSTEM != "netware" ] ; then
rm -f $BASE/include/config-netware.h
fi
-if [ -d tests ] ; then
- $CP tests/*.res tests/*.tst tests/*.pl $BASE/tests
-fi
-if [ -d man ] ; then
- $CP man/*.1 $BASE/man/man1
+if [ $BASE_SYSTEM != "netware" ] ; then
+ if [ -d tests ] ; then
+ $CP tests/*.res tests/*.tst tests/*.pl $BASE/tests
+ fi
+ if [ -d man ] ; then
+ $CP man/*.1 $BASE/man/man1
+ fi
fi
+
$CP support-files/* $BASE/support-files
if [ $BASE_SYSTEM = "netware" ] ; then
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index 49c5b0f51b7..3ccf5301503 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -272,6 +272,7 @@ echo "Starting $MYSQLD daemon with databases from $DATADIR"
echo "`date +'%y%m%d %H:%M:%S mysqld started'`" >> $err_log
while true
do
+ rm -f $MYSQL_UNIX_PORT $pid_file # Some extra safety
if test -z "$args"
then
$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file @MYSQLD_DEFAULT_SWITCHES@ >> $err_log 2>&1
@@ -310,7 +311,6 @@ do
I=`expr $I + 1`
done
fi
- rm -f $MYSQL_UNIX_PORT $pid_file # Some extra safety
echo "`date +'%y%m%d %H:%M:%S'` mysqld restarted" | tee -a $err_log
done
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 8534150acd7..c05d0317341 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -682,17 +682,18 @@ public:
void update_used_tables()
{
if (!args[0]->maybe_null)
- used_tables_cache=0; /* is always false */
- else
{
- args[0]->update_used_tables();
- used_tables_cache=args[0]->used_tables();
+ used_tables_cache= 0; /* is always false */
+ cached_value= (longlong) 0;
}
- if (!used_tables_cache)
+ else
{
- /* Remember if the value is always NULL or never NULL */
- args[0]->val();
- cached_value= args[0]->null_value ? (longlong) 1 : (longlong) 0;
+ args[0]->update_used_tables();
+ if (!(used_tables_cache=args[0]->used_tables()))
+ {
+ /* Remember if the value is always NULL or never NULL */
+ cached_value= (longlong) args[0]->is_null();
+ }
}
}
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 570bddfe773..5bf7e6e6951 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -554,7 +554,7 @@ my_bool mysqld_show_warnings(THD *thd, ulong levels_to_show);
/* sql_handler.cc */
int mysql_ha_open(THD *thd, TABLE_LIST *tables);
int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok=0);
-int mysql_ha_closeall(THD *thd, TABLE_LIST *tables, bool dont_send_ok=0);
+int mysql_ha_closeall(THD *thd, TABLE_LIST *tables);
int mysql_ha_read(THD *, TABLE_LIST *,enum enum_ha_read_modes,char *,
List<Item> *,enum ha_rkey_function,Item *,ha_rows,ha_rows);
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 147f56b535a..9be4343b2f2 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -782,7 +782,7 @@ void kill_mysql(void)
#if defined(OS2) || defined(__NETWARE__)
extern "C" void kill_server(int sig_ptr)
-#define RETURN_FROM_KILL_SERVER DBUG_RETURN
+#define RETURN_FROM_KILL_SERVER DBUG_VOID_RETURN
#elif !defined(__WIN__)
static void *kill_server(void *sig_ptr)
#define RETURN_FROM_KILL_SERVER DBUG_RETURN(0)
@@ -799,9 +799,6 @@ static void __cdecl kill_server(int sig_ptr)
RETURN_FROM_KILL_SERVER;
kill_in_progress=TRUE;
abort_loop=1; // This should be set
-#ifdef __NETWARE__
- ActivateScreen(getscreenhandle()); // Show the screen going down
-#endif
signal(sig,SIG_IGN);
if (sig == MYSQL_KILL_SIGNAL || sig == 0)
sql_print_error(ER(ER_NORMAL_SHUTDOWN),my_progname);
@@ -1427,7 +1424,6 @@ static void check_data_home(const char *path)
// down server event callback
void mysql_down_server_cb(void *, void *)
{
- setscreenmode(SCR_AUTOCLOSE_ON_EXIT); // auto close the screen
kill_server(0);
}
@@ -1483,26 +1479,6 @@ static void start_signal_handler(void)
static void check_data_home(const char *path)
{
- struct volume_info vol;
- char buff[PATH_MAX], *pos;
-
- bzero((char*) &vol, sizeof(vol)); // clear struct
-
- // find volume name
- if ((pos= strchr(path, ':')))
- {
- uint length= (uint) (pos-path);
- strmake(buff, path, min(length, sizeof(buff)-1));
- }
- else
- strmov(buff, "SYS"); // assume SYS volume
-
- netware_vol_info_from_name(&vol, buff); // retrieve information
- if ((vol.flags & VOL_NSS_PRESENT) == 0)
- {
- sql_print_error("Error: %s is not on an NSS volume!", path);
- unireg_abort(-1);
- }
}
#elif defined(__EMX__)
@@ -2019,11 +1995,6 @@ static int init_common_variables(const char *conf_file_name, int argc,
max_system_variables.pseudo_thread_id= (ulong)~0;
start_time=time((time_t*) 0);
-#ifdef __NETWARE__
- printf("MySQL Server %s, for %s (%s)\n", VERSION, SYSTEM_TYPE, MACHINE_TYPE);
- fflush(stdout);
-#endif /* __NETWARE__ */
-
#ifdef OS2
{
// fix timezone for daylight saving
@@ -2849,7 +2820,11 @@ inline void kill_broken_server()
(!opt_disable_networking && ip_sock == INVALID_SOCKET))
{
select_thread_in_use = 0;
+#ifdef __NETWARE__
+ kill_server(MYSQL_KILL_SIGNAL); /* never returns */
+#else
kill_server((void*)MYSQL_KILL_SIGNAL); /* never returns */
+#endif /* __NETWARE__ */
}
}
#define MAYBE_BROKEN_SYSCALL kill_broken_server();
@@ -3487,7 +3462,6 @@ enum options
OPT_BDB_LOG_BUFFER_SIZE,
OPT_BDB_MAX_LOCK,
OPT_ERROR_LOG_FILE,
- OPT_AUTOCLOSE,
OPT_ENABLE_SHARED_MEMORY,
OPT_SHARED_MEMORY_BASE_NAME,
OPT_OLD_PASSWORDS
@@ -3500,9 +3474,6 @@ struct my_option my_long_options[] =
{
{"ansi", 'a', "Use ANSI SQL syntax instead of MySQL syntax", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
-#ifdef __NETWARE__
- {"autoclose", OPT_AUTOCLOSE, "Auto close screen. (NetWare only)", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
-#endif /* __NETWARE__ */
{"basedir", 'b',
"Path to installation directory. All paths are usually resolved relative to this.",
(gptr*) &mysql_home_ptr, (gptr*) &mysql_home_ptr, 0, GET_STR, REQUIRED_ARG,
@@ -4890,11 +4861,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
if (opt_console)
opt_error_log= 0; // Force logs to stdout
break;
-#ifdef __NETWARE__
- case (int) OPT_AUTOCLOSE:
- setscreenmode(SCR_AUTOCLOSE_ON_EXIT);
- break;
-#endif
case (int) OPT_FLUSH:
#ifdef HAVE_ISAM
nisam_flush=1;
diff --git a/sql/records.cc b/sql/records.cc
index 7c3bd1110bb..22c4d54550c 100644
--- a/sql/records.cc
+++ b/sql/records.cc
@@ -45,7 +45,8 @@ void init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
info->ref_length=table->file->ref_length;
info->select=select;
info->print_error=print_error;
- table->status=0; /* And it's allways found */
+ info->ignore_not_found_rows= 0;
+ table->status=0; /* And it's always found */
if (select && my_b_inited(&select->file))
tempfile= &select->file;
@@ -184,7 +185,8 @@ tryNext:
{
if (tmp == HA_ERR_END_OF_FILE)
tmp= -1;
- else if (tmp == HA_ERR_RECORD_DELETED)
+ else if (tmp == HA_ERR_RECORD_DELETED ||
+ (tmp == HA_ERR_KEY_NOT_FOUND && info->ignore_not_found_rows))
goto tryNext;
else
{
@@ -212,7 +214,8 @@ tryNext:
{
if (tmp == HA_ERR_END_OF_FILE)
tmp= -1;
- else if (tmp == HA_ERR_RECORD_DELETED)
+ else if (tmp == HA_ERR_RECORD_DELETED ||
+ (tmp == HA_ERR_KEY_NOT_FOUND && info->ignore_not_found_rows))
goto tryNext;
else
{
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 703eafd0af6..05f84616a4c 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -411,6 +411,7 @@ void multi_delete::send_error(uint errcode,const char *err)
int multi_delete::do_deletes(bool from_send_error)
{
int local_error= 0, counter= 0;
+ DBUG_ENTER("do_deletes");
if (from_send_error)
{
@@ -436,7 +437,12 @@ int multi_delete::do_deletes(bool from_send_error)
}
READ_RECORD info;
- init_read_record(&info,thd,table,NULL,0,0);
+ init_read_record(&info,thd,table,NULL,0,1);
+ /*
+ Ignore any rows not found in reference tables as they may already have
+ been deleted by foreign key handling
+ */
+ info.ignore_not_found_rows= 1;
while (!(local_error=info.read_record(&info)) && !thd->killed)
{
if ((local_error=table->file->delete_row(table->record[0])))
@@ -450,7 +456,7 @@ int multi_delete::do_deletes(bool from_send_error)
if (local_error == -1) // End of file
local_error = 0;
}
- return local_error;
+ DBUG_RETURN(local_error);
}
diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc
index 954dceff303..0505d2409d4 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -86,18 +86,11 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
return 0;
}
-int mysql_ha_closeall(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
+int mysql_ha_closeall(THD *thd, TABLE_LIST *tables)
{
TABLE **ptr=find_table_ptr_by_name(thd, tables->db, tables->real_name, 0);
-
- DBUG_ASSERT(dont_send_ok);
if (*ptr)
- {
-// if (!dont_send_ok) VOID(pthread_mutex_lock(&LOCK_open));
close_thread_table(thd, ptr);
-// if (!dont_send_ok) VOID(pthread_mutex_unlock(&LOCK_open));
- }
-// if (!dont_send_ok) send_ok(&thd->net);
return 0;
}
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 81adda55deb..77e896a630e 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -191,7 +191,7 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
for (table=tables ; table ; table=table->next)
{
char *db=table->db ? table->db : thd->db;
- mysql_ha_closeall(thd, table, 1);
+ mysql_ha_closeall(thd, table);
if (!close_temporary_table(thd, db, table->real_name))
{
tmp_table_deleted=1;
diff --git a/sql/structs.h b/sql/structs.h
index 59b9335a5c4..77c852673d5 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -106,7 +106,7 @@ typedef struct st_read_record { /* Parameter to read_record */
byte *record;
byte *cache,*cache_pos,*cache_end,*read_positions;
IO_CACHE *io_cache;
- bool print_error;
+ bool print_error, ignore_not_found_rows;
} READ_RECORD;
enum timestamp_type { TIMESTAMP_NONE, TIMESTAMP_DATE, TIMESTAMP_FULL,