Skip to content

Commit d2cacb5

Browse files
committed
move 'in' logic outside of Operation class
1 parent 844bf34 commit d2cacb5

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

mindsdb_sql_parser/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
__title__ = 'mindsdb_sql_parser'
22
__package_name__ = 'mindsdb_sql_parser'
3-
__version__ = '0.11.0'
3+
__version__ = '0.11.1'
44
__description__ = "Mindsdb SQL parser"
55
__email__ = "[email protected]"
66
__author__ = 'MindsDB Inc'

mindsdb_sql_parser/ast/select/operation.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
from mindsdb_sql_parser.ast.base import ASTNode
22
from mindsdb_sql_parser.exceptions import ParsingException
33
from mindsdb_sql_parser.utils import indent
4-
from mindsdb_sql_parser.ast.select.tuple import Tuple
4+
55

66
class Operation(ASTNode):
77
def __init__(self, op, args, *args_, **kwargs):
88
super().__init__(*args_, **kwargs)
99

1010
self.op = ' '.join(op.lower().split())
11-
self.args = []
12-
for item in args:
13-
if self.op in ("in", "not in") and isinstance(item, ASTNode) and item.parentheses:
14-
item.parentheses = False
15-
item = Tuple([item])
16-
self.args.append(item)
11+
self.args = list(args)
12+
1713
self.assert_arguments()
1814

1915
def assert_arguments(self):

mindsdb_sql_parser/parser.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,12 @@ def expr(self, p):
16731673
arg1 = Last()
16741674
else:
16751675
arg1 = p[2]
1676+
1677+
op = p[1]
1678+
if op.lower() in ("in", "not in") and isinstance(arg1, Constant) and arg1.parentheses:
1679+
arg1.parentheses = False
1680+
arg1 = Tuple([arg1])
1681+
16761682
return BinaryOperation(op=p[1], args=(p[0], arg1))
16771683

16781684
@_('MINUS expr %prec UMINUS',

0 commit comments

Comments
 (0)