From: Nikita Pettik <korablev@tarantool.org>
To: tarantool-patches@freelists.org
Cc: kyukhin@tarantool.org, Nikita Pettik <korablev@tarantool.org>
Subject: [tarantool-patches] [PATCH] sql: fix decoding data of type BOOLEAN
Date: Sat, 29 Dec 2018 11:07:18 +0200 [thread overview]
Message-ID: <20181229090718.20432-1-korablev@tarantool.org> (raw)
Closes #3906
---
Branch: https://github.com/tarantool/tarantool/tree/np/gh-3906-fix-displaying-bool
Issue: https://github.com/tarantool/tarantool/issues/3906
src/box/sql/vdbeaux.c | 2 +-
test/sql-tap/autoinc.test.lua | 2 +-
test/sql/types.result | 28 ++++++++++++++++++++++++++++
test/sql/types.test.lua | 11 +++++++++++
4 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c
index fc805e3aa..76bddf2ce 100644
--- a/src/box/sql/vdbeaux.c
+++ b/src/box/sql/vdbeaux.c
@@ -3780,7 +3780,7 @@ sqlite3VdbeMsgpackGet(const unsigned char *buf, /* Buffer to deserialize from */
case MP_BOOL:{
assert((unsigned char)*zParse == 0xc2
|| (unsigned char)*zParse == 0xc3);
- pMem->u.i = (unsigned)*zParse - 0xc2; /* bool -> Integer {0,1} */
+ pMem->u.i = (unsigned char)*zParse - 0xc2;
pMem->flags = MEM_Int;
break;
}
diff --git a/test/sql-tap/autoinc.test.lua b/test/sql-tap/autoinc.test.lua
index 3ac9a856a..3becc342a 100755
--- a/test/sql-tap/autoinc.test.lua
+++ b/test/sql-tap/autoinc.test.lua
@@ -43,7 +43,7 @@ test:do_execsql_test(
SELECT * FROM "_sequence";
]], {
-- <autoinc-1.3>
- 1,1,"T1",1,0,9223372036854775807LL,1,0,4294967041
+ 1,1,"T1",1,0,9223372036854775807LL,1,0,0
-- </autoinc-1.3>
})
diff --git a/test/sql/types.result b/test/sql/types.result
index 1daeb7a8c..1ac599ad5 100644
--- a/test/sql/types.result
+++ b/test/sql/types.result
@@ -104,3 +104,31 @@ box.sql.execute("DROP VIEW v1;")
box.sql.execute("DROP TABLE t1;")
---
...
+-- gh-3906: data of type BOOL is displayed as should
+-- during SQL SELECT.
+--
+format = {{ name = 'ID', type = 'unsigned' }, { name = 'A', type = 'boolean' }}
+---
+...
+sp = box.schema.space.create("TEST", { format = format } )
+---
+...
+i = sp:create_index('primary', {parts = {1, 'unsigned' }})
+---
+...
+sp:insert({1, true})
+---
+- [1, true]
+...
+sp:insert({2, false})
+---
+- [2, false]
+...
+box.sql.execute("SELECT * FROM test")
+---
+- - [1, 1]
+ - [2, 0]
+...
+sp:drop()
+---
+...
diff --git a/test/sql/types.test.lua b/test/sql/types.test.lua
index 5f6b4dc49..8eda36159 100644
--- a/test/sql/types.test.lua
+++ b/test/sql/types.test.lua
@@ -29,3 +29,14 @@ box.space.T1.index.I4.parts
box.sql.execute("DROP VIEW v1;")
box.sql.execute("DROP TABLE t1;")
+
+-- gh-3906: data of type BOOL is displayed as should
+-- during SQL SELECT.
+--
+format = {{ name = 'ID', type = 'unsigned' }, { name = 'A', type = 'boolean' }}
+sp = box.schema.space.create("TEST", { format = format } )
+i = sp:create_index('primary', {parts = {1, 'unsigned' }})
+sp:insert({1, true})
+sp:insert({2, false})
+box.sql.execute("SELECT * FROM test")
+sp:drop()
--
2.15.1
next reply other threads:[~2018-12-29 9:07 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-29 9:07 Nikita Pettik [this message]
2018-12-29 15:06 ` [tarantool-patches] " Kirill Yukhin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181229090718.20432-1-korablev@tarantool.org \
--to=korablev@tarantool.org \
--cc=kyukhin@tarantool.org \
--cc=tarantool-patches@freelists.org \
--subject='Re: [tarantool-patches] [PATCH] sql: fix decoding data of type BOOLEAN' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox