Skip to content

BUG: Failure to convert SQL query #41

@ShubhamKaudewar

Description

@ShubhamKaudewar

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

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions