From 231f4964ad6b19f9c83cac2065f0318cee4b0e74 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 May 2006 17:05:21 +0300 Subject: [PATCH] Added test case for Bug#18712: Truncation problem. The test is only to make sure that this will not be fixed, as it is intended behaviour. Documentation will be improved accordingly. --- mysql-test/r/select.result | 21 +++++++++++++++++++++ mysql-test/t/select.test | 15 +++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 9b9f67efeb5..ea85025a37b 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -3390,3 +3390,24 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where DROP TABLE t1,t2; +CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL); +INSERT t1 SET i = 0; +UPDATE t1 SET i = -1; +Warnings: +Warning 1264 Out of range value adjusted for column 'i' at row 1 +SELECT * FROM t1; +i +0 +UPDATE t1 SET i = CAST(i - 1 AS SIGNED); +Warnings: +Warning 1264 Out of range value adjusted for column 'i' at row 1 +SELECT * FROM t1; +i +0 +UPDATE t1 SET i = i - 1; +Warnings: +Warning 1264 Out of range value adjusted for column 'i' at row 1 +SELECT * FROM t1; +i +255 +DROP TABLE t1; diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index c4fe1906cbc..8e3c5847846 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -2871,3 +2871,18 @@ SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr DROP TABLE t1,t2; + +# +# Bug#18712: Truncation problem (needs just documenting and test +# cases to prevent fixing this accidently. It is intended behaviour) +# + +CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL); +INSERT t1 SET i = 0; +UPDATE t1 SET i = -1; +SELECT * FROM t1; +UPDATE t1 SET i = CAST(i - 1 AS SIGNED); +SELECT * FROM t1; +UPDATE t1 SET i = i - 1; +SELECT * FROM t1; +DROP TABLE t1;