aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/sqlvm/parser/internal/grammar.peg
diff options
context:
space:
mode:
authorTing-Wei Lan <tingwei.lan@cobinhood.com>2019-03-27 17:09:24 +0800
committerJhih-Ming Huang <jm.huang@cobinhood.com>2019-05-06 10:44:04 +0800
commit8c4e09207c74294364eefa14159338908bc65f67 (patch)
tree80b0c08f934b8d0d07aff8d4f42c34c5a0098dbb /core/vm/sqlvm/parser/internal/grammar.peg
parent599f65cc61f985c71d4fa1227fba55287bcb1d98 (diff)
downloaddexon-8c4e09207c74294364eefa14159338908bc65f67.tar
dexon-8c4e09207c74294364eefa14159338908bc65f67.tar.gz
dexon-8c4e09207c74294364eefa14159338908bc65f67.tar.bz2
dexon-8c4e09207c74294364eefa14159338908bc65f67.tar.lz
dexon-8c4e09207c74294364eefa14159338908bc65f67.tar.xz
dexon-8c4e09207c74294364eefa14159338908bc65f67.tar.zst
dexon-8c4e09207c74294364eefa14159338908bc65f67.zip
core: vm: sqlvm: support SQL three-valued logic on AST
We make the zero value invalid by design. Users must be aware of the difference between SQL boolean and Go boolean and initialize it explicitly.
Diffstat (limited to 'core/vm/sqlvm/parser/internal/grammar.peg')
-rw-r--r--core/vm/sqlvm/parser/internal/grammar.peg6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/vm/sqlvm/parser/internal/grammar.peg b/core/vm/sqlvm/parser/internal/grammar.peg
index 7429f65a4..a0cb9ec63 100644
--- a/core/vm/sqlvm/parser/internal/grammar.peg
+++ b/core/vm/sqlvm/parser/internal/grammar.peg
@@ -912,7 +912,11 @@ BoolLiteral
node := &ast.BoolValueNode{}
node.SetPosition(uint32(c.pos.offset))
node.SetLength(uint32(len(c.text)))
- node.V = bytes.EqualFold(b.([]byte), []byte("TRUE"))
+ if bytes.EqualFold(b.([]byte), []byte("TRUE")) {
+ node.V = ast.BoolValueTrue
+ } else {
+ node.V = ast.BoolValueFalse
+ }
return node, nil
}