mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Merge ssmith@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/stewart/Documents/MySQL/4.1/main
This commit is contained in:
commit
1e4a93e253
5 changed files with 62 additions and 4 deletions
|
@ -3914,6 +3914,7 @@ int main(int argc, char **argv)
|
|||
error|= run_query(&cur_con->mysql, q, QUERY_REAP|QUERY_SEND);
|
||||
display_result_vertically= old_display_result_vertically;
|
||||
q->last_argument= q->end;
|
||||
query_executed= 1;
|
||||
break;
|
||||
}
|
||||
case Q_QUERY:
|
||||
|
|
|
@ -66,3 +66,13 @@ a b
|
|||
3 row 3
|
||||
0
|
||||
drop table t1;
|
||||
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
|
||||
create table t1(id integer not null auto_increment primary key);
|
||||
insert into t1 values(0);
|
||||
select * from t1;
|
||||
id
|
||||
0
|
||||
select * from t1;
|
||||
id
|
||||
0
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
|
|
|
@ -31,4 +31,31 @@ load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated
|
|||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug #12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
|
||||
#
|
||||
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
|
||||
create table t1(id integer not null auto_increment primary key);
|
||||
insert into t1 values(0);
|
||||
disable_query_log;
|
||||
eval SELECT * INTO OUTFILE '$MYSQL_TEST_DIR/var/tmp/t1' from t1;
|
||||
delete from t1;
|
||||
eval load data infile '$MYSQL_TEST_DIR/var/tmp/t1' into table t1;
|
||||
enable_query_log;
|
||||
select * from t1;
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1
|
||||
|
||||
disable_query_log;
|
||||
eval SELECT * INTO OUTFILE '$MYSQL_TEST_DIR/var/tmp/t1'
|
||||
FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n'
|
||||
FROM t1;
|
||||
delete from t1;
|
||||
eval load data infile '$MYSQL_TEST_DIR/var/tmp/t1' into table t1
|
||||
FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n';
|
||||
enable_query_log;
|
||||
select * from t1;
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -429,6 +429,8 @@ read_fixed_length(THD *thd,COPY_INFO &info,TABLE *table,List<Item> &fields,
|
|||
while ((sql_field= (Item_field*) it++))
|
||||
{
|
||||
Field *field= sql_field->field;
|
||||
if (field == table->next_number_field)
|
||||
table->auto_increment_field_not_null= TRUE;
|
||||
if (pos == read_info.row_end)
|
||||
{
|
||||
thd->cuted_fields++; /* Not enough fields */
|
||||
|
@ -520,6 +522,8 @@ read_sep_field(THD *thd,COPY_INFO &info,TABLE *table,
|
|||
length=(uint) (read_info.row_end-pos);
|
||||
Field *field=sql_field->field;
|
||||
|
||||
if (field == table->next_number_field)
|
||||
table->auto_increment_field_not_null= TRUE;
|
||||
if (!read_info.enclosed &&
|
||||
(enclosed_length && length == 4 && !memcmp(pos,"NULL",4)) ||
|
||||
(length == 1 && read_info.found_null))
|
||||
|
|
|
@ -644,7 +644,8 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||
NUM_literal
|
||||
|
||||
%type <item_list>
|
||||
expr_list udf_expr_list when_list ident_list ident_list_arg
|
||||
expr_list udf_expr_list udf_sum_expr_list when_list ident_list
|
||||
ident_list_arg
|
||||
|
||||
%type <key_type>
|
||||
key_type opt_unique_or_fulltext constraint_key_type
|
||||
|
@ -3137,21 +3138,21 @@ simple_expr:
|
|||
{ $$= new Item_func_trim($5,$3); }
|
||||
| TRUNCATE_SYM '(' expr ',' expr ')'
|
||||
{ $$= new Item_func_round($3,$5,1); }
|
||||
| UDA_CHAR_SUM '(' udf_expr_list ')'
|
||||
| UDA_CHAR_SUM '(' udf_sum_expr_list ')'
|
||||
{
|
||||
if ($3 != NULL)
|
||||
$$ = new Item_sum_udf_str($1, *$3);
|
||||
else
|
||||
$$ = new Item_sum_udf_str($1);
|
||||
}
|
||||
| UDA_FLOAT_SUM '(' udf_expr_list ')'
|
||||
| UDA_FLOAT_SUM '(' udf_sum_expr_list ')'
|
||||
{
|
||||
if ($3 != NULL)
|
||||
$$ = new Item_sum_udf_float($1, *$3);
|
||||
else
|
||||
$$ = new Item_sum_udf_float($1);
|
||||
}
|
||||
| UDA_INT_SUM '(' udf_expr_list ')'
|
||||
| UDA_INT_SUM '(' udf_sum_expr_list ')'
|
||||
{
|
||||
if ($3 != NULL)
|
||||
$$ = new Item_sum_udf_int($1, *$3);
|
||||
|
@ -3289,6 +3290,21 @@ udf_expr_list:
|
|||
/* empty */ { $$= NULL; }
|
||||
| expr_list { $$= $1;};
|
||||
|
||||
udf_sum_expr_list:
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
if (lex->current_select->inc_in_sum_expr())
|
||||
{
|
||||
yyerror(ER(ER_SYNTAX_ERROR));
|
||||
YYABORT;
|
||||
}
|
||||
}
|
||||
udf_expr_list
|
||||
{
|
||||
Select->in_sum_expr--;
|
||||
$$= $2;
|
||||
};
|
||||
|
||||
sum_expr:
|
||||
AVG_SYM '(' in_sum_expr ')'
|
||||
{ $$=new Item_sum_avg($3); }
|
||||
|
|
Loading…
Reference in a new issue