Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
0950a316
Commit
0950a316
authored
Jul 22, 2006
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into mysql.com:/home/psergey/mysql-5.0-opt2
parents
8fc51f7a
5a3a1c98
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
82 additions
and
17 deletions
+82
-17
mysql-test/r/create.result
mysql-test/r/create.result
+1
-1
mysql-test/r/innodb.result
mysql-test/r/innodb.result
+2
-2
mysql-test/r/union.result
mysql-test/r/union.result
+23
-8
mysql-test/t/innodb.test
mysql-test/t/innodb.test
+1
-1
mysql-test/t/union.test
mysql-test/t/union.test
+10
-2
sql/field.cc
sql/field.cc
+18
-0
sql/field.h
sql/field.h
+17
-0
sql/item.cc
sql/item.cc
+10
-3
No files found.
mysql-test/r/create.result
View file @
0950a316
...
...
@@ -452,7 +452,7 @@ t2 CREATE TABLE `t2` (
`ifnull(h,h)` decimal(5,4) default NULL,
`ifnull(i,i)` year(4) default NULL,
`ifnull(j,j)` date default NULL,
`ifnull(k,k)`
datetime
NOT NULL default '0000-00-00 00:00:00',
`ifnull(k,k)`
timestamp
NOT NULL default '0000-00-00 00:00:00',
`ifnull(l,l)` datetime default NULL,
`ifnull(m,m)` varchar(1) default NULL,
`ifnull(n,n)` varchar(3) default NULL,
...
...
mysql-test/r/innodb.result
View file @
0950a316
...
...
@@ -1473,8 +1473,8 @@ Error 1146 Table 'test.t4' doesn't exist
drop table t1,t2,t3;
create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb;
insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt');
select
name2 from t1 union all select name from t1 union all select id
from t1;
name2
select
trim(name2) from t1 union all select trim(name) from t1 union all select trim(id)
from t1;
trim(name2)
fff
sss
ttt
...
...
mysql-test/r/union.result
View file @
0950a316
...
...
@@ -691,9 +691,9 @@ t1 CREATE TABLE `t1` (
`da` datetime default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT dt from t2 UNION select
sc
from t2;
select
*
from t1;
dt
create table t1 SELECT dt from t2 UNION select
trim(sc)
from t2;
select
trim(dt)
from t1;
trim(dt)
1972-10-22 11:50:00
testc
show create table t1;
...
...
@@ -732,7 +732,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`dt`
long
blob
`dt` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT sv from t2 UNION select b from t2;
...
...
@@ -743,7 +743,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`sv`
long
blob
`sv` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT i from t2 UNION select d from t2 UNION select b from t2;
...
...
@@ -755,7 +755,7 @@ tetetetetest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i`
long
blob
`i` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT sv from t2 UNION select tx from t2;
...
...
@@ -766,7 +766,7 @@ teeeeeeeeeeeest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`sv`
long
text
`sv` text
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 SELECT b from t2 UNION select tx from t2;
...
...
@@ -777,7 +777,7 @@ teeeeeeeeeeeest
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b`
long
blob
`b` blob
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1,t2;
create table t1 select 1 union select -1;
...
...
@@ -1306,6 +1306,21 @@ id
5
99
drop table t1;
create table t1(f1 char(1), f2 char(5), f3 binary(1), f4 binary(5), f5 timestamp, f6 varchar(1) character set utf8 collate utf8_general_ci, f7 text);
create table t2 as select *, f6 as f8 from t1 union select *, f7 from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`f1` char(1) default NULL,
`f2` char(5) default NULL,
`f3` binary(1) default NULL,
`f4` binary(5) default NULL,
`f5` timestamp NOT NULL default '0000-00-00 00:00:00',
`f6` varchar(1) character set utf8 default NULL,
`f7` text,
`f8` text character set utf8
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2;
(select avg(1)) union (select avg(1)) union (select avg(1)) union
(select avg(1)) union (select avg(1)) union (select avg(1)) union
(select avg(1)) union (select avg(1)) union (select avg(1)) union
...
...
mysql-test/t/innodb.test
View file @
0950a316
...
...
@@ -1079,7 +1079,7 @@ drop table t1,t2,t3;
#
create
table
t1
(
id
int
,
name
char
(
10
)
not
null
,
name2
char
(
10
)
not
null
)
engine
=
innodb
;
insert
into
t1
values
(
1
,
'first'
,
'fff'
),(
2
,
'second'
,
'sss'
),(
3
,
'third'
,
'ttt'
);
select
name2
from
t1
union
all
select
name
from
t1
union
all
select
id
from
t1
;
select
trim
(
name2
)
from
t1
union
all
select
trim
(
name
)
from
t1
union
all
select
trim
(
id
)
from
t1
;
drop
table
t1
;
#
...
...
mysql-test/t/union.test
View file @
0950a316
...
...
@@ -390,8 +390,8 @@ create table t1 SELECT da from t2 UNION select dt from t2;
select
*
from
t1
;
show
create
table
t1
;
drop
table
t1
;
create
table
t1
SELECT
dt
from
t2
UNION
select
sc
from
t2
;
select
*
from
t1
;
create
table
t1
SELECT
dt
from
t2
UNION
select
trim
(
sc
)
from
t2
;
select
trim
(
dt
)
from
t1
;
show
create
table
t1
;
drop
table
t1
;
create
table
t1
SELECT
dt
from
t2
UNION
select
sv
from
t2
;
...
...
@@ -794,6 +794,14 @@ drop table t1;
# End of 4.1 tests
#
# Bug#12185: Data type aggregation may produce wrong result
#
create
table
t1
(
f1
char
(
1
),
f2
char
(
5
),
f3
binary
(
1
),
f4
binary
(
5
),
f5
timestamp
,
f6
varchar
(
1
)
character
set
utf8
collate
utf8_general_ci
,
f7
text
);
create
table
t2
as
select
*
,
f6
as
f8
from
t1
union
select
*
,
f7
from
t1
;
show
create
table
t2
;
drop
table
t1
,
t2
;
#
# Bug#18175: Union select over 129 tables with a sum function fails.
#
...
...
sql/field.cc
View file @
0950a316
...
...
@@ -4485,6 +4485,24 @@ Field_timestamp::Field_timestamp(char *ptr_arg, uint32 len_arg,
}
Field_timestamp
::
Field_timestamp
(
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
)
:
Field_str
((
char
*
)
0
,
19
,
maybe_null_arg
?
(
uchar
*
)
""
:
0
,
0
,
NONE
,
field_name_arg
,
table_arg
,
cs
)
{
/* For 4.0 MYD and 4.0 InnoDB compatibility */
flags
|=
ZEROFILL_FLAG
|
UNSIGNED_FLAG
;
if
(
table
&&
!
table
->
timestamp_field
&&
unireg_check
!=
NONE
)
{
/* This timestamp has auto-update */
table
->
timestamp_field
=
this
;
flags
|=
TIMESTAMP_FLAG
;
}
}
/*
Get auto-set type for TIMESTAMP field.
...
...
sql/field.h
View file @
0950a316
...
...
@@ -782,6 +782,8 @@ public:
enum
utype
unireg_check_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
);
Field_timestamp
(
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
);
enum_field_types
type
()
const
{
return
FIELD_TYPE_TIMESTAMP
;}
enum
ha_base_keytype
key_type
()
const
{
return
HA_KEYTYPE_ULONG_INT
;
}
enum
Item_result
cmp_type
()
const
{
return
INT_RESULT
;
}
...
...
@@ -1130,6 +1132,21 @@ public:
{
flags
|=
BLOB_FLAG
;
}
Field_blob
(
uint32
len_arg
,
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
,
bool
set_packlength
)
:
Field_longstr
((
char
*
)
0
,
len_arg
,
maybe_null_arg
?
(
uchar
*
)
""
:
0
,
0
,
NONE
,
field_name_arg
,
table_arg
,
cs
)
{
flags
|=
BLOB_FLAG
;
packlength
=
4
;
if
(
set_packlength
)
{
uint32
char_length
=
len_arg
/
cs
->
mbmaxlen
;
packlength
=
char_length
<=
255
?
1
:
char_length
<=
65535
?
2
:
char_length
<=
16777215
?
3
:
4
;
}
}
enum_field_types
type
()
const
{
return
FIELD_TYPE_BLOB
;}
enum
ha_base_keytype
key_type
()
const
{
return
binary
()
?
HA_KEYTYPE_VARBINARY2
:
HA_KEYTYPE_VARTEXT2
;
}
...
...
sql/item.cc
View file @
0950a316
...
...
@@ -3903,7 +3903,9 @@ Field *Item::make_string_field(TABLE *table)
if
(
max_length
/
collation
.
collation
->
mbmaxlen
>
CONVERT_IF_BIGGER_TO_BLOB
)
return
new
Field_blob
(
max_length
,
maybe_null
,
name
,
table
,
collation
.
collation
);
if
(
max_length
>
0
)
/* Item_type_holder holds the exact type, do not change it */
if
(
max_length
>
0
&&
(
type
()
!=
Item
::
TYPE_HOLDER
||
field_type
()
!=
MYSQL_TYPE_STRING
))
return
new
Field_varstring
(
max_length
,
maybe_null
,
name
,
table
,
collation
.
collation
);
return
new
Field_string
(
max_length
,
maybe_null
,
name
,
table
,
...
...
@@ -3967,6 +3969,7 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table)
case
MYSQL_TYPE_TIME
:
return
new
Field_time
(
maybe_null
,
name
,
table
,
&
my_charset_bin
);
case
MYSQL_TYPE_TIMESTAMP
:
return
new
Field_timestamp
(
maybe_null
,
name
,
table
,
&
my_charset_bin
);
case
MYSQL_TYPE_DATETIME
:
return
new
Field_datetime
(
maybe_null
,
name
,
table
,
&
my_charset_bin
);
case
MYSQL_TYPE_YEAR
:
...
...
@@ -3990,7 +3993,11 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table)
case
MYSQL_TYPE_LONG_BLOB
:
case
MYSQL_TYPE_BLOB
:
case
MYSQL_TYPE_GEOMETRY
:
return
new
Field_blob
(
max_length
,
maybe_null
,
name
,
table
,
if
(
this
->
type
()
==
Item
::
TYPE_HOLDER
)
return
new
Field_blob
(
max_length
,
maybe_null
,
name
,
table
,
collation
.
collation
,
1
);
else
return
new
Field_blob
(
max_length
,
maybe_null
,
name
,
table
,
collation
.
collation
);
break
;
// Blob handled outside of case
}
...
...
@@ -6151,7 +6158,7 @@ uint32 Item_type_holder::display_length(Item *item)
case
MYSQL_TYPE_DOUBLE
:
return
53
;
case
MYSQL_TYPE_NULL
:
return
4
;
return
0
;
case
MYSQL_TYPE_LONGLONG
:
return
20
;
case
MYSQL_TYPE_INT24
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment