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')),