diff --git a/test/box/sql.result b/test/box/sql.result
index 27ace669657c18c0d7d46ad0d53c7814651fdb6c..41fe972cb795e74f84ffec28f4f256370919eb24 100644
--- a/test/box/sql.result
+++ b/test/box/sql.result
@@ -53,3 +53,23 @@ Insert OK, 1 row affected
 select * from t0 where k0 = 1
 Found 1 tuple:
 [1, 'Huh', 'Oh-ho-ho']
+update t0 set k1 = "", k2 = "" where k0=1
+Insert OK, 1 row affected
+select * from t0 where k0 = 1
+Found 1 tuple:
+[1, '', '']
+update t0 set k1 = 2, k2 = 3 where k0=1
+Insert OK, 1 row affected
+select * from t0 where k0 = 1
+Found 1 tuple:
+[1, 2, 3]
+insert into t0 values (0)
+Insert OK, 1 row affected
+select * from t0 where k0=0
+Found 1 tuple:
+[0]
+insert into t0 values (4294967295)
+Insert OK, 1 row affected
+select * from t0 where k0=4294967295
+Found 1 tuple:
+[4294967295]
diff --git a/test/box/sql.test b/test/box/sql.test
index c0a040bd691283e76a2beadd17ab56172b21fe2a..63f2367b437515e854837e3f464c2506f0f12366 100644
--- a/test/box/sql.test
+++ b/test/box/sql.test
@@ -28,5 +28,16 @@ exec sql 'select * from t0 where k0 = 1'
 exec sql 'insert into t0 values (1, "I am a new tuple", "stub")'
 exec sql 'update t0 set k1 = "Huh", k2 = "Oh-ho-ho" where k0=1'
 exec sql 'select * from t0 where k0 = 1'
+# check empty strings
+exec sql 'update t0 set k1 = "", k2 = "" where k0=1'
+exec sql 'select * from t0 where k0 = 1'
+# check type change 
+exec sql 'update t0 set k1 = 2, k2 = 3 where k0=1'
+exec sql 'select * from t0 where k0 = 1'
+# check limits
+exec sql 'insert into t0 values (0)'
+exec sql 'select * from t0 where k0=0'
+exec sql 'insert into t0 values (4294967295)'
+exec sql 'select * from t0 where k0=4294967295'
 
 # vim: syntax=python
diff --git a/test/lib/sql.g b/test/lib/sql.g
index 594e9942fe2c5091d3ab2151b58beda797100475..4e464e36a7cb9d2d7b9b779d1a18fb16d0d9e1b9 100644
--- a/test/lib/sql.g
+++ b/test/lib/sql.g
@@ -8,7 +8,7 @@ object_no_re = re.compile("[a-z_]*", re.I)
 parser sql:
 
     ignore:           '\\s+'
-    token NUM:        '[0-9]+'
+    token NUM:        '[+-]?[0-9]+'
     token ID:         '[a-z_]+[0-9]+' 
     token STR:        '"([^\\"]+|\\\\.)*"'
     token PING:       'ping'
diff --git a/test/lib/sql.py b/test/lib/sql.py
index 93593316b3b447c98a30a9496a46b06b5ce9e1ef..73030fdc04bd09792fd62c72d32ff0788e7e8787 100644
--- a/test/lib/sql.py
+++ b/test/lib/sql.py
@@ -17,7 +17,7 @@ class sqlScanner(runtime.Scanner):
         ("'='", re.compile('=')),
         ("'\\*'", re.compile('\\*')),
         ('\\s+', re.compile('\\s+')),
-        ('NUM', re.compile('[0-9]+')),
+        ('NUM', re.compile('[+-]?[0-9]+')),
         ('ID', re.compile('[a-z_]+[0-9]+')),
         ('STR', re.compile('"([^\\"]+|\\\\.)*"')),
         ('PING', re.compile('ping')),