Query execution error - no applicable constructor method found for actual parameters

I’m running into an issue with executing queries over ODBC with Python 3.7. Everything seems to be working fine in the installation - I can query normally via the web UI and - surprisingly - Tableau works just fine using the ODBC connector. Is there something incorrect I’m doing in Python?

host = "127.0.0.1"
port = 31010
uid = "jnettles"
pwd = "xxxx"
driver = "Dremio Connector"
# also tried below as driver option - same result
# driver = "/Library/Dremio/ODBC/lib/libdrillodbc_sbu.dylib"

cnxn = pyodbc.connect("Driver={};ConnectionType=Direct;HOST={};PORT={};AuthenticationType=Plain;UID={};PWD={}".format(driver, host,port,uid,pwd),autocommit=True)

sql = '''SELECT * FROM "@jnettles"."test-repo.people_files" LIMIT 10'''

# This exact same SQL works just fine in Tableau using ODBC

dataframe = pandas.read_sql(sql, cnxn)

This the error I’m getting—

---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
/usr/local/lib/python3.7/site-packages/pandas/io/sql.py in execute(self, *args, **kwargs)
   1430             else:
-> 1431                 cur.execute(*args)
   1432             return cur

Error: ('HY000', '[HY000] [Dremio][Connector] (1040) Dremio failed to execute the query: SELECT * FROM "@jnettles"."test-repo.people_files" LIMIT 10\n[30038]Query execution error. Details:[ \nSYSTEM ERROR: CompileException: Line 157, Column 30: No applicable constructor/method found for actual parameters "org.apache.arrow.vector.holders.UnionHolder"; candidates are: "public void com.dremio.exec.vector.complex.fn.JsonWriter.write(org.apache.arrow.vector.comple...[see log] (1040) (SQLExecDirectW)')

I’m running Dremio in Docker on macOS (3.2.0-201905102005330382-0598733), and installed the ODBC driver per instructions on the site for mac.

(I just tested and same behavior in Python 2.7…)

Figured it out - if I remove the quotes from around table name then it works properly.

This doesn’t work.

sql = '''SELECT * FROM "@jnettles"."test-repo.people_files" LIMIT 10'''

But this does - (notice no quotes around test-repo.people_files)

sql = '''SELECT * FROM "@jnettles".test-repo.people_files LIMIT 10'''

I suppose this was my fault, but it should probably fail more gracefully than this? My three-day usage feedback on Dremio (take it with the grain of salt it deserves) is that the SQL is finicky. Didn’t quote correctly? Fail. Added quotes in the wrong spot w/ ODBC? Stack trace prints out. Trying to join across data sources and quotes or table names are slightly off? Fail with mysterious error messages.