Commit a4616a92 authored by monty@mashka.mysql.fi's avatar monty@mashka.mysql.fi

Merge bk-internal.mysql.com:/home/bk/mysql-3.23

into mashka.mysql.fi:/home/my/mysql-3.23
parents 88f811c8 f8fa73d7
.TH perror 1 "19 December 2000" "MySQL 3.23" "MySQL database"
.SH NAME
.BR perror
can be used to display a description for a system error code, or an MyISAM/ISAM table handler error code. The error messages are mostly system dependent.
.SH USAGE
perror [OPTIONS] [ERRORCODE [ERRORCODE...]]
perror \- describes a system or MySQL error code.
.SH SYNOPSIS
.B perror
.RB [ \-? | \-\-help ]
.RB [ \-I | \-\-info ]
.RB [ \-s | \-\-silent ]
.RB [ \-v | \-\-verbose ]
.RB [ \-V | \-\-version ]
perror [OPTIONS] [ERRORCODE [ERRORCODE...]]
.SH DESCRIPTION
Can be used to display a description for a system error code, or an MyISAM/ISAM table handler error code.
The error messages are mostly system dependent.
.SH OPTIONS
.TP
.BR \-? | \-\-help
Displays this help and exits.
......
......@@ -128,3 +128,4 @@ a MAX(b) ELT(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f')
a MAX(b) MAKE_SET(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
1 4 c
10 43 a,b,d,f
a c count(distinct rand())
......@@ -1793,3 +1793,4 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par
t2 0 PRIMARY 1 auto A 1199 NULL NULL
t2 0 fld1 1 fld1 A 1199 NULL NULL
t2 1 fld3 1 fld3 A NULL NULL NULL
1
......@@ -346,3 +346,11 @@ 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;
# not purely group_by bug, but group_by is involved...
create table t1 (a date default null, b date default null);
insert t1 values ('1999-10-01','2000-01-10'), ('1997-01-01','1998-10-01');
select a,min(b) c,count(distinct rand()) from t1 group by a having c<a + interval 1 day;
drop table t1;
......@@ -1712,8 +1712,23 @@ show full columns from t2 from test like 'f%';
show full columns from t2 from test like 's%';
show keys from t2;
#
# random in WHERE clause
#
drop table t1;
CREATE TABLE t1 (
id mediumint(8) unsigned NOT NULL auto_increment,
pseudo varchar(35) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY pseudo (pseudo)
);
INSERT INTO t1 (pseudo) VALUES ('test');
INSERT INTO t1 (pseudo) VALUES ('test1');
SELECT 1 from t1 where rand() > 2;
#
# Drop the test tables
#
drop table t4, t3,t2, t1;
drop table t4, t3, t2, t1;
......@@ -34,8 +34,8 @@ parse_arguments() {
--datadir=*) DATADIR=`echo "$arg" | sed -e "s;--[^=]*=;;"` ;;
--pid-file=*) pid_file=`echo "$arg" | sed -e "s;--[^=]*=;;"` ;;
--user=*)
if [ $SET_USER == 0 ]
then
if test $SET_USER -eq 0
then
user=`echo "$arg" | sed -e "s;--[^=]*=;;"` ; SET_USER=1
fi
;;
......
......@@ -194,6 +194,17 @@ bool Item_field::get_date(TIME *ltime,bool fuzzydate)
return 0;
}
bool Item_field::get_date_result(TIME *ltime,bool fuzzydate)
{
if ((null_value=result_field->is_null()) ||
result_field->get_date(ltime,fuzzydate))
{
bzero((char*) ltime,sizeof(*ltime));
return 1;
}
return 0;
}
bool Item_field::get_time(TIME *ltime)
{
if ((null_value=field->is_null()) || field->get_time(ltime))
......
......@@ -82,6 +82,8 @@ class Item {
virtual void split_sum_func(List<Item> &fields) {}
virtual bool get_date(TIME *ltime,bool fuzzydate);
virtual bool get_time(TIME *ltime);
virtual bool get_date_result(TIME *ltime,bool fuzzydate)
{ return get_date(ltime,fuzzydate); }
};
......@@ -129,8 +131,9 @@ class Item_field :public Item_ident
return field->result_type();
}
Field *tmp_table_field() { return result_field; }
bool get_date(TIME *ltime,bool fuzzydate);
bool get_time(TIME *ltime);
bool get_date(TIME *ltime,bool fuzzydate);
bool get_date_result(TIME *ltime,bool fuzzydate);
bool get_time(TIME *ltime);
};
......@@ -332,8 +335,8 @@ class Item_ref :public Item_ident
return tmp;
}
bool get_date(TIME *ltime,bool fuzzydate)
{
return (null_value=(*ref)->get_date(ltime,fuzzydate));
{
return (null_value=(*ref)->get_date_result(ltime,fuzzydate));
}
bool send(String *tmp) { return (*ref)->send(tmp); }
void make_field(Send_field *field) { (*ref)->make_field(field); }
......
......@@ -181,7 +181,7 @@ static my_bool net_realloc(NET *net, ulong length)
void net_clear(NET *net)
{
#ifndef EXTRA_DEBUG
int count; // One may get 'unused' warning
int count; /* One may get 'unused' warning */
bool is_blocking=vio_is_blocking(net->vio);
if (is_blocking)
vio_blocking(net->vio, FALSE);
......
......@@ -2257,6 +2257,8 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
{
JOIN_TAB *tab=join->join_tab+i;
table_map current_map= tab->table->map;
if (i == join->tables-1)
current_map|= RAND_TABLE_BIT;
bool use_quick_range=0;
used_tables|=current_map;
......
......@@ -444,8 +444,8 @@ static uchar* thai2sortable(const uchar * tstr,uint len)
const uchar* p = tstr;
uchar *outBuf;
// uchar *pRight1, *pRight2, *pRight3, *pRight4;
// uchar *pLeft1, *pLeft2, *pLeft3, *pLeft4;
/* uchar *pRight1, *pRight2, *pRight3, *pRight4; */
/* uchar *pLeft1, *pLeft2, *pLeft3, *pLeft4; */
uchar *pRight1, *pRight2, *pRight3;
uchar *pLeft1, *pLeft2, *pLeft3;
uint bufSize;
......@@ -480,11 +480,11 @@ static uchar* thai2sortable(const uchar * tstr,uint len)
*pRight1++ = t_ctype[p[1]][0];
*pRight2++ = t_ctype[p[1]][1];
*pRight3++ = t_ctype[p[1]][2];
// *pRight4++ = t_ctype[p[1]][3];
/* *pRight4++ = t_ctype[p[1]][3]; */
*pRight1++ = t_ctype[*p][0];
*pRight2++ = t_ctype[*p][1];
*pRight3++ = t_ctype[*p][2];
// *pRight4++ = t_ctype[*p][3];
/* *pRight4++ = t_ctype[*p][3]; */
len--;
p += 2;
} else {
......@@ -501,17 +501,17 @@ static uchar* thai2sortable(const uchar * tstr,uint len)
}
*pRight1++ = L2_BLANK;
*pRight2++ = L3_BLANK;
// *pRight3++ = L4_BLANK;
/* *pRight3++ = L4_BLANK; */
*pRight3++ = '\0';
// *pRight4++ = '\0';
/* *pRight4++ = '\0'; */
memcpy(pRight1, pLeft2, pRight2 - pLeft2);
pRight1 += pRight2 - pLeft2;
memcpy(pRight1, pLeft3, pRight3 - pLeft3);
// pRight1 += pRight3 - pLeft3;
// memcpy(pRight1, pLeft4, pRight4 - pLeft4);
/* pRight1 += pRight3 - pLeft3; */
/* memcpy(pRight1, pLeft4, pRight4 - pLeft4); */
free(pLeft2);
free(pLeft3);
// free(pLeft4);
/* free(pLeft4); */
return(outBuf);
}
......@@ -603,22 +603,22 @@ my_bool my_like_range_tis620(const char *ptr, uint ptr_length, pchar escape,
{
if (*ptr == escape && ptr+1 != end)
{
ptr++; // Skipp escape
ptr++; /* Skipp escape */
*min_str++= *max_str++ = *ptr;
continue;
}
if (*ptr == wild_one) // '_' in SQL
if (*ptr == wild_one) /* '_' in SQL */
{
*min_str++='\0'; // This should be min char
*min_str++='\0'; /* This should be min char */
*max_str++=max_sort_chr;
continue;
}
if (*ptr == wild_many) // '%' in SQL
if (*ptr == wild_many) /* '%' in SQL */
{
*min_length= (uint) (min_str - min_org);
*max_length=res_length;
do {
*min_str++ = ' '; // Because if key compression
*min_str++ = ' '; /* Because if key compression */
*max_str++ = max_sort_chr;
} while (min_str != min_end);
return 0;
......@@ -628,7 +628,7 @@ my_bool my_like_range_tis620(const char *ptr, uint ptr_length, pchar escape,
*min_length= *max_length = (uint) (min_str - min_org);
while (min_str != min_end)
*min_str++ = *max_str++ = ' '; // Because if key compression
*min_str++ = *max_str++ = ' '; /* Because if key compression */
return 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment