summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am15
-rw-r--r--client/mysql.cc3
-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/rpl_log.result24
-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--sql/item_cmpfunc.h3
-rw-r--r--sql/mysql_priv.h2
-rw-r--r--sql/mysqld.cc46
-rw-r--r--sql/net_pkg.cc15
-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, 288 insertions, 179 deletions
diff --git a/Makefile.am b/Makefile.am
index e69b336a2c0..56aec377afb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,15 +24,15 @@ EXTRA_DIST = INSTALL-SOURCE README \
SUBDIRS = . include @docs_dirs@ @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)
@@ -63,6 +63,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
@@ -73,7 +77,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@
tags:
support-files/build-tags
@@ -83,3 +87,4 @@ tags:
test:
cd mysql-test ; ./mysql-test-run
+
diff --git a/client/mysql.cc b/client/mysql.cc
index 5f84261bd82..da52fb54e7d 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1702,6 +1702,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/configure.in b/configure.in
index d4f749d5de7..093abc7e983 100644
--- a/configure.in
+++ b/configure.in
@@ -38,10 +38,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
@@ -2195,13 +2197,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
@@ -2440,12 +2435,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
@@ -2612,6 +2610,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
AC_OUTPUT(Makefile extra/Makefile mysys/Makefile isam/Makefile dnl
strings/Makefile regex/Makefile heap/Makefile dnl
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 bea6b8bef5a..574198a0645 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -430,7 +430,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 486caa5baa5..fb650343399 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -422,7 +422,7 @@ int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
int simple_command(MYSQL *mysql,enum enum_server_command command,
const char *arg, unsigned long length, my_bool skipp_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 10cfb5ec88c..04d2d9d12e4 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -536,7 +536,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)
@@ -1427,7 +1428,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 3f7c666cd30..3fba238a8bf 100644
--- a/libmysqld/libmysqld.c
+++ b/libmysqld/libmysqld.c
@@ -62,7 +62,7 @@ my_string mysql_unix_port=0;
#define closesocket(A) close(A)
#endif
-void STDCALL mysql_once_init(void);
+static void mysql_once_init(void);
static MYSQL_DATA *read_rows (MYSQL *mysql,MYSQL_FIELD *fields,
uint field_count);
static int read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row,
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 3e498703ada..b05779e8af2 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -331,6 +331,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=120
+ 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 828bd2bab83..2a6eaaf0bfc 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -1058,3 +1058,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 2dc21e86152..2d277571296 100644
--- a/mysql-test/r/rpl000001.result
+++ b/mysql-test/r/rpl000001.result
@@ -8,7 +8,7 @@ drop table if exists t1,t2,t3;
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
@@ -20,16 +20,6 @@ abandoned
abandoning
abandonment
abandons
-Aarhus
-Aaron
-Ababa
-aback
-abaft
-abandon
-abandoned
-abandoning
-abandonment
-abandons
slave stop;
set password for root@"localhost" = password('foo');
slave start;
@@ -42,7 +32,7 @@ n
2
select sum(length(word)) from t1;
sum(length(word))
-141
+1021
drop table t1,t3;
reset master;
slave stop;
diff --git a/mysql-test/r/rpl000004.result b/mysql-test/r/rpl000004.result
index 82b208d0b58..3142adc50d6 100644
--- a/mysql-test/r/rpl000004.result
+++ b/mysql-test/r/rpl000004.result
@@ -23,7 +23,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/rpl_log.result b/mysql-test/r/rpl_log.result
index 835b5d6629a..5415a153a98 100644
--- a/mysql-test/r/rpl_log.result
+++ b/mysql-test/r/rpl_log.result
@@ -22,9 +22,9 @@ master-bin.001 172 Intvar 1 172 INSERT_ID=1
master-bin.001 200 Query 1 200 use test; insert into t1 values (NULL)
master-bin.001 263 Query 1 263 use test; drop table t1
master-bin.001 311 Query 1 311 use test; create table t1 (word char(20) not null)
-master-bin.001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=81
-master-bin.001 556 Exec_load 1 556 ;file_id=1
-master-bin.001 579 Query 1 579 use test; drop table t1
+master-bin.001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=581
+master-bin.001 1056 Exec_load 1 1056 ;file_id=1
+master-bin.001 1079 Query 1 1079 use test; drop table t1
show binlog events from 79 limit 1;
Log_name Pos Event_type Server_id Orig_log_pos Info
master-bin.001 79 Query 1 79 use test; create table t1(n int not null auto_increment primary key)
@@ -50,10 +50,10 @@ master-bin.001 172 Intvar 1 172 INSERT_ID=1
master-bin.001 200 Query 1 200 use test; insert into t1 values (NULL)
master-bin.001 263 Query 1 263 use test; drop table t1
master-bin.001 311 Query 1 311 use test; create table t1 (word char(20) not null)
-master-bin.001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=81
-master-bin.001 556 Exec_load 1 556 ;file_id=1
-master-bin.001 579 Query 1 579 use test; drop table t1
-master-bin.001 627 Rotate 1 627 master-bin.002;pos=4
+master-bin.001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=581
+master-bin.001 1056 Exec_load 1 1056 ;file_id=1
+master-bin.001 1079 Query 1 1079 use test; drop table t1
+master-bin.001 1127 Rotate 1 1127 master-bin.002;pos=4
show binlog events in 'master-bin.002';
Log_name Pos Event_type Server_id Orig_log_pos Info
master-bin.002 4 Query 1 4 use test; create table t1 (n int)
@@ -76,10 +76,10 @@ slave-bin.001 172 Intvar 1 172 INSERT_ID=1
slave-bin.001 200 Query 1 200 use test; insert into t1 values (NULL)
slave-bin.001 263 Query 1 263 use test; drop table t1
slave-bin.001 311 Query 1 311 use test; create table t1 (word char(20) not null)
-slave-bin.001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=81
-slave-bin.001 565 Exec_load 1 556 ;file_id=1
-slave-bin.001 588 Query 1 579 use test; drop table t1
-slave-bin.001 636 Rotate 2 636 slave-bin.002;pos=4
+slave-bin.001 386 Create_file 1 386 db=test;table=t1;file_id=1;block_len=581
+slave-bin.001 1065 Exec_load 1 1056 ;file_id=1
+slave-bin.001 1088 Query 1 1079 use test; drop table t1
+slave-bin.001 1136 Rotate 2 1136 slave-bin.002;pos=4
show binlog events in 'slave-bin.002' from 4;
Log_name Pos Event_type Server_id Orig_log_pos Info
slave-bin.002 4 Query 1 4 use test; create table t1 (n int)
@@ -87,6 +87,6 @@ slave-bin.002 62 Query 1 62 use test; insert into t1 values (1)
slave-bin.002 122 Query 1 122 use test; drop table t1
show slave status;
Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
-127.0.0.1 root MASTER_PORT 1 master-bin.002 170 slave-relay-bin.002 957 master-bin.002 Yes Yes 0 0 170 961
+127.0.0.1 root MASTER_PORT 1 master-bin.002 170 slave-relay-bin.002 1457 master-bin.002 Yes Yes 0 0 170 1461
show binlog events in 'slave-bin.005' from 4;
Error when executing command SHOW BINLOG EVENTS: Could not find target log
diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result
index 2047eed6227..ab4723457d1 100644
--- a/mysql-test/r/type_blob.result
+++ b/mysql-test/r/type_blob.result
@@ -448,3 +448,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 250b68a3845..8b75d067566 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -696,3 +696,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 0f195c65fb0..4ffd7d1d78e 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 2b23617ec8b..5bdaad7ffac 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.
+#
+
#
# test of full join with blob
#
@@ -249,3 +253,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 c6d590fc2aa..61d9f4a4b2b 100644
--- a/mysys/my_init.c
+++ b/mysys/my_init.c
@@ -350,7 +350,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/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 5efda9ce88c..f7ade97940c 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -475,8 +475,7 @@ public:
if (!(used_tables_cache=args[0]->used_tables()))
{
/* Remember if the value is always NULL or never NULL */
- args[0]->val();
- cached_value= args[0]->null_value ? (longlong) 1 : (longlong) 0;
+ cached_value= (longlong) args[0]->is_null();
}
}
}
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index d9a4302ce0c..83b41359192 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -494,7 +494,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables,
/* 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 98cb5159e93..324355e6f17 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -760,7 +760,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)
@@ -777,9 +777,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);
@@ -1392,7 +1389,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);
}
@@ -1448,26 +1444,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__)
@@ -2005,11 +1981,6 @@ int main(int argc, char **argv)
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
@@ -2764,7 +2735,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();
@@ -3181,8 +3156,7 @@ enum options {
OPT_BDB_CACHE_SIZE,
OPT_BDB_LOG_BUFFER_SIZE,
OPT_BDB_MAX_LOCK,
- OPT_ERROR_LOG_FILE,
- OPT_AUTOCLOSE
+ OPT_ERROR_LOG_FILE
};
@@ -3192,9 +3166,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,
@@ -4526,11 +4497,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/net_pkg.cc b/sql/net_pkg.cc
index 2ce811157af..315cad5ca6d 100644
--- a/sql/net_pkg.cc
+++ b/sql/net_pkg.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+/* Copyright (C) 2000-2003 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -283,11 +283,6 @@ bool
net_store_data(String *packet,const char *from,uint length)
{
ulong packet_length=packet->length();
-/*
- We have added net5store in net_store_length.
- Before that largest size was int3store.
- Therefore +5 is changed to +9
-*/
if (packet_length+9+length > packet->alloced_length() &&
packet->realloc(packet_length+9+length))
return 1;
@@ -305,8 +300,12 @@ net_store_data(String *packet,const char *from)
{
uint length=(uint) strlen(from);
uint packet_length=packet->length();
- if (packet_length+9+length > packet->alloced_length() &&
- packet->realloc(packet_length+9+length))
+ /*
+ 3 is the longest coding for storing a string with the used
+ net_store_length() function. We use 5 here 'just in case'
+ */
+ if (packet_length+5+length > packet->alloced_length() &&
+ packet->realloc(packet_length+5+length))
return 1;
char *to=(char*) net_store_length((char*) packet->ptr()+packet_length,
length);
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 4997305de6b..1507d49ebd6 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -393,6 +393,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)
{
@@ -418,7 +419,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])))
@@ -432,7 +438,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 eeaa574c69d..12e8c9e227a 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -87,18 +87,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 e8857a7faeb..31fcb0be8e3 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -174,7 +174,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 be50c8fc24d..77fed422d21 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,