-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
Description
Description
I tried using sqlitis to convert a SQL query and received an error.
Failing command (required)
[BUG] Failed to convert CONCAT(distributorToUserFund.fundName, '__' ,distributorToUserFund.adviserUsername) to model
Debug Logs (required)
Instructions: Re-run the sqlitis command with the --debug flag. For example, sqlitis --debug <YOUR_SQL_QUERY>.
DEBUG:sqlitis.cli:Version info
DEBUG:sqlitis.cli: sqlitis: 0.0.5
DEBUG:sqlitis.cli: python: 3.9.4
DEBUG:sqlitis.cli: platform: Windows-10-10.0.19041-SP0
DEBUG:sqlitis.debug:to_sqla "SELECT SUM(IF(userFundTransaction.fundAction = 'EQUITYSUBSCRIPTION', 1, 0)) AS totalBoxes,SUM(IF(userFundTransaction.fundAction = 'UNSUBSCRIPTION', 1, 0)) AS exitedBoxes,SUM(IF(userFundTransaction.fundAction = 'PARTIALWITHDRAWAL', 1, 0)) AS partiallyExitedBoxes,COUNT(userFundTransaction.fundAction) AS total_actions FROM distributorToUserFund JOIN userFundTransaction ON userFundTransaction.fundNameWithAdviserUsername = CONCAT(distributorToUserFund.fundName, '__' ,distributorToUserFund.adviserUsername) AND userFundTransaction.investingMode = 'REAL' WHERE distributorToUserFund.username='WD112';"
DEBUG:sqlitis.debug:tokens_to_sqla [<11 tokens>]
DEBUG:sqlitis.debug: <DML 'SELECT' at 0x1BA3B7700A0> <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug: <IdentifierList 'SUM(IF...' at 0x1BA3B787740> <class 'sqlparse.sql.IdentifierList'>
DEBUG:sqlitis.debug: <Keyword 'FROM' at 0x1BA3B77E340> <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug: <Identifier 'distri...' at 0x1BA3B784F20> <class 'sqlparse.sql.Identifier'>
DEBUG:sqlitis.debug: <Keyword 'JOIN' at 0x1BA3B77E4C0> <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug: <Identifier 'userFu...' at 0x1BA3B784F90> <class 'sqlparse.sql.Identifier'>
DEBUG:sqlitis.debug: <Keyword 'ON' at 0x1BA3B77E640> <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug: <Comparison 'userFu...' at 0x1BA3B787270> <class 'sqlparse.sql.Comparison'>
DEBUG:sqlitis.debug: <Keyword 'AND' at 0x1BA3B77EEE0> <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug: <Comparison 'userFu...' at 0x1BA3B787350> <class 'sqlparse.sql.Comparison'>
DEBUG:sqlitis.debug: <Where 'WHERE ...' at 0x1BA3B784580> <class 'sqlparse.sql.Where'>
DEBUG:sqlitis.convert:0 <class 'sqlitis.models.Select'>
DEBUG:sqlitis.convert:1 <class 'sqlitis.models.Select'>
DEBUG:sqlitis.convert:2 <class 'sqlitis.models.SelectFrom'>
DEBUG:sqlitis.convert:3 <class 'sqlitis.models.SelectFrom'>
DEBUG:sqlitis.convert:5 <class 'sqlitis.models.SelectFrom'>
DEBUG:sqlitis.debug:comparison_to_sqla [<4 tokens>]
DEBUG:sqlitis.debug: <Comparison 'userFu...' at 0x1BA3B787270> <class 'sqlparse.sql.Comparison'>
DEBUG:sqlitis.debug: <Keyword 'AND' at 0x1BA3B77EEE0> <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug: <Comparison 'userFu...' at 0x1BA3B787350> <class 'sqlparse.sql.Comparison'>
DEBUG:sqlitis.debug: <Where 'WHERE ...' at 0x1BA3B784580> <class 'sqlparse.sql.Where'>
DEBUG:sqlitis.debug:build_comparison <Comparison 'userFu...' at 0x1BA3B787270>
DEBUG:sqlitis.convert: userFundTransaction.fundNameWithAdviserUsername <class 'sqlparse.sql.Identifier'>
DEBUG:sqlitis.debug:sql_literal_to_model <Identifier 'userFu...' at 0x1BA3B7847B0> <sqlitis.models.Comparison object at 0x000001BA3B78C3D0>
DEBUG:sqlitis.debug:sql_literal_to_model returned <sqlitis.models.Comparison object at 0x000001BA3B78C3D0>
DEBUG:sqlitis.convert: = <class 'sqlparse.sql.Token'>
DEBUG:sqlitis.debug:sql_literal_to_model <Comparison '=' at 0x1BA3B77E880> <sqlitis.models.Comparison object at 0x000001BA3B78C3D0>
DEBUG:sqlitis.debug:sql_literal_to_model returned <sqlitis.models.Comparison object at 0x000001BA3B78C3D0>
DEBUG:sqlitis.convert: CONCAT(distributorToUserFund.fundName, '__' ,distributorToUserFund.adviserUsername) <class 'sqlparse.sql.Function'>
DEBUG:sqlitis.debug:sql_literal_to_model <Function 'CONCAT...' at 0x1BA3B784510> <sqlitis.models.Comparison object at 0x000001BA3B78C3D0>
ERROR: Failed to convert SQL: SELECT SUM(IF(userFundTransaction.fundAction = 'EQUITYSUBSCRIPTION', 1, 0)) AS totalBoxes,SUM(IF(userFundTransaction.fundAction = 'UNSUBSCRIPTION', 1, 0)) AS exitedBoxes,SUM(IF(userFundTransaction.fundAction = 'PARTIALWITHDRAWAL', 1, 0)) AS partiallyExitedBoxes,COUNT(userFundTransaction.fundAction) AS total_actions FROM distributorToUserFund JOIN userFundTransaction ON userFundTransaction.fundNameWithAdviserUsername = CONCAT(distributorToUserFund.fundName, '__' ,distributorToUserFund.adviserUsername) AND userFundTransaction.investingMode = 'REAL' WHERE distributorToUserFund.username='WD112';
[BUG] Failed to convert CONCAT(distributorToUserFund.fundName, '__' ,distributorToUserFund.adviserUsername) to model
Traceback (most recent call last):
File "c:\users\kaude\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\kaude\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\kaude\AppData\Local\Programs\Python\Python39\Scripts\sqlitis.exe\__main__.py", line 7, in <module>
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\cli.py", line 45, in main
result = to_sqla(sql_string)
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\debug.py", line 51, in wrapped
result = f(*args, **kwargs)
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\convert.py", line 25, in to_sqla
return tokens_to_sqla(tokens).render()
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\debug.py", line 51, in wrapped
result = f(*args, **kwargs)
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\convert.py", line 79, in tokens_to_sqla
clause, length = comparison_to_sqla(tokens[i + 1 :])
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\debug.py", line 51, in wrapped
result = f(*args, **kwargs)
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\convert.py", line 194, in comparison_to_sqla
m = build_comparison(tok)
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\debug.py", line 51, in wrapped
result = f(*args, **kwargs)
File "c:\users\kaude\appdata\local\programs\python\python39\lib\site-packages\sqlitis\convert.py", line 268, in build_comparison
raise Exception("[BUG] Failed to convert %s to model" % tok)
Exception: [BUG] Failed to convert CONCAT(distributorToUserFund.fundName, '__' ,distributorToUserFund.adviserUsername) to model
Additional details (optional)
Include any additional details about your issue here