I ran your statements and they behaved exactly like they should
I am using 1.2.139

- rami

#1: SET SCHEMA TEST
Statement lasted 6 ms
Statement executed SUCCESFULLY.

#2: create table TestTbl (
Statement lasted 3 ms
Statement executed SUCCESFULLY.

#3: insert into Testtbl (col1, col2 , col3 ) values ('1', '2', 33333)
Statement lasted 6 ms
1 rows UPDATED.

#4: insert into Testtbl (col1, col2 , col3 ) values (null, '2', 33333)
Statement lasted 1 ms
1 rows UPDATED.

#5: insert into Testtbl (col1, col2 , col3 ) values ('1', null, 33333)
Statement lasted 0 ms
1 rows UPDATED.

#6: insert into Testtbl (col1, col2 , col3 ) values ('11', '2', 33333)
1  insert into Testtbl (col1, col2 , col3 ) values ('11', '2', 33333)
Value too long for column "COL1 VARCHAR(1)": "'11' (2)"; SQL statement:
insert into Testtbl (col1, col2 , col3 ) values ('11', '2', 33333) [90005-134]

#7: insert into Testtbl (col1, col2 , col3 ) values ('1', '22', 33333)
1  insert into Testtbl (col1, col2 , col3 ) values ('1', '22', 33333)
Value too long for column "COL2 CHAR(1)": "'22' (2)"; SQL statement:
insert into Testtbl (col1, col2 , col3 ) values ('1', '22', 33333) [90005-134]

#8: insert into Testtbl (col1, col2 , col3 ) values ('1', '2', 333333)
Statement lasted 0 ms
1 rows UPDATED.

#9: SELECT * FROM TESTTBL
Statement lasted 10 ms
-------------------------------------------------------------------------
|  COL0 : BIGINT  |  COL1 : VARCHAR  |  COL2 : CHAR  |  COL3 : INTEGER  |
-------------------------------------------------------------------------
|  1              |  1               |  2            |  33333           |
-------------------------------------------------------------------------
|  2              |  NULL            |  2            |  33333           |
-------------------------------------------------------------------------
|  3              |  1               |  NULL         |  33333           |
-------------------------------------------------------------------------
|  6              |  1               |  2            |  333333          |
-------------------------------------------------------------------------

#10: MERGE into Testtbl values (1, '1', '3', 333333)
Statement lasted 6 ms
1 rows UPDATED.

#11: MERGE into Testtbl values (2, '11', '4', 333333)
1  MERGE into Testtbl values (2, '11', '4', 333333)
Value too long for column "COL1 VARCHAR(1)": "'11' (2)"; SQL statement:
MERGE into Testtbl values (2, '11', '4', 333333) [90005-134]

#12: MERGE into Testtbl values (3, '1', '555', 333333)
1  MERGE into Testtbl values (3, '1', '555', 333333)
Value too long for column "COL2 CHAR(1)": "'555' (3)"; SQL statement:
MERGE into Testtbl values (3, '1', '555', 333333) [90005-134]

#13: MERGE into Testtbl values (6, '1', '6', 3333333)
Statement lasted 1 ms
1 rows UPDATED.

#14: SELECT * FROM TESTTBL
Statement lasted 1 ms
-------------------------------------------------------------------------
|  COL0 : BIGINT  |  COL1 : VARCHAR  |  COL2 : CHAR  |  COL3 : INTEGER  |
-------------------------------------------------------------------------
|  1              |  1               |  3            |  333333          |
-------------------------------------------------------------------------
|  2              |  NULL            |  2            |  33333           |
-------------------------------------------------------------------------
|  3              |  1               |  NULL         |  33333           |
-------------------------------------------------------------------------
|  6              |  1               |  6            |  3333333         |
-------------------------------------------------------------------------
31.8.2010 21:48, Sudhir kirjoitti:
Noticed that a Merge fails (as in does not apply changes) without
errors/notification when the data being updated or even inserted
exceeds the column definition. Following is a test case. I would have
expected the Merge to either silently truncate (at least in case of
strings) or throw an error like it does in Inserts.

---------------------------------------------------------------------------------------------------------------------------------------------------
create table TestTbl (
   col0 identity,
   col1 varchar(1),
   col2 char(1),
   col3 int
)

insert into Testtbl (col1, col2 , col3 ) values ('1', '2', 33333);
insert into Testtbl (col1, col2 , col3 ) values (null, '2', 33333);
insert into Testtbl (col1, col2 , col3 ) values ('1', null, 33333);
insert into Testtbl (col1, col2 , col3 ) values ('11', '2', 33333);
insert into Testtbl (col1, col2 , col3 ) values ('1', '22', 33333);
insert into Testtbl (col1, col2 , col3 ) values ('1', '2', 333333);
SELECT * FROM TESTTBL ;

--Fails
MERGE into Testtbl values (1, '1', '3', 333333);
MERGE into Testtbl values (2, '11', '4', 333333);
MERGE into Testtbl values (3, '1', '555', 333333);
--Fails
MERGE into Testtbl values (6, '1', '6', 3333333);

SELECT * FROM TESTTBL


--
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to