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