mirror of
https://github.com/MariaDB/server.git
synced 2025-07-24 19:42:23 +03:00
Merge with 4.0.13
BitKeeper/etc/gone: auto-union BitKeeper/etc/logging_ok: auto-union myisam/sort.c: Auto merged mysql-test/r/group_by.result: Auto merged mysql-test/r/join_outer.result: Auto merged mysql-test/r/order_by.result: Auto merged mysql-test/r/query_cache.result: Auto merged mysql-test/r/type_blob.result: Auto merged mysql-test/r/type_ranges.result: Auto merged mysql-test/r/update.result: Auto merged mysql-test/t/bdb-crash.test: Auto merged mysql-test/t/group_by.test: Auto merged mysql-test/t/join_outer.test: Auto merged mysql-test/t/order_by.test: Auto merged mysql-test/t/query_cache.test: Auto merged mysql-test/t/type_blob.test: Auto merged mysql-test/t/type_decimal.test: Auto merged mysql-test/t/type_ranges.test: Auto merged mysql-test/t/update.test: Auto merged sql-bench/crash-me.sh: Auto merged client/mysql.cc: Keep old code
This commit is contained in:
@ -22,17 +22,13 @@
|
||||
#include <errno.h>
|
||||
#include <screen.h>
|
||||
#include <limits.h>
|
||||
#include <nks/synch.h>
|
||||
#include <nks/thread.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <nks/errno.h>
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <nks/time.h>
|
||||
#include <pthread.h>
|
||||
#include <termios.h>
|
||||
|
||||
@ -48,6 +44,9 @@
|
||||
#define HAVE_PTHREAD_YIELD_ZERO_ARG 1
|
||||
#define HAVE_BROKEN_REALPATH 1
|
||||
|
||||
/* include the old function apis */
|
||||
#define USE_OLD_FUNCTIONS 1
|
||||
|
||||
/* no case sensitivity */
|
||||
#define FN_NO_CASE_SENCE 1
|
||||
|
||||
|
@ -364,8 +364,10 @@ typedef struct st_sort_info
|
||||
SORT_FT_BUF *ft_buf;
|
||||
/* sync things */
|
||||
uint got_error, threads_running;
|
||||
#ifdef THREAD
|
||||
pthread_mutex_t mutex;
|
||||
pthread_cond_t cond;
|
||||
#endif
|
||||
} SORT_INFO;
|
||||
|
||||
/* functions in mi_check */
|
||||
|
@ -2096,7 +2096,7 @@ err:
|
||||
Threaded repair of table using sorting
|
||||
|
||||
SYNOPSIS
|
||||
mi_repair_by_sort_parallel()
|
||||
mi_repair_parallel()
|
||||
param Repair parameters
|
||||
info MyISAM handler to repair
|
||||
name Name of table (for warnings)
|
||||
@ -2115,6 +2115,9 @@ err:
|
||||
int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info,
|
||||
const char * name, int rep_quick)
|
||||
{
|
||||
#ifndef THREAD
|
||||
return mi_repair_by_sort(param, info, name, rep_quick);
|
||||
#else
|
||||
int got_error;
|
||||
uint i,key, total_key_length, istep;
|
||||
ulong rec_length;
|
||||
@ -2485,6 +2488,7 @@ err:
|
||||
share->pack.header_length=0;
|
||||
}
|
||||
DBUG_RETURN(got_error);
|
||||
#endif /* THREAD */
|
||||
}
|
||||
|
||||
/* Read next record and return next key */
|
||||
|
@ -297,6 +297,7 @@ static ha_rows NEAR_F find_all_keys(MI_SORT_PARAM *info, uint keys,
|
||||
} /* find_all_keys */
|
||||
|
||||
|
||||
#ifdef THREAD
|
||||
/* Search after all keys and place them in a temp. file */
|
||||
|
||||
pthread_handler_decl(thr_find_all_keys,arg)
|
||||
@ -590,6 +591,7 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
|
||||
my_free((gptr) mergebuf,MYF(MY_ALLOW_ZERO_PTR));
|
||||
return got_error;
|
||||
}
|
||||
#endif /* THREAD */
|
||||
|
||||
/* Write all keys in memory to file for later merge */
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (
|
||||
ChargeID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
ChargeID int(10) unsigned NOT NULL auto_increment,
|
||||
ServiceID int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ChargeDate date DEFAULT '0000-00-00' NOT NULL,
|
||||
ChargeAmount decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
|
@ -13,7 +13,7 @@ INSERT INTO t1 VALUES (2,2,2,'','0000-00-00');
|
||||
INSERT INTO t1 VALUES (2,1,1,'','0000-00-00');
|
||||
INSERT INTO t1 VALUES (3,3,3,'','0000-00-00');
|
||||
CREATE TABLE t2 (
|
||||
userID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
userID int(10) unsigned NOT NULL auto_increment,
|
||||
niName char(15),
|
||||
passwd char(8),
|
||||
mail char(50),
|
||||
@ -53,7 +53,7 @@ userid MIN(t1.score+0.0)
|
||||
2 2.0
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
PID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
PID int(10) unsigned NOT NULL auto_increment,
|
||||
payDate date DEFAULT '0000-00-00' NOT NULL,
|
||||
recDate datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
|
||||
URID int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
@ -76,7 +76,7 @@ SELECT COUNT(P.URID),SUM(P.amount),P.method, MIN(PP.recdate+0) > 19980501000000
|
||||
Can't group on 'IsNew'
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
cid mediumint(9) DEFAULT '0' NOT NULL auto_increment,
|
||||
cid mediumint(9) NOT NULL auto_increment,
|
||||
firstname varchar(32) DEFAULT '' NOT NULL,
|
||||
surname varchar(32) DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (cid)
|
||||
@ -84,7 +84,7 @@ PRIMARY KEY (cid)
|
||||
INSERT INTO t1 VALUES (1,'That','Guy');
|
||||
INSERT INTO t1 VALUES (2,'Another','Gent');
|
||||
CREATE TABLE t2 (
|
||||
call_id mediumint(8) DEFAULT '0' NOT NULL auto_increment,
|
||||
call_id mediumint(8) NOT NULL auto_increment,
|
||||
contact_id mediumint(8) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (call_id),
|
||||
KEY contact_id (contact_id)
|
||||
@ -104,7 +104,7 @@ cid CONCAT(firstname, ' ', surname) COUNT(call_id)
|
||||
drop table t1,t2;
|
||||
unlock tables;
|
||||
CREATE TABLE t1 (
|
||||
bug_id mediumint(9) DEFAULT '0' NOT NULL auto_increment,
|
||||
bug_id mediumint(9) NOT NULL auto_increment,
|
||||
groupset bigint(20) DEFAULT '0' NOT NULL,
|
||||
assigned_to mediumint(9) DEFAULT '0' NOT NULL,
|
||||
bug_file_loc text,
|
||||
@ -570,3 +570,22 @@ a MAX(b) MAKE_SET(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
|
||||
1 4 c
|
||||
10 43 a,b,d,f
|
||||
drop table t1;
|
||||
create table t1 (id int not null, qty int not null);
|
||||
insert into t1 values (1,2),(1,3),(2,4),(2,5);
|
||||
select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sum(qty)>2 and cqty>1;
|
||||
id sqty cqty
|
||||
1 5 2
|
||||
2 9 2
|
||||
select id, sum(qty) as sqty from t1 group by id having sqty>2 and count(qty)>1;
|
||||
id sqty
|
||||
1 5
|
||||
2 9
|
||||
select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sqty>2 and cqty>1;
|
||||
id sqty cqty
|
||||
1 5 2
|
||||
2 9 2
|
||||
select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sum(qty)>2 and count(qty)>1;
|
||||
id sqty cqty
|
||||
1 5 2
|
||||
2 9 2
|
||||
drop table t1;
|
||||
|
@ -234,7 +234,7 @@ INSERT INTO t2 VALUES (11410,11410,131,0);
|
||||
INSERT INTO t2 VALUES (11416,11416,32767,0);
|
||||
INSERT INTO t2 VALUES (11409,0,0,0);
|
||||
CREATE TABLE t3 (
|
||||
id int(11) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(11) NOT NULL auto_increment,
|
||||
dni_pasaporte char(16) DEFAULT '' NOT NULL,
|
||||
idPla int(11) DEFAULT '0' NOT NULL,
|
||||
cod_asig int(11) DEFAULT '0' NOT NULL,
|
||||
@ -247,7 +247,7 @@ UNIQUE dni_pasaporte_2 (dni_pasaporte,idPla,cod_asig,any,quatrimestre)
|
||||
);
|
||||
INSERT INTO t3 VALUES (1,'11111111',1,10362,98,1,'M');
|
||||
CREATE TABLE t4 (
|
||||
id int(11) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(11) NOT NULL auto_increment,
|
||||
papa int(11) DEFAULT '0' NOT NULL,
|
||||
fill int(11) DEFAULT '0' NOT NULL,
|
||||
idPla int(11) DEFAULT '0' NOT NULL,
|
||||
@ -284,7 +284,7 @@ fill idPla
|
||||
10362 NULL
|
||||
drop table t1,t2,t3,test.t4;
|
||||
CREATE TABLE t1 (
|
||||
id smallint(5) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
name char(60) DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
@ -292,7 +292,7 @@ INSERT INTO t1 VALUES (1,'Antonio Paz');
|
||||
INSERT INTO t1 VALUES (2,'Lilliana Angelovska');
|
||||
INSERT INTO t1 VALUES (3,'Thimble Smith');
|
||||
CREATE TABLE t2 (
|
||||
id smallint(5) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
owner smallint(5) unsigned DEFAULT '0' NOT NULL,
|
||||
name char(60),
|
||||
PRIMARY KEY (id)
|
||||
@ -382,15 +382,15 @@ id str
|
||||
2 NULL
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
t1_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t1_id bigint(21) NOT NULL auto_increment,
|
||||
PRIMARY KEY (t1_id)
|
||||
);
|
||||
CREATE TABLE t2 (
|
||||
t2_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t2_id bigint(21) NOT NULL auto_increment,
|
||||
PRIMARY KEY (t2_id)
|
||||
);
|
||||
CREATE TABLE t3 (
|
||||
t3_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t3_id bigint(21) NOT NULL auto_increment,
|
||||
PRIMARY KEY (t3_id)
|
||||
);
|
||||
CREATE TABLE t4 (
|
||||
|
@ -15,7 +15,7 @@ INSERT INTO t1 VALUES (2,6,'60671515','Y');
|
||||
INSERT INTO t1 VALUES (2,7,'60671569','Y');
|
||||
INSERT INTO t1 VALUES (2,3,'dd','Y');
|
||||
CREATE TABLE t2 (
|
||||
id int(6) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(6) NOT NULL auto_increment,
|
||||
description varchar(40) NOT NULL,
|
||||
idform varchar(40),
|
||||
ordre int(6) unsigned DEFAULT '0' NOT NULL,
|
||||
|
@ -566,3 +566,15 @@ show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
drop table t1;
|
||||
drop table if exists t1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
select * from t1 into outfile "query_caceh.out.file";
|
||||
select * from t1 limit 1 into dumpfile "query_cache.dump.file";
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
drop table t1;
|
||||
|
@ -351,7 +351,7 @@ Incorrect sub part key. The used key part isn't a string, the used length is lon
|
||||
create table t1 (a text, key (a(255)));
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
t1_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t1_id bigint(21) NOT NULL auto_increment,
|
||||
_field_72 varchar(128) DEFAULT '' NOT NULL,
|
||||
_field_95 varchar(32),
|
||||
_field_115 tinyint(4) DEFAULT '0' NOT NULL,
|
||||
@ -375,7 +375,7 @@ INSERT INTO t2 VALUES (1,1);
|
||||
INSERT INTO t2 VALUES (2,1);
|
||||
INSERT INTO t2 VALUES (2,2);
|
||||
CREATE TABLE t3 (
|
||||
t3_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t3_id bigint(21) NOT NULL auto_increment,
|
||||
_field_131 varchar(128),
|
||||
_field_133 tinyint(4) DEFAULT '0' NOT NULL,
|
||||
_field_135 datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
|
||||
@ -403,7 +403,7 @@ PRIMARY KEY (seq_0_id,seq_1_id)
|
||||
INSERT INTO t4 VALUES (1,1);
|
||||
INSERT INTO t4 VALUES (2,1);
|
||||
CREATE TABLE t5 (
|
||||
t5_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t5_id bigint(21) NOT NULL auto_increment,
|
||||
_field_149 tinyint(4),
|
||||
_field_156 varchar(128) DEFAULT '' NOT NULL,
|
||||
_field_157 varchar(128) DEFAULT '' NOT NULL,
|
||||
@ -430,7 +430,7 @@ INSERT INTO t6 VALUES (1,1);
|
||||
INSERT INTO t6 VALUES (1,2);
|
||||
INSERT INTO t6 VALUES (2,2);
|
||||
CREATE TABLE t7 (
|
||||
t7_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t7_id bigint(21) NOT NULL auto_increment,
|
||||
_field_143 tinyint(4),
|
||||
_field_165 varchar(32),
|
||||
_field_166 smallint(6) DEFAULT '0' NOT NULL,
|
||||
|
@ -1,6 +1,6 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
id int(11) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(11) NOT NULL auto_increment,
|
||||
datatype_id int(11) DEFAULT '0' NOT NULL,
|
||||
minvalue decimal(20,10) DEFAULT '0.0000000000' NOT NULL,
|
||||
maxvalue decimal(20,10) DEFAULT '0.0000000000' NOT NULL,
|
||||
|
@ -1,6 +1,6 @@
|
||||
drop table if exists t1,t2,t3;
|
||||
CREATE TABLE t1 (
|
||||
auto int(5) unsigned DEFAULT 0 NOT NULL auto_increment,
|
||||
auto int(5) unsigned NOT NULL auto_increment,
|
||||
string char(10) default "hello",
|
||||
tiny tinyint(4) DEFAULT '0' NOT NULL ,
|
||||
short smallint(6) DEFAULT '1' NOT NULL ,
|
||||
@ -129,7 +129,7 @@ auto new_field new_blob_col date_field
|
||||
15 new 4294967295 0000-00-00
|
||||
16 new NULL NULL
|
||||
CREATE TABLE t2 (
|
||||
auto int(5) unsigned NOT NULL DEFAULT 0 auto_increment,
|
||||
auto int(5) unsigned NOT NULL auto_increment,
|
||||
string char(20),
|
||||
mediumblob_col mediumblob not null,
|
||||
new_field char(2),
|
||||
|
@ -96,7 +96,7 @@ KEY k4 (assignment),
|
||||
KEY ticket (ticket)
|
||||
) TYPE=MyISAM;
|
||||
INSERT INTO t1 VALUES (773,773,'','','',980257344,20010318180652,0,'Open',10,0,0,0,1,'','','','','');
|
||||
alter table t1 change lfdnr lfdnr int(10) unsigned default 0 not null auto_increment;
|
||||
alter table t1 change lfdnr lfdnr int(10) unsigned not null auto_increment;
|
||||
update t1 set status=1 where type='Open';
|
||||
select status from t1;
|
||||
status
|
||||
|
@ -6,7 +6,7 @@
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
CREATE TABLE t1 (
|
||||
ChargeID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
ChargeID int(10) unsigned NOT NULL auto_increment,
|
||||
ServiceID int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ChargeDate date DEFAULT '0000-00-00' NOT NULL,
|
||||
ChargeAmount decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
|
@ -27,7 +27,7 @@ INSERT INTO t1 VALUES (2,1,1,'','0000-00-00');
|
||||
INSERT INTO t1 VALUES (3,3,3,'','0000-00-00');
|
||||
|
||||
CREATE TABLE t2 (
|
||||
userID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
userID int(10) unsigned NOT NULL auto_increment,
|
||||
niName char(15),
|
||||
passwd char(8),
|
||||
mail char(50),
|
||||
@ -57,7 +57,7 @@ drop table t1,t2;
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
PID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
PID int(10) unsigned NOT NULL auto_increment,
|
||||
payDate date DEFAULT '0000-00-00' NOT NULL,
|
||||
recDate datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
|
||||
URID int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
@ -89,7 +89,7 @@ drop table t1;
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
cid mediumint(9) DEFAULT '0' NOT NULL auto_increment,
|
||||
cid mediumint(9) NOT NULL auto_increment,
|
||||
firstname varchar(32) DEFAULT '' NOT NULL,
|
||||
surname varchar(32) DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (cid)
|
||||
@ -98,7 +98,7 @@ INSERT INTO t1 VALUES (1,'That','Guy');
|
||||
INSERT INTO t1 VALUES (2,'Another','Gent');
|
||||
|
||||
CREATE TABLE t2 (
|
||||
call_id mediumint(8) DEFAULT '0' NOT NULL auto_increment,
|
||||
call_id mediumint(8) NOT NULL auto_increment,
|
||||
contact_id mediumint(8) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (call_id),
|
||||
KEY contact_id (contact_id)
|
||||
@ -124,7 +124,7 @@ unlock tables;
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
bug_id mediumint(9) DEFAULT '0' NOT NULL auto_increment,
|
||||
bug_id mediumint(9) NOT NULL auto_increment,
|
||||
groupset bigint(20) DEFAULT '0' NOT NULL,
|
||||
assigned_to mediumint(9) DEFAULT '0' NOT NULL,
|
||||
bug_file_loc text,
|
||||
@ -426,3 +426,15 @@ select a, MAX(b), CONCAT_WS(MAX(b), '43', '4', '5') from t1 group by a;
|
||||
select a, MAX(b), ELT(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f') from t1 group by a;
|
||||
select a, MAX(b), MAKE_SET(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h') from t1 group by a;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Problem with group by and alias
|
||||
#
|
||||
|
||||
create table t1 (id int not null, qty int not null);
|
||||
insert into t1 values (1,2),(1,3),(2,4),(2,5);
|
||||
select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sum(qty)>2 and cqty>1;
|
||||
select id, sum(qty) as sqty from t1 group by id having sqty>2 and count(qty)>1;
|
||||
select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sqty>2 and cqty>1;
|
||||
select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sum(qty)>2 and count(qty)>1;
|
||||
drop table t1;
|
||||
|
@ -169,7 +169,7 @@ INSERT INTO t2 VALUES (11416,11416,32767,0);
|
||||
INSERT INTO t2 VALUES (11409,0,0,0);
|
||||
|
||||
CREATE TABLE t3 (
|
||||
id int(11) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(11) NOT NULL auto_increment,
|
||||
dni_pasaporte char(16) DEFAULT '' NOT NULL,
|
||||
idPla int(11) DEFAULT '0' NOT NULL,
|
||||
cod_asig int(11) DEFAULT '0' NOT NULL,
|
||||
@ -184,7 +184,7 @@ CREATE TABLE t3 (
|
||||
INSERT INTO t3 VALUES (1,'11111111',1,10362,98,1,'M');
|
||||
|
||||
CREATE TABLE t4 (
|
||||
id int(11) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(11) NOT NULL auto_increment,
|
||||
papa int(11) DEFAULT '0' NOT NULL,
|
||||
fill int(11) DEFAULT '0' NOT NULL,
|
||||
idPla int(11) DEFAULT '0' NOT NULL,
|
||||
@ -211,7 +211,7 @@ drop table t1,t2,t3,test.t4;
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
id smallint(5) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
name char(60) DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
@ -220,7 +220,7 @@ INSERT INTO t1 VALUES (2,'Lilliana Angelovska');
|
||||
INSERT INTO t1 VALUES (3,'Thimble Smith');
|
||||
|
||||
CREATE TABLE t2 (
|
||||
id smallint(5) unsigned DEFAULT '0' NOT NULL auto_increment,
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
owner smallint(5) unsigned DEFAULT '0' NOT NULL,
|
||||
name char(60),
|
||||
PRIMARY KEY (id)
|
||||
@ -258,15 +258,15 @@ drop table t1;
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
t1_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t1_id bigint(21) NOT NULL auto_increment,
|
||||
PRIMARY KEY (t1_id)
|
||||
);
|
||||
CREATE TABLE t2 (
|
||||
t2_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t2_id bigint(21) NOT NULL auto_increment,
|
||||
PRIMARY KEY (t2_id)
|
||||
);
|
||||
CREATE TABLE t3 (
|
||||
t3_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t3_id bigint(21) NOT NULL auto_increment,
|
||||
PRIMARY KEY (t3_id)
|
||||
);
|
||||
CREATE TABLE t4 (
|
||||
|
@ -25,7 +25,7 @@ INSERT INTO t1 VALUES (2,7,'60671569','Y');
|
||||
INSERT INTO t1 VALUES (2,3,'dd','Y');
|
||||
|
||||
CREATE TABLE t2 (
|
||||
id int(6) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(6) NOT NULL auto_increment,
|
||||
description varchar(40) NOT NULL,
|
||||
idform varchar(40),
|
||||
ordre int(6) unsigned DEFAULT '0' NOT NULL,
|
||||
|
@ -410,4 +410,17 @@ select * from t1;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
load data infile '../../std_data/words.dat' into table t1;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# INTO OUTFILE/DUMPFILE test
|
||||
#
|
||||
|
||||
drop table if exists t1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
show status like "Qcache_queries_in_cache";
|
||||
select * from t1 into outfile "query_caceh.out.file";
|
||||
select * from t1 limit 1 into dumpfile "query_cache.dump.file";
|
||||
show status like "Qcache_queries_in_cache";
|
||||
drop table t1;
|
@ -130,7 +130,7 @@ drop table t1;
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
t1_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t1_id bigint(21) NOT NULL auto_increment,
|
||||
_field_72 varchar(128) DEFAULT '' NOT NULL,
|
||||
_field_95 varchar(32),
|
||||
_field_115 tinyint(4) DEFAULT '0' NOT NULL,
|
||||
@ -161,7 +161,7 @@ INSERT INTO t2 VALUES (2,1);
|
||||
INSERT INTO t2 VALUES (2,2);
|
||||
|
||||
CREATE TABLE t3 (
|
||||
t3_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t3_id bigint(21) NOT NULL auto_increment,
|
||||
_field_131 varchar(128),
|
||||
_field_133 tinyint(4) DEFAULT '0' NOT NULL,
|
||||
_field_135 datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
|
||||
@ -196,7 +196,7 @@ INSERT INTO t4 VALUES (1,1);
|
||||
INSERT INTO t4 VALUES (2,1);
|
||||
|
||||
CREATE TABLE t5 (
|
||||
t5_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t5_id bigint(21) NOT NULL auto_increment,
|
||||
_field_149 tinyint(4),
|
||||
_field_156 varchar(128) DEFAULT '' NOT NULL,
|
||||
_field_157 varchar(128) DEFAULT '' NOT NULL,
|
||||
@ -228,7 +228,7 @@ INSERT INTO t6 VALUES (1,2);
|
||||
INSERT INTO t6 VALUES (2,2);
|
||||
|
||||
CREATE TABLE t7 (
|
||||
t7_id bigint(21) DEFAULT '0' NOT NULL auto_increment,
|
||||
t7_id bigint(21) NOT NULL auto_increment,
|
||||
_field_143 tinyint(4),
|
||||
_field_165 varchar(32),
|
||||
_field_166 smallint(6) DEFAULT '0' NOT NULL,
|
||||
|
@ -5,7 +5,7 @@ DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (
|
||||
id int(11) DEFAULT '0' NOT NULL auto_increment,
|
||||
id int(11) NOT NULL auto_increment,
|
||||
datatype_id int(11) DEFAULT '0' NOT NULL,
|
||||
minvalue decimal(20,10) DEFAULT '0.0000000000' NOT NULL,
|
||||
maxvalue decimal(20,10) DEFAULT '0.0000000000' NOT NULL,
|
||||
|
@ -7,7 +7,7 @@ drop table if exists t1,t2,t3;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (
|
||||
auto int(5) unsigned DEFAULT 0 NOT NULL auto_increment,
|
||||
auto int(5) unsigned NOT NULL auto_increment,
|
||||
string char(10) default "hello",
|
||||
tiny tinyint(4) DEFAULT '0' NOT NULL ,
|
||||
short smallint(6) DEFAULT '1' NOT NULL ,
|
||||
@ -93,7 +93,7 @@ select auto,new_field,new_blob_col,date_field from t1 ;
|
||||
# check with old syntax
|
||||
#
|
||||
CREATE TABLE t2 (
|
||||
auto int(5) unsigned NOT NULL DEFAULT 0 auto_increment,
|
||||
auto int(5) unsigned NOT NULL auto_increment,
|
||||
string char(20),
|
||||
mediumblob_col mediumblob not null,
|
||||
new_field char(2),
|
||||
|
@ -75,7 +75,7 @@ CREATE TABLE t1 (
|
||||
|
||||
INSERT INTO t1 VALUES (773,773,'','','',980257344,20010318180652,0,'Open',10,0,0,0,1,'','','','','');
|
||||
|
||||
alter table t1 change lfdnr lfdnr int(10) unsigned default 0 not null auto_increment;
|
||||
alter table t1 change lfdnr lfdnr int(10) unsigned not null auto_increment;
|
||||
update t1 set status=1 where type='Open';
|
||||
select status from t1;
|
||||
drop table t1;
|
||||
|
56
netware/BUILD/create-patch
Normal file
56
netware/BUILD/create-patch
Normal file
@ -0,0 +1,56 @@
|
||||
#! /bin/sh
|
||||
|
||||
# debug
|
||||
#set -x
|
||||
|
||||
# stop on errors
|
||||
set -e
|
||||
|
||||
# repository direcotry
|
||||
repo_dir=`pwd`
|
||||
|
||||
# show usage
|
||||
show_usage()
|
||||
{
|
||||
cat << EOF
|
||||
|
||||
usage: create-patch
|
||||
|
||||
Creates a patch file between the latest revision of the current tree
|
||||
and the latest revision not create by \$BK_USER.
|
||||
|
||||
EOF
|
||||
exit 0;
|
||||
}
|
||||
|
||||
if test $1 || test -z $BK_USER
|
||||
then
|
||||
show_usage
|
||||
fi
|
||||
|
||||
echo "starting patch..."
|
||||
|
||||
echo "user: $BK_USER"
|
||||
|
||||
# check for bk and repo_dir
|
||||
bk help > /dev/null
|
||||
repo_dir=`bk root $repo_dir`
|
||||
cd $repo_dir
|
||||
|
||||
# determine version
|
||||
version=`grep -e "AM_INIT_AUTOMAKE(mysql, .*)" < configure.in | sed -e "s/AM_INIT_AUTOMAKE(mysql, \(.*\))/\1/"`
|
||||
echo "version: $version"
|
||||
|
||||
# user revision
|
||||
user_rev=`bk changes -e -n -d':REV:' | head -1`
|
||||
echo "latest revision: $user_rev"
|
||||
|
||||
# tree revision
|
||||
tree_rev=`bk changes -e -n -d':REV:' -U$BK_USER | head -1`
|
||||
echo "latest non-$BK_USER revision: $tree_rev"
|
||||
|
||||
# create patch
|
||||
patch="$repo_dir/../$BK_USER-$version.patch"
|
||||
echo "creating \"$patch\"..."
|
||||
bk export -tpatch -r$tree_rev..$user_rev > $patch
|
||||
|
@ -1,9 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
# WINE_BUILD_DIR, BUILD_DIR, and VERSION must be changed before compiling
|
||||
# WINE_BUILD_DIR, BUILD_DIR, and VERSION must be correct before compiling
|
||||
# This values are normally changed by the nwbootstrap script
|
||||
|
||||
# the default for WINE_BUILD_DIR is "F:/mydev"
|
||||
# the default is "F:/mydev"
|
||||
export MYDEV="WINE_BUILD_DIR"
|
||||
|
||||
export MWCNWx86Includes="$MYDEV/libc/include"
|
||||
@ -12,16 +12,16 @@ export MWNWx86LibraryFiles="libcpre.o;libc.imp;netware.imp;mwcrtl.lib;mwcpp.lib"
|
||||
|
||||
export WINEPATH="$MYDEV/mw/bin"
|
||||
|
||||
# the default for BUILD_DIR is "$HOME/mydev"
|
||||
# the default added path is "$HOME/mydev/mysql-x.x-x/netware/BUILD"
|
||||
export PATH="$PATH:BUILD_DIR/mysql-VERSION/netware/BUILD"
|
||||
|
||||
export AR='mwldnlm'
|
||||
export AR_FLAGS='-type library -o'
|
||||
export AS='mwasmnlm'
|
||||
export CC='mwccnlm -gccincludes'
|
||||
export CFLAGS='-dialect c -proc 686 -bool on -relax_pointers -DUSE_OLD_FUNCTIONS'
|
||||
export CFLAGS='-dialect c -proc 686 -relax_pointers'
|
||||
export CXX='mwccnlm -gccincludes'
|
||||
export CXXFLAGS='-dialect c++ -proc 686 -bool on -relax_pointers'
|
||||
export CXXFLAGS='-dialect c++ -proc 686 -bool on -wchar_t on -relax_pointers -D_WCHAR_T'
|
||||
export LD='mwldnlm'
|
||||
export LDFLAGS='-entry _LibCPrelude -exit _LibCPostlude -flags pseudopreemption'
|
||||
export RANLIB=:
|
||||
|
@ -129,7 +129,7 @@ else
|
||||
fi
|
||||
|
||||
echo "creating ChangeLog..."
|
||||
bk changes -v -r$rev > $target_dir/ChangeLog
|
||||
bk changes -v -r$rev..$revision > $target_dir/ChangeLog
|
||||
|
||||
# add the latest manual
|
||||
if test -d $doc_dir
|
||||
|
@ -28,12 +28,13 @@ netware_build_files = client/mysql.def client/mysqladmin.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 \
|
||||
extra/resolveip.def extra/comp_err.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
|
||||
|
||||
sql/mysqld.def
|
||||
|
||||
link_sources:
|
||||
set -x; \
|
||||
for f in $(netware_build_files); do \
|
||||
|
10
netware/comp_err.def
Normal file
10
netware/comp_err.def
Normal file
@ -0,0 +1,10 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# MySQL Error File Compiler
|
||||
#------------------------------------------------------------------------------
|
||||
MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Error File Compiler"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
@ -6,5 +6,6 @@ COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved
|
||||
DESCRIPTION "MySQL ISAM Table Check Tool"
|
||||
VERSION 4, 0
|
||||
STACKSIZE 65536
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL ISAM Table Log Tool"
|
||||
VERSION 4, 0
|
||||
DEBUG
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -7,4 +7,5 @@ COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved
|
||||
DESCRIPTION "MySQL Client Library"
|
||||
VERSION 4, 0
|
||||
AUTOUNLOAD
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
#include <screen.h>
|
||||
#include <nks/vm.h>
|
||||
#include <proc.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
@ -54,18 +54,16 @@
|
||||
Init an argument list.
|
||||
|
||||
******************************************************************************/
|
||||
void _init_args(arg_list *al)
|
||||
void init_args(arg_list_t *al)
|
||||
{
|
||||
int i;
|
||||
ASSERT(al != NULL);
|
||||
|
||||
*al = malloc(sizeof(arg_list_t));
|
||||
al->argc = 0;
|
||||
al->size = ARG_BUF;
|
||||
al->argv = malloc(al->size * sizeof(char *));
|
||||
ASSERT(al->argv != NULL);
|
||||
|
||||
(*al)->argc = 0;
|
||||
|
||||
for(i = 0; i < ARG_MAX; i++)
|
||||
{
|
||||
(*al)->argv[i] = NULL;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -75,49 +73,66 @@ void _init_args(arg_list *al)
|
||||
Add an argument to a list.
|
||||
|
||||
******************************************************************************/
|
||||
void add_arg(arg_list al, char *format, ...)
|
||||
void add_arg(arg_list_t *al, char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char temp[PATH_MAX];
|
||||
|
||||
ASSERT(al != NULL);
|
||||
ASSERT(al->argc < ARG_MAX);
|
||||
|
||||
al->argv[al->argc] = malloc(PATH_MAX);
|
||||
// increase size
|
||||
if (al->argc >= al->size)
|
||||
{
|
||||
al->size += ARG_BUF;
|
||||
al->argv = realloc(al->argv, al->size * sizeof(char *));
|
||||
ASSERT(al->argv != NULL);
|
||||
}
|
||||
|
||||
ASSERT(al->argv[al->argc] != NULL);
|
||||
if (format)
|
||||
{
|
||||
va_start(ap, format);
|
||||
vsprintf(temp, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
va_start(ap, format);
|
||||
al->argv[al->argc] = malloc(strlen(temp)+1);
|
||||
ASSERT(al->argv[al->argc] != NULL);
|
||||
strcpy(al->argv[al->argc], temp);
|
||||
|
||||
vsprintf(al->argv[al->argc], format, ap);
|
||||
++(al->argc);
|
||||
}
|
||||
else
|
||||
{
|
||||
al->argv[al->argc] = NULL;
|
||||
}
|
||||
|
||||
va_end(ap);
|
||||
|
||||
++(al->argc);
|
||||
return;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
_free_args()
|
||||
free_args()
|
||||
|
||||
Free an argument list.
|
||||
|
||||
******************************************************************************/
|
||||
void _free_args(arg_list *al)
|
||||
void free_args(arg_list_t *al)
|
||||
{
|
||||
int i;
|
||||
|
||||
ASSERT(al != NULL);
|
||||
ASSERT(*al != NULL);
|
||||
|
||||
for(i = 0; i < (*al)->argc; i++)
|
||||
for(i = 0; i < al->argc; i++)
|
||||
{
|
||||
ASSERT((*al)->argv[i] != NULL);
|
||||
free((*al)->argv[i]);
|
||||
(*al)->argv[i] = NULL;
|
||||
ASSERT(al->argv[i] != NULL);
|
||||
free(al->argv[i]);
|
||||
al->argv[i] = NULL;
|
||||
}
|
||||
|
||||
free(*al);
|
||||
*al = NULL;
|
||||
free(al->argv);
|
||||
al->argc = 0;
|
||||
al->argv = NULL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -167,7 +182,7 @@ int sleep_until_file_exists(char *pid_file)
|
||||
******************************************************************************/
|
||||
int wait_for_server_start(char *bin_dir, char *user, char *password, int port)
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int err, i;
|
||||
char mysqladmin_file[PATH_MAX];
|
||||
char trash[PATH_MAX];
|
||||
@ -177,27 +192,27 @@ int wait_for_server_start(char *bin_dir, char *user, char *password, int port)
|
||||
snprintf(trash, PATH_MAX, "/tmp/trash.out");
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqladmin_file);
|
||||
add_arg(al, "--no-defaults");
|
||||
add_arg(al, "--port=%u", port);
|
||||
add_arg(al, "--user=%s", user);
|
||||
add_arg(al, "--password=%s", password);
|
||||
add_arg(al, "--silent");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "connect_timeout=10");
|
||||
add_arg(al, "-w");
|
||||
add_arg(al, "--host=localhost");
|
||||
add_arg(al, "ping");
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqladmin_file);
|
||||
add_arg(&al, "--no-defaults");
|
||||
add_arg(&al, "--port=%u", port);
|
||||
add_arg(&al, "--user=%s", user);
|
||||
add_arg(&al, "--password=%s", password);
|
||||
add_arg(&al, "--silent");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "connect_timeout=10");
|
||||
add_arg(&al, "-w");
|
||||
add_arg(&al, "--host=localhost");
|
||||
add_arg(&al, "ping");
|
||||
|
||||
// NetWare does not support the connect timeout in the TCP/IP stack
|
||||
// -- we will try the ping multiple times
|
||||
for(i = 0; (i < TRY_MAX)
|
||||
&& (err = spawn(mysqladmin_file, al, TRUE, NULL,
|
||||
&& (err = spawn(mysqladmin_file, &al, TRUE, NULL,
|
||||
trash, NULL)); i++) sleep(1);
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
|
||||
return err;
|
||||
}
|
||||
@ -206,71 +221,53 @@ int wait_for_server_start(char *bin_dir, char *user, char *password, int port)
|
||||
|
||||
spawn()
|
||||
|
||||
Spawn the given file with the given arguments.
|
||||
Spawn the given path with the given arguments.
|
||||
|
||||
******************************************************************************/
|
||||
int spawn(char *file, arg_list al, int join, char *input,
|
||||
int spawn(char *path, arg_list_t *al, int join, char *input,
|
||||
char *output, char *error)
|
||||
{
|
||||
NXNameSpec_t name;
|
||||
NXExecEnvSpec_t env;
|
||||
NXVmId_t vm, ignore;
|
||||
int result;
|
||||
|
||||
// name
|
||||
name.ssType = NX_OBJ_FILE;
|
||||
name.ssPathCtx = 0;
|
||||
name.ssPath = file;
|
||||
|
||||
// env
|
||||
env.esArgc = al->argc;
|
||||
env.esArgv = al->argv;
|
||||
env.esEnv = NULL;
|
||||
|
||||
env.esStdin.ssPathCtx = 0;
|
||||
env.esStdout.ssPathCtx = 0;
|
||||
env.esStderr.ssPathCtx = 0;
|
||||
|
||||
if (input == NULL)
|
||||
{
|
||||
env.esStdin.ssType = NX_OBJ_DEFAULT;
|
||||
env.esStdin.ssPath = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
env.esStdin.ssType = NX_OBJ_FILE;
|
||||
env.esStdin.ssPath = input;
|
||||
}
|
||||
|
||||
if (output == NULL)
|
||||
pid_t pid;
|
||||
int result = 0;
|
||||
wiring_t wiring = { FD_UNUSED, FD_UNUSED, FD_UNUSED };
|
||||
unsigned long flags = PROC_CURRENT_SPACE | PROC_INHERIT_CWD;
|
||||
|
||||
// open wiring
|
||||
if (input)
|
||||
wiring.infd = open(input, O_RDONLY);
|
||||
|
||||
if (output)
|
||||
wiring.outfd = open(output, O_WRONLY | O_CREAT | O_TRUNC);
|
||||
|
||||
if (error)
|
||||
wiring.errfd = open(error, O_WRONLY | O_CREAT | O_TRUNC);
|
||||
|
||||
// procve requires a NULL
|
||||
add_arg(al, NULL);
|
||||
|
||||
// go
|
||||
pid = procve(path, flags, NULL, &wiring, NULL, NULL, 0,
|
||||
NULL, (const char **)al->argv);
|
||||
|
||||
if (pid == -1)
|
||||
{
|
||||
env.esStdout.ssType = NX_OBJ_DEFAULT;
|
||||
env.esStdout.ssPath = NULL;
|
||||
result = -1;
|
||||
}
|
||||
else
|
||||
else if (join)
|
||||
{
|
||||
env.esStdout.ssType = NX_OBJ_FILE;
|
||||
env.esStdout.ssPath = output;
|
||||
waitpid(pid, &result, 0);
|
||||
}
|
||||
|
||||
if (error == NULL)
|
||||
{
|
||||
env.esStderr.ssType = NX_OBJ_DEFAULT;
|
||||
env.esStderr.ssPath = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
env.esStderr.ssType = NX_OBJ_FILE;
|
||||
env.esStderr.ssPath = error;
|
||||
}
|
||||
|
||||
result = NXVmSpawn(&name, &env, NX_VM_SAME_ADDRSPACE | NX_VM_INHERIT_ENV, &vm);
|
||||
|
||||
if (!result && join)
|
||||
{
|
||||
NXVmJoin(vm, &ignore, &result);
|
||||
}
|
||||
|
||||
// close wiring
|
||||
if (wiring.infd != -1)
|
||||
close(wiring.infd);
|
||||
|
||||
if (wiring.outfd != -1)
|
||||
close(wiring.outfd);
|
||||
|
||||
if (wiring.errfd != -1)
|
||||
close(wiring.errfd);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -284,7 +281,7 @@ int spawn(char *file, arg_list al, int join, char *input,
|
||||
int stop_server(char *bin_dir, char *user, char *password, int port,
|
||||
char *pid_file)
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int err, i, argc = 0;
|
||||
char mysqladmin_file[PATH_MAX];
|
||||
char trash[PATH_MAX];
|
||||
@ -294,18 +291,18 @@ int stop_server(char *bin_dir, char *user, char *password, int port,
|
||||
snprintf(trash, PATH_MAX, "/tmp/trash.out");
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqladmin_file);
|
||||
add_arg(al, "--no-defaults");
|
||||
add_arg(al, "--port=%u", port);
|
||||
add_arg(al, "--user=%s", user);
|
||||
add_arg(al, "--password=%s", password);
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "shutdown_timeout=20");
|
||||
add_arg(al, "shutdown");
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqladmin_file);
|
||||
add_arg(&al, "--no-defaults");
|
||||
add_arg(&al, "--port=%u", port);
|
||||
add_arg(&al, "--user=%s", user);
|
||||
add_arg(&al, "--password=%s", password);
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "shutdown_timeout=20");
|
||||
add_arg(&al, "shutdown");
|
||||
|
||||
// spawn
|
||||
if ((err = spawn(mysqladmin_file, al, TRUE, NULL,
|
||||
if ((err = spawn(mysqladmin_file, &al, TRUE, NULL,
|
||||
trash, NULL)) == 0)
|
||||
{
|
||||
sleep_until_file_deleted(pid_file);
|
||||
@ -324,7 +321,7 @@ int stop_server(char *bin_dir, char *user, char *password, int port,
|
||||
}
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -34,12 +34,9 @@
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#define ARG_MAX 50
|
||||
#define ARG_BUF 10
|
||||
#define TRY_MAX 5
|
||||
|
||||
#define init_args(al) _init_args(&al);
|
||||
#define free_args(al) _free_args(&al);
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
structures
|
||||
@ -50,9 +47,11 @@ typedef struct
|
||||
{
|
||||
|
||||
int argc;
|
||||
char *argv[ARG_MAX];
|
||||
char **argv;
|
||||
|
||||
} arg_list_t, * arg_list;
|
||||
size_t size;
|
||||
|
||||
} arg_list_t;
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@ -66,18 +65,23 @@ typedef struct
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
void _init_args(arg_list *);
|
||||
void add_arg(arg_list, char *, ...);
|
||||
void _free_args(arg_list *);
|
||||
void init_args(arg_list_t *);
|
||||
void add_arg(arg_list_t *, char *, ...);
|
||||
void free_args(arg_list_t *);
|
||||
|
||||
int sleep_until_file_exists(char *);
|
||||
int sleep_until_file_deleted(char *);
|
||||
int wait_for_server_start(char *, char *, char *, int);
|
||||
int spawn(char *, arg_list, int, char *, char *, char *);
|
||||
|
||||
int spawn(char *, arg_list_t *, int, char *, char *, char *);
|
||||
|
||||
int stop_server(char *, char *, char *, int, char *);
|
||||
pid_t get_server_pid(char *);
|
||||
void kill_server(pid_t pid);
|
||||
|
||||
void del_tree(char *);
|
||||
int removef(char *, ...);
|
||||
|
||||
void get_basedir(char *, char *);
|
||||
|
||||
#endif /* _MY_MANAGE */
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Print Defaults Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -6,5 +6,6 @@ COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved
|
||||
DESCRIPTION "MySQL MyISAM Table Check Tool"
|
||||
VERSION 4, 0
|
||||
STACKSIZE 65536
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL MyISAM Table Log Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL MyISAM Table Pack Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -7,5 +7,6 @@ COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved
|
||||
DESCRIPTION "MySQL Monitor"
|
||||
VERSION 4, 0
|
||||
MULTIPLE
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Install Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <strings.h>
|
||||
#include <getopt.h>
|
||||
#include <screen.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "my_config.h"
|
||||
#include "my_manage.h"
|
||||
@ -51,7 +52,7 @@ char default_option[PATH_MAX];
|
||||
|
||||
void start_defaults(int, char*[]);
|
||||
void finish_defaults();
|
||||
void read_defaults(arg_list);
|
||||
void read_defaults(arg_list_t *);
|
||||
void parse_args(int, char*[]);
|
||||
void get_options(int, char*[]);
|
||||
void create_paths();
|
||||
@ -151,9 +152,9 @@ void finish_defaults()
|
||||
Read the defaults.
|
||||
|
||||
******************************************************************************/
|
||||
void read_defaults(arg_list pal)
|
||||
void read_defaults(arg_list_t *pal)
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
char defaults_file[PATH_MAX];
|
||||
char mydefaults[PATH_MAX];
|
||||
char line[PATH_MAX];
|
||||
@ -167,15 +168,15 @@ void read_defaults(arg_list pal)
|
||||
snprintf(mydefaults, PATH_MAX, "%s/bin/my_print_defaults", basedir);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, mydefaults);
|
||||
if (default_option[0]) add_arg(al, default_option);
|
||||
add_arg(al, "mysqld");
|
||||
add_arg(al, "mysql_install_db");
|
||||
init_args(&al);
|
||||
add_arg(&al, mydefaults);
|
||||
if (default_option[0]) add_arg(&al, default_option);
|
||||
add_arg(&al, "mysqld");
|
||||
add_arg(&al, "mysql_install_db");
|
||||
|
||||
spawn(mydefaults, al, TRUE, NULL, defaults_file, NULL);
|
||||
spawn(mydefaults, &al, TRUE, NULL, defaults_file, NULL);
|
||||
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
|
||||
// gather defaults
|
||||
if((fp = fopen(defaults_file, "r")) != NULL)
|
||||
@ -267,17 +268,17 @@ void parse_args(int argc, char *argv[])
|
||||
******************************************************************************/
|
||||
void get_options(int argc, char *argv[])
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
|
||||
// start defaults
|
||||
start_defaults(argc, argv);
|
||||
|
||||
// default file arguments
|
||||
init_args(al);
|
||||
add_arg(al, "dummy");
|
||||
read_defaults(al);
|
||||
parse_args(al->argc, al->argv);
|
||||
free_args(al);
|
||||
init_args(&al);
|
||||
add_arg(&al, "ignore");
|
||||
read_defaults(&al);
|
||||
parse_args(al.argc, al.argv);
|
||||
free_args(&al);
|
||||
|
||||
// command-line arguments
|
||||
parse_args(argc, argv);
|
||||
@ -323,7 +324,7 @@ void create_paths()
|
||||
******************************************************************************/
|
||||
int mysql_install_db(int argc, char *argv[])
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int i, j, err;
|
||||
char skip;
|
||||
|
||||
@ -336,8 +337,8 @@ int mysql_install_db(int argc, char *argv[])
|
||||
};
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqld);
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqld);
|
||||
|
||||
// parent args
|
||||
for(i = 1; i < argc; i++)
|
||||
@ -354,19 +355,19 @@ int mysql_install_db(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if (!skip) add_arg(al, "%s", argv[i]);
|
||||
if (!skip) add_arg(&al, "%s", argv[i]);
|
||||
}
|
||||
|
||||
add_arg(al, "--bootstrap");
|
||||
add_arg(al, "--skip-grant-tables");
|
||||
add_arg(al, "--skip-innodb");
|
||||
add_arg(al, "--skip-bdb");
|
||||
add_arg(&al, "--bootstrap");
|
||||
add_arg(&al, "--skip-grant-tables");
|
||||
add_arg(&al, "--skip-innodb");
|
||||
add_arg(&al, "--skip-bdb");
|
||||
|
||||
// spawn mysqld
|
||||
err = spawn(mysqld, al, TRUE, sql_file, out_log, err_log);
|
||||
err = spawn(mysqld, &al, TRUE, sql_file, out_log, err_log);
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
|
||||
return err;
|
||||
}
|
||||
@ -384,6 +385,9 @@ int main(int argc, char **argv)
|
||||
// check for an autoclose option
|
||||
if (!autoclose) setscreenmode(SCR_NO_MODE);
|
||||
|
||||
// header
|
||||
printf("MySQL Server %s, for %s (%s)\n\n", VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
|
||||
// create paths
|
||||
create_paths();
|
||||
|
||||
@ -391,6 +395,7 @@ int main(int argc, char **argv)
|
||||
if (mysql_install_db(argc, argv))
|
||||
{
|
||||
printf("ERROR - The database creation failed!\n");
|
||||
printf(" %s\n", strerror(errno));
|
||||
printf("See the following log for more infomration:\n");
|
||||
printf("\t%s\n\n", err_log);
|
||||
exit(-1);
|
||||
|
@ -6,5 +6,6 @@ SCREENNAME "MySQL Install"
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Initial Database Installer"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "my_config.h"
|
||||
#include "my_manage.h"
|
||||
|
||||
/******************************************************************************
|
||||
@ -178,7 +179,7 @@ void report_stats()
|
||||
******************************************************************************/
|
||||
void install_db(char *datadir)
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int err, i;
|
||||
char input[PATH_MAX];
|
||||
char output[PATH_MAX];
|
||||
@ -190,23 +191,23 @@ void install_db(char *datadir)
|
||||
snprintf(error, PATH_MAX, "%s/install.err", datadir);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, mysqld_file);
|
||||
add_arg(al, "--bootstrap");
|
||||
add_arg(al, "--skip-grant-tables");
|
||||
add_arg(al, "--basedir=%s", base_dir);
|
||||
add_arg(al, "--datadir=%s", datadir);
|
||||
add_arg(al, "--skip-innodb");
|
||||
add_arg(al, "--skip-bdb");
|
||||
init_args(&al);
|
||||
add_arg(&al, mysqld_file);
|
||||
add_arg(&al, "--bootstrap");
|
||||
add_arg(&al, "--skip-grant-tables");
|
||||
add_arg(&al, "--basedir=%s", base_dir);
|
||||
add_arg(&al, "--datadir=%s", datadir);
|
||||
add_arg(&al, "--skip-innodb");
|
||||
add_arg(&al, "--skip-bdb");
|
||||
|
||||
// spawn
|
||||
if ((err = spawn(mysqld_file, al, TRUE, input, output, error)) != 0)
|
||||
if ((err = spawn(mysqld_file, &al, TRUE, input, output, error)) != 0)
|
||||
{
|
||||
die("Unable to create database.");
|
||||
}
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -261,7 +262,7 @@ void mysql_install_db()
|
||||
******************************************************************************/
|
||||
void start_master()
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int err, i;
|
||||
char master_out[PATH_MAX];
|
||||
char master_err[PATH_MAX];
|
||||
@ -297,32 +298,32 @@ void start_master()
|
||||
mysql_test_dir, restarts);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqld_file);
|
||||
add_arg(al, "--no-defaults");
|
||||
add_arg(al, "--log-bin=master-bin");
|
||||
add_arg(al, "--server-id=1");
|
||||
add_arg(al, "--basedir=%s", base_dir);
|
||||
add_arg(al, "--port=%u", master_port);
|
||||
add_arg(al, "--local-infile");
|
||||
add_arg(al, "--core");
|
||||
add_arg(al, "--datadir=%s", master_dir);
|
||||
add_arg(al, "--pid-file=%s", master_pid);
|
||||
add_arg(al, "--character-sets-dir=%s", char_dir);
|
||||
add_arg(al, "--tmpdir=%s", mysql_tmp_dir);
|
||||
add_arg(al, "--language=%s", lang_dir);
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqld_file);
|
||||
add_arg(&al, "--no-defaults");
|
||||
add_arg(&al, "--log-bin=master-bin");
|
||||
add_arg(&al, "--server-id=1");
|
||||
add_arg(&al, "--basedir=%s", base_dir);
|
||||
add_arg(&al, "--port=%u", master_port);
|
||||
add_arg(&al, "--local-infile");
|
||||
add_arg(&al, "--core");
|
||||
add_arg(&al, "--datadir=%s", master_dir);
|
||||
add_arg(&al, "--pid-file=%s", master_pid);
|
||||
add_arg(&al, "--character-sets-dir=%s", char_dir);
|
||||
add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
|
||||
add_arg(&al, "--language=%s", lang_dir);
|
||||
|
||||
// $MASTER_40_ARGS
|
||||
add_arg(al, "--rpl-recovery-rank=1");
|
||||
add_arg(al, "--init-rpl-role=master");
|
||||
add_arg(&al, "--rpl-recovery-rank=1");
|
||||
add_arg(&al, "--init-rpl-role=master");
|
||||
|
||||
// $SMALL_SERVER
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "key_buffer_size=1M");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "sort_buffer=256K");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "max_heap_table_size=1M");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "key_buffer_size=1M");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "sort_buffer=256K");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "max_heap_table_size=1M");
|
||||
|
||||
// $EXTRA_MASTER_OPT
|
||||
if (master_opt[0] != NULL)
|
||||
@ -333,7 +334,7 @@ void start_master()
|
||||
|
||||
while(p)
|
||||
{
|
||||
add_arg(al, "%s", p);
|
||||
add_arg(&al, "%s", p);
|
||||
|
||||
p = (char *)strtok(NULL, " \t");
|
||||
}
|
||||
@ -343,7 +344,7 @@ void start_master()
|
||||
remove(master_pid);
|
||||
|
||||
// spawn
|
||||
if ((err = spawn(mysqld_file, al, FALSE, NULL, master_out, master_err)) == 0)
|
||||
if ((err = spawn(mysqld_file, &al, FALSE, NULL, master_out, master_err)) == 0)
|
||||
{
|
||||
sleep_until_file_exists(master_pid);
|
||||
|
||||
@ -362,7 +363,7 @@ void start_master()
|
||||
}
|
||||
|
||||
// free_args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -374,7 +375,7 @@ void start_master()
|
||||
******************************************************************************/
|
||||
void start_slave()
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int err, i;
|
||||
char slave_out[PATH_MAX];
|
||||
char slave_err[PATH_MAX];
|
||||
@ -444,34 +445,34 @@ void start_slave()
|
||||
mysql_test_dir, restarts);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqld_file);
|
||||
add_arg(al, "--no-defaults");
|
||||
add_arg(al, "--log-bin=slave-bin");
|
||||
add_arg(al, "--relay_log=slave-relay-bin");
|
||||
add_arg(al, "--basedir=%s", base_dir);
|
||||
add_arg(al, "--port=%u", slave_port);
|
||||
add_arg(al, "--datadir=%s", slave_dir);
|
||||
add_arg(al, "--pid-file=%s", slave_pid);
|
||||
add_arg(al, "--character-sets-dir=%s", char_dir);
|
||||
add_arg(al, "--core");
|
||||
add_arg(al, "--tmpdir=%s", mysql_tmp_dir);
|
||||
add_arg(al, "--language=%s", lang_dir);
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqld_file);
|
||||
add_arg(&al, "--no-defaults");
|
||||
add_arg(&al, "--log-bin=slave-bin");
|
||||
add_arg(&al, "--relay_log=slave-relay-bin");
|
||||
add_arg(&al, "--basedir=%s", base_dir);
|
||||
add_arg(&al, "--port=%u", slave_port);
|
||||
add_arg(&al, "--datadir=%s", slave_dir);
|
||||
add_arg(&al, "--pid-file=%s", slave_pid);
|
||||
add_arg(&al, "--character-sets-dir=%s", char_dir);
|
||||
add_arg(&al, "--core");
|
||||
add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
|
||||
add_arg(&al, "--language=%s", lang_dir);
|
||||
|
||||
add_arg(al, "--exit-info=256");
|
||||
add_arg(al, "--log-slave-updates");
|
||||
add_arg(al, "--init-rpl-role=slave");
|
||||
add_arg(al, "--skip-innodb");
|
||||
add_arg(al, "--skip-slave-start");
|
||||
add_arg(al, "--slave-load-tmpdir=../../var/tmp");
|
||||
add_arg(&al, "--exit-info=256");
|
||||
add_arg(&al, "--log-slave-updates");
|
||||
add_arg(&al, "--init-rpl-role=slave");
|
||||
add_arg(&al, "--skip-innodb");
|
||||
add_arg(&al, "--skip-slave-start");
|
||||
add_arg(&al, "--slave-load-tmpdir=../../var/tmp");
|
||||
|
||||
add_arg(al, "--report-user=%s", user);
|
||||
add_arg(al, "--report-host=127.0.0.1");
|
||||
add_arg(al, "--report-port=%u", slave_port);
|
||||
add_arg(&al, "--report-user=%s", user);
|
||||
add_arg(&al, "--report-host=127.0.0.1");
|
||||
add_arg(&al, "--report-port=%u", slave_port);
|
||||
|
||||
add_arg(al, "--master-retry-count=10");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "slave_net_timeout=10");
|
||||
add_arg(&al, "--master-retry-count=10");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "slave_net_timeout=10");
|
||||
|
||||
// slave master info
|
||||
if (slave_master_info[0] != NULL)
|
||||
@ -482,29 +483,29 @@ void start_slave()
|
||||
|
||||
while(p)
|
||||
{
|
||||
add_arg(al, "%s", p);
|
||||
add_arg(&al, "%s", p);
|
||||
|
||||
p = (char *)strtok(NULL, " \t");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
add_arg(al, "--master-user=%s", user);
|
||||
add_arg(al, "--master-password=%s", password);
|
||||
add_arg(al, "--master-host=127.0.0.1");
|
||||
add_arg(al, "--master-port=%u", master_port);
|
||||
add_arg(al, "--master-connect-retry=1");
|
||||
add_arg(al, "--server-id=2");
|
||||
add_arg(al, "--rpl-recovery-rank=2");
|
||||
add_arg(&al, "--master-user=%s", user);
|
||||
add_arg(&al, "--master-password=%s", password);
|
||||
add_arg(&al, "--master-host=127.0.0.1");
|
||||
add_arg(&al, "--master-port=%u", master_port);
|
||||
add_arg(&al, "--master-connect-retry=1");
|
||||
add_arg(&al, "--server-id=2");
|
||||
add_arg(&al, "--rpl-recovery-rank=2");
|
||||
}
|
||||
|
||||
// small server
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "key_buffer_size=1M");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "sort_buffer=256K");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "max_heap_table_size=1M");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "key_buffer_size=1M");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "sort_buffer=256K");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "max_heap_table_size=1M");
|
||||
|
||||
// opt args
|
||||
if (slave_opt[0] != NULL)
|
||||
@ -515,7 +516,7 @@ void start_slave()
|
||||
|
||||
while(p)
|
||||
{
|
||||
add_arg(al, "%s", p);
|
||||
add_arg(&al, "%s", p);
|
||||
|
||||
p = (char *)strtok(NULL, " \t");
|
||||
}
|
||||
@ -525,7 +526,7 @@ void start_slave()
|
||||
remove(slave_pid);
|
||||
|
||||
// spawn
|
||||
if ((err = spawn(mysqld_file, al, FALSE, NULL, slave_out, slave_err)) == 0)
|
||||
if ((err = spawn(mysqld_file, &al, FALSE, NULL, slave_out, slave_err)) == 0)
|
||||
{
|
||||
sleep_until_file_exists(slave_pid);
|
||||
|
||||
@ -544,7 +545,7 @@ void start_slave()
|
||||
}
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -749,7 +750,7 @@ void run_test(char *test)
|
||||
char out_file[PATH_MAX];
|
||||
char err_file[PATH_MAX];
|
||||
int err;
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
NXTime_t start, stop;
|
||||
|
||||
// skip slave?
|
||||
@ -812,25 +813,25 @@ void run_test(char *test)
|
||||
log("%-46s ", test);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqltest_file);
|
||||
add_arg(al, "--no-defaults");
|
||||
add_arg(al, "--port=%u", master_port);
|
||||
add_arg(al, "--database=%s", db);
|
||||
add_arg(al, "--user=%s", user);
|
||||
add_arg(al, "--password=%s", password);
|
||||
add_arg(al, "--silent");
|
||||
add_arg(al, "--basedir=%s/", mysql_test_dir);
|
||||
add_arg(al, "--host=127.0.0.1");
|
||||
add_arg(al, "-v");
|
||||
add_arg(al, "-R");
|
||||
add_arg(al, "%s", result_file);
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqltest_file);
|
||||
add_arg(&al, "--no-defaults");
|
||||
add_arg(&al, "--port=%u", master_port);
|
||||
add_arg(&al, "--database=%s", db);
|
||||
add_arg(&al, "--user=%s", user);
|
||||
add_arg(&al, "--password=%s", password);
|
||||
add_arg(&al, "--silent");
|
||||
add_arg(&al, "--basedir=%s/", mysql_test_dir);
|
||||
add_arg(&al, "--host=127.0.0.1");
|
||||
add_arg(&al, "-v");
|
||||
add_arg(&al, "-R");
|
||||
add_arg(&al, "%s", result_file);
|
||||
|
||||
// start timer
|
||||
NXGetTime(NX_SINCE_BOOT, NX_USECONDS, &start);
|
||||
|
||||
// spawn
|
||||
err = spawn(mysqltest_file, al, TRUE, test_file, out_file, err_file);
|
||||
err = spawn(mysqltest_file, &al, TRUE, test_file, out_file, err_file);
|
||||
|
||||
// stop timer
|
||||
NXGetTime(NX_SINCE_BOOT, NX_USECONDS, &stop);
|
||||
@ -840,7 +841,7 @@ void run_test(char *test)
|
||||
total_time += elapsed;
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
|
||||
if (err == 0)
|
||||
{
|
||||
@ -1055,9 +1056,6 @@ void setup(char *file)
|
||||
|
||||
// enviornment
|
||||
setenv("MYSQL_TEST_DIR", mysql_test_dir, 1);
|
||||
|
||||
// install test databases
|
||||
mysql_install_db();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@ -1067,11 +1065,17 @@ void setup(char *file)
|
||||
******************************************************************************/
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
log("Initializing Tests...\n");
|
||||
|
||||
// setup
|
||||
setup(argv[0]);
|
||||
|
||||
// header
|
||||
log("MySQL Server %s, for %s (%s)\n\n", VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
|
||||
log("Initializing Tests...\n");
|
||||
|
||||
// install test databases
|
||||
mysql_install_db();
|
||||
|
||||
log("Starting Tests...\n");
|
||||
|
||||
log("\n");
|
||||
|
@ -7,4 +7,5 @@ SCREENNAME "MySQL Test Run"
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Test Run"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
@ -6,5 +6,6 @@ SCREENNAME "MySQL Admin"
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Admin Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Binary Log Dump Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Check Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
# MySQL Server
|
||||
#------------------------------------------------------------------------------
|
||||
MODULE libc.nlm
|
||||
XDCDATA mysqld.xdc
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Database Server"
|
||||
VERSION 4, 0
|
||||
MULTIPLE
|
||||
STACKSIZE 65536
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -60,7 +60,7 @@ void vlog(char *, va_list);
|
||||
void log(char *, ...);
|
||||
void start_defaults(int, char*[]);
|
||||
void finish_defaults();
|
||||
void read_defaults(arg_list);
|
||||
void read_defaults(arg_list_t *);
|
||||
void parse_args(int, char*[]);
|
||||
void get_options(int, char*[]);
|
||||
void check_data_vol();
|
||||
@ -249,9 +249,9 @@ void finish_defaults()
|
||||
Read the defaults.
|
||||
|
||||
******************************************************************************/
|
||||
void read_defaults(arg_list pal)
|
||||
void read_defaults(arg_list_t *pal)
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
char defaults_file[PATH_MAX];
|
||||
char mydefaults[PATH_MAX];
|
||||
char line[PATH_MAX];
|
||||
@ -265,17 +265,17 @@ void read_defaults(arg_list pal)
|
||||
snprintf(mydefaults, PATH_MAX, "%s/bin/my_print_defaults", basedir);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, mydefaults);
|
||||
if (default_option[0]) add_arg(al, default_option);
|
||||
add_arg(al, "mysqld");
|
||||
add_arg(al, "server");
|
||||
add_arg(al, "mysqld_safe");
|
||||
add_arg(al, "safe_mysqld");
|
||||
init_args(&al);
|
||||
add_arg(&al, mydefaults);
|
||||
if (default_option[0]) add_arg(&al, default_option);
|
||||
add_arg(&al, "mysqld");
|
||||
add_arg(&al, "server");
|
||||
add_arg(&al, "mysqld_safe");
|
||||
add_arg(&al, "safe_mysqld");
|
||||
|
||||
spawn(mydefaults, al, TRUE, NULL, defaults_file, NULL);
|
||||
spawn(mydefaults, &al, TRUE, NULL, defaults_file, NULL);
|
||||
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
|
||||
// gather defaults
|
||||
if((fp = fopen(defaults_file, "r")) != NULL)
|
||||
@ -405,17 +405,17 @@ void parse_args(int argc, char *argv[])
|
||||
******************************************************************************/
|
||||
void get_options(int argc, char *argv[])
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
|
||||
// start defaults
|
||||
start_defaults(argc, argv);
|
||||
|
||||
// default file arguments
|
||||
init_args(al);
|
||||
add_arg(al, "ignore");
|
||||
read_defaults(al);
|
||||
parse_args(al->argc, al->argv);
|
||||
free_args(al);
|
||||
init_args(&al);
|
||||
add_arg(&al, "ignore");
|
||||
read_defaults(&al);
|
||||
parse_args(al.argc, al.argv);
|
||||
free_args(&al);
|
||||
|
||||
// command-line arguments
|
||||
parse_args(argc, argv);
|
||||
@ -504,7 +504,7 @@ void check_setup()
|
||||
******************************************************************************/
|
||||
void check_tables()
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
char mycheck[PATH_MAX];
|
||||
char table[PATH_MAX];
|
||||
char db[PATH_MAX];
|
||||
@ -549,21 +549,21 @@ void check_tables()
|
||||
snprintf(mycheck, PATH_MAX, "%s/bin/myisamchk", basedir);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, mycheck);
|
||||
add_arg(al, "--silent");
|
||||
add_arg(al, "--force");
|
||||
add_arg(al, "--fast");
|
||||
add_arg(al, "--medium-check");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "key_buffer=64M");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "sort_buffer=64M");
|
||||
add_arg(al, table);
|
||||
init_args(&al);
|
||||
add_arg(&al, mycheck);
|
||||
add_arg(&al, "--silent");
|
||||
add_arg(&al, "--force");
|
||||
add_arg(&al, "--fast");
|
||||
add_arg(&al, "--medium-check");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "key_buffer=64M");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "sort_buffer=64M");
|
||||
add_arg(&al, table);
|
||||
|
||||
spawn(mycheck, al, TRUE, NULL, NULL, NULL);
|
||||
spawn(mycheck, &al, TRUE, NULL, NULL, NULL);
|
||||
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
}
|
||||
else if (strindex(table, ".ism"))
|
||||
{
|
||||
@ -573,17 +573,17 @@ void check_tables()
|
||||
snprintf(mycheck, PATH_MAX, "%s/bin/isamchk", basedir);
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, mycheck);
|
||||
add_arg(al, "--silent");
|
||||
add_arg(al, "--force");
|
||||
add_arg(al, "-O");
|
||||
add_arg(al, "sort_buffer=64M");
|
||||
add_arg(al, table);
|
||||
init_args(&al);
|
||||
add_arg(&al, mycheck);
|
||||
add_arg(&al, "--silent");
|
||||
add_arg(&al, "--force");
|
||||
add_arg(&al, "-O");
|
||||
add_arg(&al, "sort_buffer=64M");
|
||||
add_arg(&al, table);
|
||||
|
||||
spawn(mycheck, al, TRUE, NULL, NULL, NULL);
|
||||
spawn(mycheck, &al, TRUE, NULL, NULL, NULL);
|
||||
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -599,7 +599,7 @@ void check_tables()
|
||||
******************************************************************************/
|
||||
void mysql_start(int argc, char *argv[])
|
||||
{
|
||||
arg_list al;
|
||||
arg_list_t al;
|
||||
int i, j, err;
|
||||
struct stat info;
|
||||
time_t cal;
|
||||
@ -619,8 +619,8 @@ void mysql_start(int argc, char *argv[])
|
||||
};
|
||||
|
||||
// args
|
||||
init_args(al);
|
||||
add_arg(al, "%s", mysqld);
|
||||
init_args(&al);
|
||||
add_arg(&al, "%s", mysqld);
|
||||
|
||||
// parent args
|
||||
for(i = 1; i < argc; i++)
|
||||
@ -637,7 +637,7 @@ void mysql_start(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if (!skip) add_arg(al, "%s", argv[i]);
|
||||
if (!skip) add_arg(&al, "%s", argv[i]);
|
||||
}
|
||||
|
||||
// spawn
|
||||
@ -653,7 +653,7 @@ void mysql_start(int argc, char *argv[])
|
||||
log("mysql started : %s\n", stamp);
|
||||
|
||||
// spawn mysqld
|
||||
spawn(mysqld, al, TRUE, NULL, NULL, err_log);
|
||||
spawn(mysqld, &al, TRUE, NULL, NULL, err_log);
|
||||
}
|
||||
while (!stat(pid_file, &info));
|
||||
|
||||
@ -664,7 +664,7 @@ void mysql_start(int argc, char *argv[])
|
||||
log("mysql stopped : %s\n\n", stamp);
|
||||
|
||||
// free args
|
||||
free_args(al);
|
||||
free_args(&al);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -6,5 +6,7 @@ SCREENNAME "MySQL Database Server"
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Database Server Monitor"
|
||||
VERSION 4, 0
|
||||
MULTIPLE
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Dump Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Import Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -6,5 +6,6 @@ SCREENNAME "MySQL Show"
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Show Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Test Case Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL ISAM Table Pack Tool"
|
||||
VERSION 4, 0
|
||||
DEBUG
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Error Code Description Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL Text Replacement Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -5,5 +5,6 @@ MODULE libc.nlm
|
||||
COPYRIGHT "(c) 2003 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
|
||||
DESCRIPTION "MySQL IP/Hostname Resolve Tool"
|
||||
VERSION 4, 0
|
||||
XDCDATA ../netware/mysql.xdc
|
||||
#DEBUG
|
||||
|
||||
|
@ -2178,6 +2178,20 @@ report("views","views",
|
||||
save_config_data('foreign_key',$result,"foreign keys");
|
||||
}
|
||||
|
||||
if ($limits{'foreign_key'} eq 'yes')
|
||||
{
|
||||
report("allows to update of foreign key values",'foreign_update',
|
||||
"create table crash_me1 (a int not null primary key)",
|
||||
"create table crash_me2 (a int not null," .
|
||||
" foreign key (a) references crash_me1 (a))",
|
||||
"insert into crash_me1 values (1)",
|
||||
"insert into crash_me2 values (1)",
|
||||
"update crash_me1 set a = 2", ## <- must fail
|
||||
"drop table crash_me2 $drop_attr",
|
||||
"drop table crash_me1 $drop_attr"
|
||||
);
|
||||
}
|
||||
|
||||
report("Create SCHEMA","create_schema",
|
||||
"create schema crash_schema create table crash_q (a int) ".
|
||||
"create table crash_q2(b int)",
|
||||
|
@ -1,4 +1,4 @@
|
||||
#This file is automaticly generated by crash-me 1.60
|
||||
#This file is automaticly generated by crash-me 1.61
|
||||
|
||||
NEG=yes # update of column= -column
|
||||
###< create table crash_q (a integer)
|
||||
@ -177,7 +177,7 @@ compute=no # Compute
|
||||
###> execute error:You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'compute sum(a) by a' at line 1
|
||||
###
|
||||
###As far as some queries didnt return OK, result is NO
|
||||
connections=101 # Simultaneous connections (installation default)
|
||||
connections=99 # Simultaneous connections (installation default)
|
||||
constraint_check=syntax only # Column constraints
|
||||
###< create table crash_q (a int check (a>0))
|
||||
###> OK
|
||||
@ -213,7 +213,7 @@ constraint_null=yes # NULL constraint (SyBase style)
|
||||
###
|
||||
###As far as all queries returned OK, result is YES
|
||||
crash_me_safe=yes # crash me safe
|
||||
crash_me_version=1.60 # crash me version
|
||||
crash_me_version=1.61 # crash me version
|
||||
create_default=yes # default value for column
|
||||
###< create table crash_q (q integer default 10 not null)
|
||||
###> OK
|
||||
@ -345,7 +345,7 @@ date_format_inresult=iso # Date format in result
|
||||
###> OK
|
||||
###
|
||||
###< select a from crash_me_d
|
||||
###> 2003-02-08
|
||||
###> 2003-03-26
|
||||
###< delete from crash_me_d
|
||||
###> OK
|
||||
date_infinity=error # Supports 'infinity dates
|
||||
@ -695,7 +695,7 @@ func_extra_elt=yes # Function ELT
|
||||
func_extra_encrypt=yes # Function ENCRYPT
|
||||
###
|
||||
###<select encrypt('hello')
|
||||
###>kpb.ynRIu0Udw
|
||||
###>tJNum3fO44bOE
|
||||
func_extra_expand2arg=no # Function EXPAND
|
||||
###
|
||||
###<select expand('abcd',6)
|
||||
@ -991,7 +991,7 @@ func_extra_subtime=no # Function SUBTIME
|
||||
func_extra_sysdate=yes # Function SYSDATE
|
||||
###
|
||||
###<select sysdate()
|
||||
###>2003-02-08 00:09:52
|
||||
###>2003-03-26 13:44:57
|
||||
func_extra_tail=no # Function TAIL
|
||||
###
|
||||
###<select tail('ABCDEFG',3)
|
||||
@ -1056,7 +1056,7 @@ func_extra_uid=no # Function UID
|
||||
func_extra_unix_timestamp=yes # Function UNIX_TIMESTAMP
|
||||
###
|
||||
###<select unix_timestamp()
|
||||
###>1044655792
|
||||
###>1048679097
|
||||
func_extra_userenv=no # Function USERENV
|
||||
###
|
||||
###<select userenv
|
||||
@ -1068,7 +1068,7 @@ func_extra_value=no # Function VALUE
|
||||
func_extra_version=yes # Function VERSION
|
||||
###
|
||||
###<select version()
|
||||
###>4.0.11-gamma
|
||||
###>4.0.12-debug
|
||||
func_extra_weekday=yes # Function WEEKDAY
|
||||
###
|
||||
###<select weekday('1997-11-29') from crash_me_d
|
||||
@ -1136,11 +1136,11 @@ func_odbc_cot=yes # Function COT
|
||||
func_odbc_curdate=yes # Function CURDATE
|
||||
###
|
||||
###<select curdate()
|
||||
###>2003-02-08
|
||||
###>2003-03-26
|
||||
func_odbc_curtime=yes # Function CURTIME
|
||||
###
|
||||
###<select curtime()
|
||||
###>00:09:52
|
||||
###>13:44:57
|
||||
func_odbc_database=yes # Function DATABASE
|
||||
###
|
||||
###<select database()
|
||||
@ -1269,7 +1269,7 @@ func_odbc_monthname=yes # Function MONTHNAME
|
||||
func_odbc_now=yes # Function NOW
|
||||
###
|
||||
###<select now()
|
||||
###>2003-02-08 00:09:52
|
||||
###>2003-03-26 13:44:57
|
||||
func_odbc_pi=yes # Function PI
|
||||
###
|
||||
###<select pi()
|
||||
@ -1416,15 +1416,15 @@ func_sql_concat_as_||=error # Function concatenation with ||
|
||||
func_sql_current_date=yes # Function CURRENT_DATE
|
||||
###
|
||||
###<select current_date
|
||||
###>2003-02-08
|
||||
###>2003-03-26
|
||||
func_sql_current_time=yes # Function CURRENT_TIME
|
||||
###
|
||||
###<select current_time
|
||||
###>00:09:52
|
||||
###>13:44:57
|
||||
func_sql_current_timestamp=yes # Function CURRENT_TIMESTAMP
|
||||
###
|
||||
###<select current_timestamp
|
||||
###>2003-02-08 00:09:52
|
||||
###>2003-03-26 13:44:57
|
||||
func_sql_current_user=with_parenthesis # CURRENT_USER
|
||||
###< select CURRENT_USER
|
||||
###> execute error:Unknown column 'CURRENT_USER' in 'field list'
|
||||
@ -1438,11 +1438,11 @@ func_sql_extract_sql=yes # Function EXTRACT
|
||||
func_sql_localtime=yes # Function LOCALTIME
|
||||
###
|
||||
###<select localtime
|
||||
###>2003-02-08 00:09:52
|
||||
###>2003-03-26 13:44:57
|
||||
func_sql_localtimestamp=yes # Function LOCALTIMESTAMP
|
||||
###
|
||||
###<select localtimestamp
|
||||
###>2003-02-08 00:09:52
|
||||
###>2003-03-26 13:44:57
|
||||
func_sql_lower=yes # Function LOWER
|
||||
###
|
||||
###<select LOWER('ABC')
|
||||
@ -1880,7 +1880,7 @@ logical_value=1 # Value of logical operation (1=1)
|
||||
###>1
|
||||
max_big_expressions=10 # big expressions
|
||||
###We are trying (example with N=5):
|
||||
###select 0+(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+...(10558)
|
||||
###select 0+(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+...(16398)
|
||||
### 50:FAIL 10:OK 30:FAIL 14:FAIL 11:FAIL
|
||||
max_char_size=255 # max char() size
|
||||
###We are trying (example with N=5):
|
||||
@ -1902,10 +1902,10 @@ max_conditions=85660 # OR and AND in WHERE
|
||||
###We are trying (example with N=5):
|
||||
###select a from crash_me where a=1 and b='a' or a=0 and b='0' or a=1 and b='1' or a=2 and b='2' or a=3 and b='3' or a=4 and b='4'
|
||||
### 27592:OK 41389:OK 48287:FAIL 42769:OK 45528:FAIL 43321:FAIL 42880:FAIL 42791:OK 42835:FAIL 42800:OK 42817:OK 42826:OK 42830:OK 42832:FAIL 42831:FAIL
|
||||
max_expressions=1075 # simple expressions
|
||||
max_expressions=1659 # simple expressions
|
||||
###We are trying (example with N=5):
|
||||
###select 1+1+1+1+1+1
|
||||
### 5000:FAIL 1000:OK 3000:FAIL 1400:FAIL 1080:FAIL 1016:OK 1048:OK 1064:OK 1072:OK 1076:FAIL 1073:OK 1074:OK 1075:OK
|
||||
### 5000:FAIL 1000:OK 3000:FAIL 1400:OK 2200:FAIL 1560:OK 1880:FAIL 1624:OK 1752:FAIL 1650:OK 1701:FAIL 1660:FAIL 1652:OK 1656:OK 1658:OK 1659:OK
|
||||
max_index=32 # max index
|
||||
### max_unique_index=32 ,so max_index must be same
|
||||
max_index_length=500 # index length
|
||||
@ -1946,10 +1946,10 @@ max_row_length_with_null=65502 # table row length with nulls (without blobs)
|
||||
max_select_alias_name=+512 # select alias name length
|
||||
###We are trying (example with N=5):
|
||||
###select b as aaaaa from crash_me
|
||||
max_stack_expression=1075 # stacked expressions
|
||||
max_stack_expression=1659 # stacked expressions
|
||||
###We are trying (example with N=5):
|
||||
###select 1+(1+(1+(1+(1+(1)))))
|
||||
### 1000:OK 1500:FAIL 1100:FAIL 1020:OK 1060:OK 1080:FAIL 1064:OK 1072:OK 1076:FAIL 1073:OK 1074:OK 1075:OK
|
||||
### 1000:OK 1500:OK 1750:FAIL 1550:OK 1650:OK 1700:FAIL 1660:FAIL 1652:OK 1656:OK 1658:OK 1659:OK
|
||||
max_table_alias_name=+512 # table alias name length
|
||||
###We are trying (example with N=5):
|
||||
###select aaaaa.b from crash_me aaaaa
|
||||
@ -6043,7 +6043,7 @@ select_without_from=yes # SELECT without FROM
|
||||
###> OK
|
||||
###
|
||||
###As far as all queries returned OK, result is YES
|
||||
server_version=MySQL 4.0.11 gamma # server version
|
||||
server_version=MySQL 4.0.12 debug/ # server version
|
||||
simple_joins=yes # ANSI SQL simple joins
|
||||
###< select crash_me.a from crash_me, crash_me t0
|
||||
###> OK
|
||||
@ -6166,7 +6166,7 @@ time_format_inresult=iso # Time format in result
|
||||
###> OK
|
||||
###
|
||||
###< select a from crash_me_t
|
||||
###> 00:09:52
|
||||
###> 13:44:57
|
||||
###< delete from crash_me_t
|
||||
###> OK
|
||||
transactions=yes # transactions
|
||||
|
@ -1268,6 +1268,7 @@ bool Item_ref::fix_fields(THD *thd,TABLE_LIST *tables, Item **reference)
|
||||
maybe_null= (*ref)->maybe_null;
|
||||
decimals= (*ref)->decimals;
|
||||
set_charset((*ref)->charset());
|
||||
with_sum_func= (*ref)->with_sum_func;
|
||||
fixed= 1;
|
||||
|
||||
if (ref && (*ref)->check_cols(1))
|
||||
|
@ -1451,19 +1451,25 @@ String *Item_func_database::val_str(String *str)
|
||||
return str;
|
||||
}
|
||||
|
||||
// TODO: make USER() replicate properly (currently it is replicated to "")
|
||||
|
||||
String *Item_func_user::val_str(String *str)
|
||||
{
|
||||
THD *thd=current_thd;
|
||||
CHARSET_INFO *cs= default_charset();
|
||||
const char *host=thd->host ? thd->host : thd->ip ? thd->ip : "";
|
||||
uint32 res_length=(strlen(thd->user)+strlen(host)+10) * cs->mbmaxlen;
|
||||
// For system threads (e.g. replication SQL thread) user may be empty
|
||||
if (!thd->user)
|
||||
return &empty_string;
|
||||
uint32 res_length=(strlen(thd->user)+strlen(host)+2) * cs->mbmaxlen;
|
||||
|
||||
if (str->alloc(res_length))
|
||||
{
|
||||
null_value=1;
|
||||
return 0;
|
||||
null_value=1;
|
||||
return 0;
|
||||
}
|
||||
res_length=cs->snprintf(cs, (char*)str->ptr(), res_length, "%s@%s",thd->user,host);
|
||||
res_length=cs->snprintf(cs, (char*)str->ptr(), res_length, "%s@%s",
|
||||
thd->user, host);
|
||||
str->length(res_length);
|
||||
str->set_charset(cs);
|
||||
return str;
|
||||
|
@ -2043,12 +2043,14 @@ static int init_common_variables(const char *conf_file_name, int argc,
|
||||
#ifdef HAVE_PTHREAD_ATTR_GETSTACKSIZE
|
||||
{
|
||||
/* Retrieve used stack size; Needed for checking stack overflows */
|
||||
size_t stack_size;
|
||||
size_t stack_size= 0;
|
||||
pthread_attr_getstacksize(&connection_attrib, &stack_size);
|
||||
if (global_system_variables.log_warnings && stack_size != thread_stack)
|
||||
/* We must check if stack_size = 0 as Solaris 2.9 can return 0 here */
|
||||
if (stack_size && stack_size != thread_stack)
|
||||
{
|
||||
sql_print_error("Warning: Asked for %ld thread stack, but got %ld",
|
||||
thread_stack, stack_size);
|
||||
if (global_system_variables.log_warnings)
|
||||
sql_print_error("Warning: Asked for %ld thread stack, but got %ld",
|
||||
thread_stack, stack_size);
|
||||
thread_stack= stack_size;
|
||||
}
|
||||
}
|
||||
|
@ -5,22 +5,22 @@
|
||||
"isamchk",
|
||||
"NO",
|
||||
"YES",
|
||||
"Kan inte skapa filen: '%-.64s' (Felkod: %d)",
|
||||
"Kan inte skapa tabellen: '%-.64s' (Felkod: %d)",
|
||||
"Kan inte skapa filen '%-.64s' (Felkod: %d)",
|
||||
"Kan inte skapa tabellen '%-.64s' (Felkod: %d)",
|
||||
"Kan inte skapa databasen '%-.64s'. (Felkod: %d)",
|
||||
"Databasen '%-.64s' existerar redan",
|
||||
"Kan inte radera databasen '%-.64s'. Databasen finns inte",
|
||||
"Fel vid radering av databasen (Kan inte radera '%-.64s'. Felkod: %d)",
|
||||
"Fel vid radering av databasen (Kan inte radera biblioteket '%-.64s'. Felkod: %d)",
|
||||
"Kan inte radera filen: '%-.64s' (Felkod: %d)",
|
||||
"Kan inte radera filen '%-.64s' (Felkod: %d)",
|
||||
"Hittar inte posten i systemregistret",
|
||||
"Kan inte l<>sa filinformationen (stat) fr<66>n '%-.64s' (Felkod: %d)",
|
||||
"Kan inte inte l<>sa aktivt bibliotek. (Felkod: %d)",
|
||||
"Kan inte l<>sa filen. (Felkod: %d)",
|
||||
"Kan inte anv<6E>nda: '%-.64s'. (Felkod: %d)",
|
||||
"Hittar inte filen: '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte anv<6E>nda '%-.64s'. (Felkod: %d)",
|
||||
"Hittar inte filen '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte l<>sa fr<66>n bibliotek '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte byta till: '%-.64s'. (Felkod: %d)",
|
||||
"Kan inte byta till '%-.64s'. (Felkod: %d)",
|
||||
"Posten har f<>r<EFBFBD>ndrats sedan den l<>stes i register '%-.64s'",
|
||||
"Disken <20>r full (%s). V<>ntar tills det finns ledigt utrymme....",
|
||||
"Kan inte skriva, dubbel s<>knyckel i register '%-.64s'",
|
||||
@ -36,13 +36,13 @@
|
||||
"Hittar inte posten",
|
||||
"Felaktig fil: '%-.64s'",
|
||||
"Fatalt fel vid hantering av register '%-.64s'. K<>r en reparation",
|
||||
"Gammal nyckelfil '%-.64s'; Reparera registret",
|
||||
"Gammal nyckelfil '%-.64s'. Reparera registret",
|
||||
"'%-.64s' <20>r skyddad mot f<>r<EFBFBD>ndring",
|
||||
"Ov<4F>ntat slut p<> minnet, starta om programmet och f<>rs<72>k p<> nytt (Beh<65>vde %d bytes)",
|
||||
"Sorteringsbufferten r<>cker inte till. Kontrollera startparametrarna",
|
||||
"Ov<4F>ntat filslut vid l<>sning fr<66>n '%-.64s' (Felkod: %d)",
|
||||
"F<>r m<>nga anslutningar",
|
||||
"Fick slut p<> minnet. Kontrollera ifall mysqld eller n<>gon annan process anv<6E>nder allt tillg<6C>ngligt minne. Ifall inte, f<>rs<72>k anv<6E>nda 'ulimit' eller allokera mera swap",
|
||||
"Fick slut p<> minnet. Kontrollera om mysqld eller n<>gon annan process anv<6E>nder allt tillg<6C>ngligt minne. Om inte, f<>rs<72>k anv<6E>nda 'ulimit' eller allokera mera swap",
|
||||
"Kan inte hitta 'hostname' f<>r din adress",
|
||||
"Fel vid initiering av kommunikationen med klienten",
|
||||
"Anv<6E>ndare '%-.32s@%-.64s' <20>r ej ber<65>ttigad att anv<6E>nda databasen %-.64s",
|
||||
@ -50,43 +50,43 @@
|
||||
"Ingen databas i anv<6E>ndning",
|
||||
"Ok<4F>nt commando",
|
||||
"Kolumn '%-.64s' f<>r inte vara NULL",
|
||||
"Ok<4F>nd database '%-.64s'",
|
||||
"Ok<4F>nd databas: '%-.64s'",
|
||||
"Tabellen '%-.64s' finns redan",
|
||||
"Ok<4F>nd tabell '%-.64s'",
|
||||
"Kolumn: '%-.64s' i %s <20>r inte unik",
|
||||
"Kolumn '%-.64s' i %s <20>r inte unik",
|
||||
"Servern g<>r nu ned",
|
||||
"Ok<4F>nd kolumn '%-.64s' i %s",
|
||||
"'%-.64s' finns inte i GROUP BY",
|
||||
"Kan inte anv<6E>nda GROUP BY med '%-.64s'",
|
||||
"Kommandot har b<>de sum functions och enkla funktioner",
|
||||
"Antalet kolumner motsvarar inte antalet v<>rden",
|
||||
"Kolumn namn '%-.64s' <20>r f<>r l<>ngt",
|
||||
"Kolumn namn '%-.64s finns flera g<>nger",
|
||||
"Nyckel namn '%-.64s' finns flera g<>nger",
|
||||
"Dubbel nyckel '%-.64s' f<>r nyckel: %d",
|
||||
"Felaktigt kolumn typ f<>r kolumn: '%-.64s'",
|
||||
"Kolumnnamn '%-.64s' <20>r f<>r l<>ngt",
|
||||
"Kolumnnamn '%-.64s finns flera g<>nger",
|
||||
"Nyckelnamn '%-.64s' finns flera g<>nger",
|
||||
"Dubbel nyckel '%-.64s' f<>r nyckel %d",
|
||||
"Felaktigt kolumntyp f<>r kolumn '%-.64s'",
|
||||
"%s n<>ra '%-.64s' p<> rad %d",
|
||||
"Fr<46>gan var tom",
|
||||
"Icke unikt tabell/alias: '%-.64s'",
|
||||
"Ogiltigt DEFAULT v<>rde f<>r '%-.64s'",
|
||||
"Flera PRIMARY KEY anv<6E>nda",
|
||||
"F<>r m<>nga nycklar anv<6E>nda. Man f<>r ha h<>gst %d nycklar",
|
||||
"F<>r m<>nga nyckel delar anv<6E>nda. Man f<>r ha h<>gst %d nyckeldelar",
|
||||
"F<>r m<>nga nyckeldelar anv<6E>nda. Man f<>r ha h<>gst %d nyckeldelar",
|
||||
"F<>r l<>ng nyckel. H<>gsta till<6C>tna nyckell<6C>ngd <20>r %d",
|
||||
"Nyckel kolumn '%-.64s' finns inte",
|
||||
"En BLOB '%-.64s' kan inte vara nyckel med den anv<6E>nda tabellen typen",
|
||||
"Nyckelkolumn '%-.64s' finns inte",
|
||||
"En BLOB '%-.64s' kan inte vara nyckel med den anv<6E>nda tabelltypen",
|
||||
"F<>r stor kolumnl<6E>ngd angiven f<>r '%-.64s' (max= %d). Anv<6E>nd en BLOB inst<73>llet",
|
||||
"Det f<>r finnas endast ett AUTO_INCREMENT f<EFBFBD>lt och detta m<>ste vara en nyckel",
|
||||
"Det f<>r finnas endast ett AUTO_INCREMENT-f<EFBFBD>lt och detta m<>ste vara en nyckel",
|
||||
"%s: klar att ta emot klienter\n",
|
||||
"%s: Normal avslutning\n",
|
||||
"%s: Fick signal %d. Avslutar!\n",
|
||||
"%s: Avslutning klar\n",
|
||||
"%s: St<53>nger av tr<74>d %ld anv<6E>ndare: '%-.64s'\n",
|
||||
"Kan inte skapa IP socket",
|
||||
"%s: St<53>nger av tr<74>d %ld; anv<6E>ndare: '%-.64s'\n",
|
||||
"Kan inte skapa IP-socket",
|
||||
"Tabellen '%-.64s' har inget index som motsvarar det angivna i CREATE INDEX. Skapa om tabellen",
|
||||
"F<>lt separatorerna <20>r inte emots<74>gande eller f<>r l<>nga. Kontrollera mot manualen",
|
||||
"F<>ltseparatorerna <20>r vad som f<>rv<72>ntades. Kontrollera mot manualen",
|
||||
"Man kan inte anv<6E>nda fast radl<64>ngd med blobs. Anv<6E>nd 'fields terminated by'",
|
||||
"Textfilen '%' m<>ste finnas i databas biblioteket eller vara l<>sbar f<>r alla",
|
||||
"Textfilen '%' m<>ste finnas i databasbiblioteket eller vara l<>sbar f<>r alla",
|
||||
"Filen '%-.64s' existerar redan",
|
||||
"Rader: %ld Bortagna: %ld Dubletter: %ld Varningar: %ld",
|
||||
"Rader: %ld Dubletter: %ld",
|
||||
@ -94,18 +94,18 @@
|
||||
"Man kan inte radera alla f<>lt med ALTER TABLE. Anv<6E>nd DROP TABLE ist<73>llet",
|
||||
"Kan inte ta bort '%-.64s'. Kontrollera att f<>ltet/nyckel finns",
|
||||
"Rader: %ld Dubletter: %ld Varningar: %ld",
|
||||
"You can't specify target table '%-.64s' for update in FROM clause",
|
||||
"Finns inget thread med id %lu",
|
||||
"Du <20>r inte <20>gare till thread %lu",
|
||||
"INSERT-table '%-.64s' f<EFBFBD>r inte finnas i FROM tabell-listan",
|
||||
"Finns ingen tr<EFBFBD>d med id %lu",
|
||||
"Du <20>r inte <20>gare till tr<EFBFBD>d %lu",
|
||||
"Inga tabeller angivna",
|
||||
"F<>r m<>nga alternativ till kolumn %s f<>r SET",
|
||||
"Kan inte generera ett unikt filnamn %s.(1-999)\n",
|
||||
"Tabell '%-.64s' kan inte uppdateras emedan den <20>r l<>st f<>r l<>sning",
|
||||
"Tabell '%-.64s' <20>r inte l<>st med LOCK TABLES",
|
||||
"BLOB f<>lt '%-.64s' kan inte ha ett DEFAULT v<EFBFBD>rde",
|
||||
"Felaktigt databas namn '%-.64s'",
|
||||
"Felaktigt tabell namn '%-.64s'",
|
||||
"Den angivna fr<66>gan skulle troligen ta mycket long tid! Kontrollar din WHERE och anv<6E>nd SET OPTION SQL_BIG_SELECTS=1 ifall du vill hantera stora joins",
|
||||
"BLOB f<>lt '%-.64s' kan inte ha ett DEFAULT-v<EFBFBD>rde",
|
||||
"Felaktigt databasnamn '%-.64s'",
|
||||
"Felaktigt tabellnamn '%-.64s'",
|
||||
"Den angivna fr<66>gan skulle troligen ta mycket l<EFBFBD>ng tid! Kontrollera din WHERE och anv<6E>nd SET OPTION SQL_BIG_SELECTS=1 ifall du vill hantera stora joins",
|
||||
"Oidentifierat fel",
|
||||
"Ok<4F>nd procedur: %s",
|
||||
"Felaktigt antal parametrar till procedur %s",
|
||||
@ -116,12 +116,12 @@
|
||||
"Tabell '%-.64s' har en extension som inte finns i denna version av MySQL",
|
||||
"Tabeller m<>ste ha minst 1 kolumn",
|
||||
"Tabellen '%-.64s' <20>r full",
|
||||
"Ok<4F>nt karakt<6B>rset: '%-.64s'",
|
||||
"Ok<4F>nd teckenupps<70>ttning: '%-.64s'",
|
||||
"F<>r m<>nga tabeller. MySQL can ha h<>gst %d tabeller i en och samma join",
|
||||
"F<>r m<>nga f<>lt",
|
||||
"F<>r stor total rad l<EFBFBD>ngd. Den h<>gst till<6C>tna rad-l<EFBFBD>ngden, f<>rutom BLOBs, <20>r %d. <20>ndra n<>gra av dina f<>lt till BLOB",
|
||||
"Tr<54>d-stacken tog slut: Har anv<6E>nt %ld av %ld bytes. Anv<6E>nd 'mysqld -O thread_stack=#' ifall du beh<65>ver en st<73>rre stack",
|
||||
"Felaktigt referens i OUTER JOIN. Kontrollera ON uttrycket",
|
||||
"F<>r stor total radl<64>ngd. Den h<>gst till<6C>tna radl<64>ngden, f<>rutom BLOBs, <20>r %d. <20>ndra n<>gra av dina f<>lt till BLOB",
|
||||
"Tr<54>dstacken tog slut: Har anv<6E>nt %ld av %ld bytes. Anv<6E>nd 'mysqld -O thread_stack=#' ifall du beh<65>ver en st<73>rre stack",
|
||||
"Felaktigt referens i OUTER JOIN. Kontrollera ON-uttrycket",
|
||||
"Kolumn '%-.32s' <20>r anv<6E>nd med UNIQUE eller INDEX men <20>r inte definerad med NOT NULL",
|
||||
"Kan inte ladda funktionen '%-.64s'",
|
||||
"Kan inte initialisera funktionen '%-.64s'; '%-.80s'",
|
||||
@ -130,30 +130,30 @@
|
||||
"Kan inte <20>ppna det dynamiska biblioteket '%-.64s' (Felkod: %d %s)",
|
||||
"Hittar inte funktionen '%-.64s' in det dynamiska biblioteket",
|
||||
"Funktionen '%-.64s' <20>r inte definierad",
|
||||
"Denna dator '%-.64s' <20>r blockerad pga m<>nga felaktig paket. G<>r 'mysqladmin flush-hosts' f<>r att ta bort alla blockeringarna",
|
||||
"Denna dator '%-.64s' har inte privileger att anv<6E>nda denna MySQL server",
|
||||
"Denna dator, '%-.64s', <20>r blockerad pga m<>nga felaktig paket. G<>r 'mysqladmin flush-hosts' f<>r att ta bort alla blockeringarna",
|
||||
"Denna dator, '%-.64s', har inte privileger att anv<6E>nda denna MySQL server",
|
||||
"Du anv<6E>nder MySQL som en anonym anv<6E>ndare och som s<>dan f<>r du inte <20>ndra ditt l<>senord",
|
||||
"F<>r att <20>ndra l<>senord f<>r andra m<>ste du ha r<>ttigheter att uppdatera mysql databasen",
|
||||
"Hittade inte anv<6E>ndaren i 'user' tabellen",
|
||||
"F<>r att <20>ndra l<>senord f<>r andra m<>ste du ha r<>ttigheter att uppdatera mysql-databasen",
|
||||
"Hittade inte anv<6E>ndaren i 'user'-tabellen",
|
||||
"Rader: %ld Uppdaterade: %ld Varningar: %ld",
|
||||
"Kan inte skapa en ny tr<74>d (errno %d)",
|
||||
"Antalet kolumner motsvarar inte antalet v<>rden p<> rad: %ld",
|
||||
"Kunde inte st<73>nga och <20>ppna tabell: '%-.64s",
|
||||
"Kunde inte st<73>nga och <20>ppna tabell '%-.64s",
|
||||
"Felaktig anv<6E>nding av NULL",
|
||||
"Fix fel '%-.64s' fr<66>n REGEXP",
|
||||
"Man f<>r ha b<>de GROUP kolumner (MIN(),MAX(),COUNT()...) och f<>lt i en fr<66>ga om man inte har en GROUP BY del",
|
||||
"Fick fel '%-.64s' fr<66>n REGEXP",
|
||||
"Man f<>r ha b<>de GROUP-kolumner (MIN(),MAX(),COUNT()...) och f<>lt i en fr<66>ga om man inte har en GROUP BY-del",
|
||||
"Det finns inget privilegium definierat f<>r anv<6E>ndare '%-.32s' p<> '%-.64s'",
|
||||
"%-.16s ej till<6C>tet f<>r '%-.32s@%-.64s' f<>r tabell '%-.64s'",
|
||||
"%-.16s ej till<6C>tet f<>r '%-.32s@%-.64s'\n f<>r kolumn '%-.64s' i tabell '%-.64s'",
|
||||
"Felaktigt GRANT privilegium anv<6E>nt",
|
||||
"%-.16s ej till<6C>tet f<>r '%-.32s@%-.64s' f<>r kolumn '%-.64s' i tabell '%-.64s'",
|
||||
"Felaktigt GRANT-privilegium anv<6E>nt",
|
||||
"Felaktigt maskinnamn eller anv<6E>ndarnamn anv<6E>nt med GRANT",
|
||||
"Det finns ingen tabell som heter '%-.64s.%s'",
|
||||
"Det finns inget privilegium definierat f<>r anv<6E>ndare '%-.32s' p<> '%-.64s' f<>r tabell '%-.64s'",
|
||||
"Du kan inte anv<6E>nda detta kommando med denna MySQL version",
|
||||
"Du har n<>got fel i din syntax",
|
||||
"DELAYED INSERT tr<EFBFBD>den kunde inte l<>sa tabell '%-.64s'",
|
||||
"DELAYED INSERT-tr<EFBFBD>den kunde inte l<>sa tabell '%-.64s'",
|
||||
"Det finns redan 'max_delayed_threads' tr<74>dar i anv<6E>nding",
|
||||
"Avbr<62>t l<>nken f<>r tr<74>d %ld till db: '%-.64s' anv<6E>ndare: '%-.64s' (%s)",
|
||||
"Avbr<62>t l<>nken f<>r tr<74>d %ld till db '%-.64s', anv<6E>ndare '%-.64s' (%s)",
|
||||
"Kommunkationspaketet <20>r st<73>rre <20>n 'max_allowed_packet'",
|
||||
"Fick l<>sfel fr<66>n klienten vid l<>sning fr<66>n 'PIPE'",
|
||||
"Fick fatalt fel fr<66>n 'fcntl()'",
|
||||
@ -163,20 +163,20 @@
|
||||
"Fick 'timeout' vid l<>sning fr<66>n klienten",
|
||||
"Fick ett fel vid skrivning till klienten",
|
||||
"Fick 'timeout' vid skrivning till klienten",
|
||||
"Resultat str<EFBFBD>ngen <20>r l<>ngre <20>n max_allowed_packet",
|
||||
"Den anv<6E>nda tabell typen kan inte hantera BLOB/TEXT kolumner",
|
||||
"Den anv<6E>nda tabell typen kan inte hantera AUTO_INCREMENT kolumner",
|
||||
"Resultatstr<74>ngen <20>r l<>ngre <20>n max_allowed_packet",
|
||||
"Den anv<6E>nda tabelltypen kan inte hantera BLOB/TEXT-kolumner",
|
||||
"Den anv<6E>nda tabelltypen kan inte hantera AUTO_INCREMENT-kolumner",
|
||||
"INSERT DELAYED kan inte anv<6E>ndas med tabell '%-.64s', emedan den <20>r l<>st med LOCK TABLES",
|
||||
"Felaktigt column namn '%-.100s'",
|
||||
"Den anv<6E>nda tabell typen kan inte indexera kolumn '%-.64s'",
|
||||
"Tabellerna i MERGE tabellen <20>r inte identiskt definierade",
|
||||
"Kan inte skriva till tabell '%-.64s'; UNIQUE test",
|
||||
"Du har inte angett en nyckel l<EFBFBD>ngd f<>r BLOB '%-.64s'",
|
||||
"Felaktigt kolumnnamn '%-.100s'",
|
||||
"Den anv<6E>nda tabelltypen kan inte indexera kolumn '%-.64s'",
|
||||
"Tabellerna i MERGE-tabellen <20>r inte identiskt definierade",
|
||||
"Kan inte skriva till tabell '%-.64s'; UNIQUE-test",
|
||||
"Du har inte angett n<EFBFBD>gon nyckell<6C>ngd f<>r BLOB '%-.64s'",
|
||||
"Alla delar av en PRIMARY KEY m<>ste vara NOT NULL; Om du vill ha en nyckel med NULL, anv<6E>nd UNIQUE ist<73>llet",
|
||||
"Resultet bestod av mera <20>n en rad",
|
||||
"Denna tabell typ kr<6B>ver en PRIMARY KEY",
|
||||
"Denna tabelltyp kr<6B>ver en PRIMARY KEY",
|
||||
"Denna version av MySQL <20>r inte kompilerad med RAID",
|
||||
"Du anv<6E>nder 's<>ker uppdaterings mod' och f<>rs<72>kte uppdatera en table utan en WHERE sats som anv<6E>nder sig av en nyckel",
|
||||
"Du anv<6E>nder 's<>ker uppdateringsmod' och f<>rs<72>kte uppdatera en tabell utan en WHERE-sats som anv<6E>nder sig av en nyckel",
|
||||
"Nyckel '%-.64s' finns inte in tabell '%-.64s'",
|
||||
"Kan inte <20>ppna tabellen",
|
||||
"Tabellhanteraren f<>r denna tabell kan inte g<>ra %s",
|
||||
@ -185,59 +185,59 @@
|
||||
"Fick fel %d vid ROLLBACK",
|
||||
"Fick fel %d vid FLUSH_LOGS",
|
||||
"Fick fel %d vid CHECKPOINT",
|
||||
"Avbr<62>t l<>nken f<>r tr<74>d %ld till db: '%-.64s' anv<6E>ndare: '%-.32s' Host: '%-.64s' (%.-64s)",
|
||||
"Avbr<62>t l<>nken f<>r tr<74>d %ld till db '%-.64s', anv<6E>ndare '%-.32s', host '%-.64s' (%.-64s)",
|
||||
"Tabellhanteraren klarar inte en bin<69>r kopiering av tabellen",
|
||||
"Bin<69>rloggen st<73>ngdes medan vi gjorde FLUSH MASTER",
|
||||
"Bin<69>rloggen st<73>ngdes medan FLUSH MASTER utf<74>rdes",
|
||||
"Failed rebuilding the index of dumped table '%-.64s'",
|
||||
"Fick en master: '%-.64s'",
|
||||
"Fick n<>tverksfel vid l<>sning fr<66>n master",
|
||||
"Fick n<>tverksfel vid skrivning till master",
|
||||
"Hittar inte ett FULLTEXT index i kolumnlistan",
|
||||
"Kan inte exekvera kommandot emedan du har en l<>st tabell eller an aktiv transaktion",
|
||||
"Ok<4F>nd system variabel '%-.64s'",
|
||||
"Tabell '%-.64s' <20>r crashad och b<>r repareras med REPAIR TABLE",
|
||||
"Tabell '%-.64s' <20>r crashad och senast (automatiska?) reparation misslyckades",
|
||||
"N<>gra icke transaktionella tabeller kunde inte <20>terst<73>llas vid ROLLBACK",
|
||||
"Transaktionen kr<6B>vde mera <20>n 'max_binlog_cache_size' minne. Ut<EFBFBD>ka denna mysqld variabel och f<>rs<72>k p<> nytt",
|
||||
"Hittar inte ett FULLTEXT-index i kolumnlistan",
|
||||
"Kan inte utf<EFBFBD>ra kommandot emedan du har en l<>st tabell eller an aktiv transaktion",
|
||||
"Ok<4F>nd systemvariabel: '%-.64s'",
|
||||
"Tabell '%-.64s' <20>r trasig och b<>r repareras med REPAIR TABLE",
|
||||
"Tabell '%-.64s' <20>r trasig och senast (automatiska?) reparation misslyckades",
|
||||
"Warning: N<EFBFBD>gra icke transaktionella tabeller kunde inte <20>terst<73>llas vid ROLLBACK",
|
||||
"Transaktionen kr<6B>vde mera <20>n 'max_binlog_cache_size' minne. <20>ka denna mysqld-variabel och f<>rs<72>k p<> nytt",
|
||||
"Denna operation kan inte g<>ras under replikering; G<>r STOP SLAVE f<>rst",
|
||||
"Denna operation kan endast g<>ras under replikering; Konfigurera slaven och g<>r START SLAVE",
|
||||
"Servern <20>r inte konfigurerade som en replikations slav. <20>ndra konfigurationsfilen eller g<>r CHANGE MASTER TO",
|
||||
"Kunde inte initializera replications-strukturerna. Kontrollera privilegerna f<>r 'master.info'",
|
||||
"Servern <20>r inte konfigurerade som en replikationsslav. <20>ndra konfigurationsfilen eller g<>r CHANGE MASTER TO",
|
||||
"Kunde inte initialisera replikationsstrukturerna. Kontrollera privilegerna f<>r 'master.info'",
|
||||
"Kunde inte starta en tr<74>d f<>r replikering",
|
||||
"Anv<6E>ndare '%-.64s' har redan 'max_user_connections' aktiva inloggningar",
|
||||
"Man kan endast anv<6E>nda konstant-uttryck med SET",
|
||||
"Man kan endast anv<6E>nda konstantuttryck med SET",
|
||||
"Fick inte ett l<>s i tid ; F<>rs<72>k att starta om transaktionen",
|
||||
"Antal l<>s <20>verskrider antalet reserverade l<>s",
|
||||
"Updaterings-l<EFBFBD>s kan inte g<>ras n<>r man anv<6E>nder READ UNCOMMITTED",
|
||||
"DROP DATABASE <20>r inte till<6C>tet n<>r man har ett globalt l<>s-l<EFBFBD>s",
|
||||
"CREATE DATABASE <20>r inte till<6C>tet n<>r man har ett globalt l<>s-l<EFBFBD>s",
|
||||
"Updateringsl<73>s kan inte g<>ras n<>r man anv<6E>nder READ UNCOMMITTED",
|
||||
"DROP DATABASE <20>r inte till<6C>tet n<>r man har ett globalt l<>sl<73>s",
|
||||
"CREATE DATABASE <20>r inte till<6C>tet n<>r man har ett globalt l<>sl<73>s",
|
||||
"Felaktiga argument till %s",
|
||||
"%-.32s@%-.64s har inte r<>ttighet att skapa nya anv<6E>ndare",
|
||||
"Felaktig tabell definition: Alla tabeller i en MERGE tabell m<>ste vara i samma databas",
|
||||
"Fick 'DEADLOCK' vid l<>sf<73>rs<72>k av block/rad; F<>rs<72>k att starta om transaktionen",
|
||||
"Tabelltypen har inte hantering av FULLTEXT index",
|
||||
"Felaktig tabelldefinition. Alla tabeller i en MERGE-tabell m<>ste vara i samma databas",
|
||||
"Fick 'DEADLOCK' vid l<>sf<73>rs<72>k av block/rad. F<>rs<72>k att starta om transaktionen",
|
||||
"Tabelltypen har inte hantering av FULLTEXT-index",
|
||||
"Kan inte l<>gga till 'FOREIGN KEY constraint'",
|
||||
"FOREIGN KEY konflikt: Kan inte skriva barn",
|
||||
"FOREIGN KEY konflikt: Kan inte radera fader",
|
||||
"FOREIGN KEY-konflikt: Kan inte skriva barn",
|
||||
"FOREIGN KEY-konflikt: Kan inte radera fader",
|
||||
"Fick fel vid anslutning till master: %-.128s",
|
||||
"Fick fel vid utf<74>rande av command p<> mastern: %-.128s",
|
||||
"Fick fel vid utf<74>rande av %s: %-.128s",
|
||||
"Felaktig anv<6E>nding av %s and %s",
|
||||
"SELECT kommandona har olika antal kolumner"
|
||||
"Kan inte utf<74>ra kommandot emedan du har ett READ l<EFBFBD>s",
|
||||
"SELECT-kommandona har olika antal kolumner"
|
||||
"Kan inte utf<74>ra kommandot emedan du har ett READ-l<EFBFBD>s",
|
||||
"Blandning av transaktionella och icke-transaktionella tabeller <20>r inaktiverat",
|
||||
"Option '%s' anv<6E>ndes tv<74> g<>nger",
|
||||
"Anv<6E>ndare '%-.64s' har <20>verskridit '%s' (nuvarande v<>rde: %ld)",
|
||||
"Du har inte privlegiet '%-.128s' som beh<65>vs f<>r denna operation",
|
||||
"Variable '%-.64s' <20>r en LOCAL variabel och kan inte <20>ndrad med SET GLOBAL",
|
||||
"Variable '%-.64s' <20>r en GLOBAL variabel och b<>r s<>ttas med SET GLOBAL",
|
||||
"Variable '%-.64s' har inte ett DEFAULT v<EFBFBD>rde",
|
||||
"Variable '%-.64s' kan inte be satt till '%-.64s'",
|
||||
"Variabel '%-.64s' <20>r en LOCAL variabel och kan inte <20>ndrad med SET GLOBAL",
|
||||
"Variabel '%-.64s' <20>r en GLOBAL variabel och b<>r s<>ttas med SET GLOBAL",
|
||||
"Variabel '%-.64s' har inte ett DEFAULT-v<EFBFBD>rde",
|
||||
"Variabel '%-.64s' kan inte s<EFBFBD>ttas till '%-.64s'",
|
||||
"Fel typ av argument till variabel '%-.64s'",
|
||||
"Variabeln '%-.64s' kan endast s<>ttas, inte l<>sas",
|
||||
"Fel anv<6E>nding/placering av '%s'",
|
||||
"Denna version av MySQL kan inte utf<74>ra '%s'",
|
||||
"Fick fatalt fel %d: '%-.128s' fr<66>n master vid l<>sning av bin<69>r loggen",
|
||||
"Denna version av MySQL kan <EFBFBD>nnu inte utf<74>ra '%s'",
|
||||
"Fick fatalt fel %d: '%-.128s' fr<66>n master vid l<>sning av bin<69>rloggen"
|
||||
"Felaktig FOREIGN KEY-definition f<>r '%-.64s': %s",
|
||||
"Nyckelreferensen och tabellreferensen st<73>mmer inte <20>verens",
|
||||
"Kardinalitetsfel (fler/f<>rre <20>n %d kolumner)",
|
||||
|
@ -3419,21 +3419,29 @@ bool add_field_to_list(THD *thd, char *field_name, enum_field_types type,
|
||||
lex->col_list.empty();
|
||||
}
|
||||
|
||||
if (default_value && default_value->type() == Item::NULL_ITEM)
|
||||
if (default_value)
|
||||
{
|
||||
if ((type_modifier & (NOT_NULL_FLAG | AUTO_INCREMENT_FLAG)) ==
|
||||
NOT_NULL_FLAG)
|
||||
if (default_value->type() == Item::NULL_ITEM)
|
||||
{
|
||||
net_printf(thd,ER_INVALID_DEFAULT,field_name);
|
||||
default_value=0;
|
||||
if ((type_modifier & (NOT_NULL_FLAG | AUTO_INCREMENT_FLAG)) ==
|
||||
NOT_NULL_FLAG)
|
||||
{
|
||||
net_printf(thd,ER_INVALID_DEFAULT,field_name);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
else if (type_modifier & AUTO_INCREMENT_FLAG)
|
||||
{
|
||||
net_printf(&thd, ER_INVALID_DEFAULT, field_name);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
default_value=0;
|
||||
}
|
||||
if (!(new_field=new create_field()))
|
||||
DBUG_RETURN(1);
|
||||
new_field->field=0;
|
||||
new_field->field_name=field_name;
|
||||
new_field->def= (type_modifier & AUTO_INCREMENT_FLAG ? 0 : default_value);
|
||||
new_field->def= default_value;
|
||||
new_field->flags= type_modifier;
|
||||
new_field->unireg_check= (type_modifier & AUTO_INCREMENT_FLAG ?
|
||||
Field::NEXT_NUMBER : Field::NONE);
|
||||
|
@ -3081,6 +3081,7 @@ into:
|
||||
LEX *lex=Lex;
|
||||
if (!lex->describe)
|
||||
{
|
||||
lex->uncacheable()
|
||||
if (!(lex->exchange= new sql_exchange($3.str,0)))
|
||||
YYABORT;
|
||||
if (!(lex->result= new select_export(lex->exchange)))
|
||||
@ -3093,6 +3094,7 @@ into:
|
||||
LEX *lex=Lex;
|
||||
if (!lex->describe)
|
||||
{
|
||||
lex->uncacheable()
|
||||
if (!(lex->exchange= new sql_exchange($3.str,1)))
|
||||
YYABORT;
|
||||
if (!(lex->result= new select_dump(lex->exchange)))
|
||||
|
@ -46,8 +46,8 @@ the following commands in a terminal window:
|
||||
sudo ./bin/mysqld_safe
|
||||
(Enter your password)
|
||||
(Press CTRL+Z)
|
||||
(Press CTRL+D to exit the shell)
|
||||
bg
|
||||
(Press CTRL+D to exit the shell)
|
||||
|
||||
You should now be able to connect to the MySQL server,
|
||||
e.g. by running /usr/local/mysql/bin/mysql
|
||||
|
Reference in New Issue
Block a user