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
579e96ce
Commit
579e96ce
authored
Mar 11, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/home/ram/work/5.0.b9029
parents
4f1b201a
1690bab9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
62 additions
and
8 deletions
+62
-8
mysql-test/r/strict.result
mysql-test/r/strict.result
+21
-2
mysql-test/t/strict.test
mysql-test/t/strict.test
+25
-2
sql/field.cc
sql/field.cc
+16
-4
No files found.
mysql-test/r/strict.result
View file @
579e96ce
...
...
@@ -906,14 +906,14 @@ INSERT INTO t1 VALUES ('hello', 'hello'),('he', 'he'),('hello ', 'hello ');
INSERT INTO t1 (col1) VALUES ('hellobob');
ERROR 22001: Data too long for column 'col1' at row 1
INSERT INTO t1 (col2) VALUES ('hellobob');
ERROR
01000: Data truncated
for column 'col2' at row 1
ERROR
22001: Data too long
for column 'col2' at row 1
INSERT INTO t1 (col2) VALUES ('hello ');
Warnings:
Note 1265 Data truncated for column 'col2' at row 1
UPDATE t1 SET col1 ='hellobob' WHERE col1 ='he';
ERROR 22001: Data too long for column 'col1' at row 2
UPDATE t1 SET col2 ='hellobob' WHERE col2 ='he';
ERROR
01000: Data truncated
for column 'col2' at row 2
ERROR
22001: Data too long
for column 'col2' at row 2
INSERT IGNORE INTO t1 VALUES ('hellobob', 'hellobob');
Warnings:
Warning 1265 Data truncated for column 'col1' at row 1
...
...
@@ -1011,3 +1011,22 @@ col1 col2
3
99
DROP TABLE t1;
set sql_mode='traditional';
create table t1 (charcol char(255), varcharcol varchar(255),
binarycol binary(255), varbinarycol varbinary(255), tinytextcol tinytext,
tinyblobcol tinyblob);
insert into t1 (charcol) values (repeat('x',256));
ERROR 22001: Data too long for column 'charcol' at row 1
insert into t1 (varcharcol) values (repeat('x',256));
ERROR 22001: Data too long for column 'varcharcol' at row 1
insert into t1 (binarycol) values (repeat('x',256));
ERROR 22001: Data too long for column 'binarycol' at row 1
insert into t1 (varbinarycol) values (repeat('x',256));
ERROR 22001: Data too long for column 'varbinarycol' at row 1
insert into t1 (tinytextcol) values (repeat('x',256));
ERROR 22001: Data too long for column 'tinytextcol' at row 1
insert into t1 (tinyblobcol) values (repeat('x',256));
ERROR 22001: Data too long for column 'tinyblobcol' at row 1
select * from t1;
charcol varcharcol binarycol varbinarycol tinytextcol tinyblobcol
drop table t1;
mysql-test/t/strict.test
View file @
579e96ce
...
...
@@ -868,12 +868,12 @@ CREATE TABLE t1 (col1 CHAR(5), col2 VARCHAR(6));
INSERT
INTO
t1
VALUES
(
'hello'
,
'hello'
),(
'he'
,
'he'
),(
'hello '
,
'hello '
);
--
error
1406
INSERT
INTO
t1
(
col1
)
VALUES
(
'hellobob'
);
--
error
1
265
--
error
1
406
INSERT
INTO
t1
(
col2
)
VALUES
(
'hellobob'
);
INSERT
INTO
t1
(
col2
)
VALUES
(
'hello '
);
--
error
1406
UPDATE
t1
SET
col1
=
'hellobob'
WHERE
col1
=
'he'
;
--
error
1
265
--
error
1
406
UPDATE
t1
SET
col2
=
'hellobob'
WHERE
col2
=
'he'
;
INSERT
IGNORE
INTO
t1
VALUES
(
'hellobob'
,
'hellobob'
);
UPDATE
IGNORE
t1
SET
col2
=
'hellotrudy'
WHERE
col2
=
'he'
;
...
...
@@ -939,3 +939,26 @@ INSERT IGNORE INTO t1 (col1) values (3);
INSERT
IGNORE
INTO
t1
()
values
();
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
#
# Bug #9029 Traditional: Wrong SQLSTATE returned for string truncation
#
set
sql_mode
=
'traditional'
;
create
table
t1
(
charcol
char
(
255
),
varcharcol
varchar
(
255
),
binarycol
binary
(
255
),
varbinarycol
varbinary
(
255
),
tinytextcol
tinytext
,
tinyblobcol
tinyblob
);
--
error
1406
insert
into
t1
(
charcol
)
values
(
repeat
(
'x'
,
256
));
--
error
1406
insert
into
t1
(
varcharcol
)
values
(
repeat
(
'x'
,
256
));
--
error
1406
insert
into
t1
(
binarycol
)
values
(
repeat
(
'x'
,
256
));
--
error
1406
insert
into
t1
(
varbinarycol
)
values
(
repeat
(
'x'
,
256
));
--
error
1406
insert
into
t1
(
tinytextcol
)
values
(
repeat
(
'x'
,
256
));
--
error
1406
insert
into
t1
(
tinyblobcol
)
values
(
repeat
(
'x'
,
256
));
select
*
from
t1
;
drop
table
t1
;
sql/field.cc
View file @
579e96ce
...
...
@@ -5332,7 +5332,7 @@ int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs)
uint32
not_used
,
copy_length
;
char
buff
[
STRING_BUFFER_USUAL_SIZE
];
String
tmpstr
(
buff
,
sizeof
(
buff
),
&
my_charset_bin
);
enum
MYSQL_ERROR
::
enum_warning_level
level
=
MYSQL_ERROR
::
WARN_LEVEL_WARN
;
bool
lost_only_spaces
=
FALSE
;
/* Convert character set if necessary */
if
(
String
::
needs_conversion
(
length
,
cs
,
field_charset
,
&
not_used
))
...
...
@@ -5370,11 +5370,18 @@ int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs)
then don't reset level to NOTE.
*/
if
(
from
==
end
&&
!
error
)
l
evel
=
MYSQL_ERROR
::
WARN_LEVEL_NOT
E
;
l
ost_only_spaces
=
TRU
E
;
error
=
1
;
}
if
(
error
)
set_warning
(
level
,
WARN_DATA_TRUNCATED
,
1
);
{
if
(
lost_only_spaces
)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_NOTE
,
WARN_DATA_TRUNCATED
,
1
);
else
if
(
table
->
in_use
->
abort_on_warning
)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_DATA_TOO_LONG
,
1
);
else
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
WARN_DATA_TRUNCATED
,
1
);
}
return
error
;
}
...
...
@@ -5971,7 +5978,12 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
bmove
(
ptr
+
packlength
,(
char
*
)
&
from
,
sizeof
(
char
*
));
}
if
(
error
)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
WARN_DATA_TRUNCATED
,
1
);
{
if
(
table
->
in_use
->
abort_on_warning
)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_DATA_TOO_LONG
,
1
);
else
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
WARN_DATA_TRUNCATED
,
1
);
}
return
0
;
}
...
...
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