Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG: Failure to convert SQL query #41

Open
ShubhamKaudewar opened this issue Jun 22, 2021 · 0 comments
Open

BUG: Failure to convert SQL query #41

ShubhamKaudewar opened this issue Jun 22, 2021 · 0 comments
Assignees
Labels

Comments

@ShubhamKaudewar
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants