Skip to content

Commit 561ea67

Browse files
committed
variable can be value in json
1 parent 1744d4f commit 561ea67

3 files changed

Lines changed: 7 additions & 4 deletions

File tree

mindsdb_sql_parser/ast/variable.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ def to_tree(self, *args, level=0, **kwargs):
1515
def get_string(self, *args, **kwargs):
1616
return ('@@' if self.is_system_var else '@') + f'{str(self.value)}'
1717

18+
def __repr__(self):
19+
return self.get_string()

mindsdb_sql_parser/parser.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1716,7 +1716,7 @@ def json_element_list(self, p):
17161716

17171717
@_('string COLON json_value')
17181718
def json_element(self, p):
1719-
return {p.string:p.json_value}
1719+
return {p.string: p.json_value}
17201720

17211721
# json_array
17221722

@@ -1736,6 +1736,7 @@ def json_array_list(self, p):
17361736
@_('float',
17371737
'string',
17381738
'integer',
1739+
'variable',
17391740
'NULL',
17401741
'TRUE',
17411742
'FALSE',

tests/test_mindsdb/test_knowledgebase.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from mindsdb_sql_parser import parse_sql
1+
from mindsdb_sql_parser import parse_sql, Variable
22
from mindsdb_sql_parser.ast.mindsdb.knowledge_base import (
33
CreateKnowledgeBase,
44
DropKnowledgeBase,
@@ -174,7 +174,7 @@ def test_create_knowledge_base(self):
174174
MODEL = mindsdb.my_embedding_model,
175175
STORAGE = my_vector_database.some_table,
176176
some_param = 'some value',
177-
other_param = 'other value'
177+
other_param = {'key': @var1}
178178
"""
179179
ast = parse_sql(sql)
180180
expected_ast = CreateKnowledgeBase(
@@ -183,7 +183,7 @@ def test_create_knowledge_base(self):
183183
model=Identifier(parts=["mindsdb", "my_embedding_model"]),
184184
storage=Identifier(parts=["my_vector_database", "some_table"]),
185185
from_select=None,
186-
params={"some_param": "some value", "other_param": "other value"},
186+
params={"some_param": "some value", "other_param": {'key': Variable('var1')}},
187187
)
188188
assert ast == expected_ast
189189

0 commit comments

Comments
 (0)