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

"TypeError: 'dict' object does not support indexing" from CSV endpoint when SQL query contains "%" symbol #2710

Closed
joshuacano opened this issue May 3, 2017 · 1 comment · Fixed by #2711

Comments

@joshuacano
Copy link

joshuacano commented May 3, 2017

There is a somewhat similar issue that was closed earlier, but this is specifically with the csv endpoint for SQL Lab. I believe this is an issue with submitting a '%' to SqlAlchemy.

Superset version

0.17.6
deployed on ubuntu 16.04.2
Using the postgresql+psycopg2 connection string to a redshift db.

Expected results

I expect to get a .csv file back from the csv endpoint.

Actual results

Traceback (most recent call last):
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/superset/utils.py", line 573, in wraps
    return f(self, *args, **kwargs)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/superset/models/core.py", line 757, in wrapper
    value = f(*args, **kwargs)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/superset/views/core.py", line 2045, in csv
    df = query.database.get_df(sql, query.schema)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/superset/models/core.py", line 578, in get_df
    cur = eng.execute(sql, schema=schema)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 2064, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 939, in execute
    return self._execute_text(object, multiparams, params)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1097, in _execute_text
    statement, parameters
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1405, in _handle_dbapi_exception
    util.reraise(*exc_info)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
    raise value
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/home/ubuntu/virtualenvs/superset/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
    cursor.execute(statement, parameters)
TypeError: 'dict' object does not support indexing

Steps to reproduce

Here is the query submitted:

SELECT firstname, lastname FROM bf_raw.bf_user
where firstname like 'A%' limit 10

@joshuacano joshuacano changed the title TypeError: 'dict' object does not support indexing from CSV endpoint when SQL query contains "%" symbol 'TypeError: 'dict' object does not support indexing' from CSV endpoint when SQL query contains "%" symbol May 3, 2017
@joshuacano joshuacano changed the title 'TypeError: 'dict' object does not support indexing' from CSV endpoint when SQL query contains "%" symbol "TypeError: 'dict' object does not support indexing" from CSV endpoint when SQL query contains "%" symbol May 3, 2017
@joshuacano
Copy link
Author

joshuacano commented Jan 4, 2018

Looks like this fix has been reverted in the latest superset. >22.0. The logic that moved the query to sql alchemy is now back in pandas sans raw_connection which causes a problem with the '%' character again.
Should I open a new issue with a new stack trace? Or reopen the same issue?

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

Successfully merging a pull request may close this issue.

1 participant