mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into dl145b.mysql.com:/home/ndbdev/tomas/mysql-5.1
This commit is contained in:
commit
8df638b6d1
4 changed files with 50 additions and 2 deletions
|
@ -1757,6 +1757,20 @@ select * from v1;
|
||||||
cast(1 as decimal)
|
cast(1 as decimal)
|
||||||
1.00
|
1.00
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
create table t1(f1 int);
|
||||||
|
create table t2(f2 int);
|
||||||
|
insert into t1 values(1),(2),(3);
|
||||||
|
insert into t2 values(1),(2),(3);
|
||||||
|
create view v1 as select * from t1,t2 where f1=f2;
|
||||||
|
create table t3 (f1 int, f2 int);
|
||||||
|
insert into t3 select * from v1 order by 1;
|
||||||
|
select * from t3;
|
||||||
|
f1 f2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
drop view v1;
|
||||||
|
drop table t1,t2,t3;
|
||||||
create view v1 as select '\\','\\shazam';
|
create view v1 as select '\\','\\shazam';
|
||||||
select * from v1;
|
select * from v1;
|
||||||
\ \shazam
|
\ \shazam
|
||||||
|
|
|
@ -1599,6 +1599,19 @@ drop table t1;
|
||||||
create view v1 as select cast(1 as decimal);
|
create view v1 as select cast(1 as decimal);
|
||||||
select * from v1;
|
select * from v1;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
#
|
||||||
|
# Bug#11298 insert into select from VIEW produces incorrect result when
|
||||||
|
# using ORDER BY
|
||||||
|
create table t1(f1 int);
|
||||||
|
create table t2(f2 int);
|
||||||
|
insert into t1 values(1),(2),(3);
|
||||||
|
insert into t2 values(1),(2),(3);
|
||||||
|
create view v1 as select * from t1,t2 where f1=f2;
|
||||||
|
create table t3 (f1 int, f2 int);
|
||||||
|
insert into t3 select * from v1 order by 1;
|
||||||
|
select * from t3;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generation unique names for columns, and correct names check (BUG#7448)
|
# Generation unique names for columns, and correct names check (BUG#7448)
|
||||||
|
|
22
sql/item.cc
22
sql/item.cc
|
@ -4366,6 +4366,28 @@ my_decimal *Item_ref::val_decimal(my_decimal *decimal_value)
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Item_ref::save_in_field(Field *to, bool no_conversions)
|
||||||
|
{
|
||||||
|
int res;
|
||||||
|
if(result_field){
|
||||||
|
if (result_field->is_null())
|
||||||
|
{
|
||||||
|
null_value= 1;
|
||||||
|
return set_field_to_null_with_conversions(to, no_conversions);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
to->set_notnull();
|
||||||
|
field_conv(to, result_field);
|
||||||
|
null_value= 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
res= (*ref)->save_in_field(to, no_conversions);
|
||||||
|
null_value= (*ref)->null_value;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Item_ref_null_helper::print(String *str)
|
void Item_ref_null_helper::print(String *str)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1345,8 +1345,7 @@ public:
|
||||||
bool send(Protocol *prot, String *tmp);
|
bool send(Protocol *prot, String *tmp);
|
||||||
void make_field(Send_field *field) { (*ref)->make_field(field); }
|
void make_field(Send_field *field) { (*ref)->make_field(field); }
|
||||||
bool fix_fields(THD *, struct st_table_list *, Item **);
|
bool fix_fields(THD *, struct st_table_list *, Item **);
|
||||||
int save_in_field(Field *field, bool no_conversions)
|
int save_in_field(Field *field, bool no_conversions);
|
||||||
{ return (*ref)->save_in_field(field, no_conversions); }
|
|
||||||
void save_org_in_field(Field *field) { (*ref)->save_org_in_field(field); }
|
void save_org_in_field(Field *field) { (*ref)->save_org_in_field(field); }
|
||||||
enum Item_result result_type () const { return (*ref)->result_type(); }
|
enum Item_result result_type () const { return (*ref)->result_type(); }
|
||||||
enum_field_types field_type() const { return (*ref)->field_type(); }
|
enum_field_types field_type() const { return (*ref)->field_type(); }
|
||||||
|
|
Loading…
Add table
Reference in a new issue