I haven't seen the behavior as you described. Which driver are you using to connect, and to which database?
It would also be helpful to have the following:
- All of the connector files (you posted the dialect and connection dialog files, but the manifest, tdr and any script files would help as well)
- The log.txt and tabprotosrv logs (these live in "Documents\My Tableau Repository\Logs")
Just out of curiosity, does this query work despite the triple quotes, or does it throw a syntax error?
Let me know if you have any other questions.
This is for a proprietary db/driver
It gives a syntax error when parsing the query.
Schema """PUBLIC""" not found
SELECT "STAPLES"."Employee Name" AS "Employee Name"
FROM """PUBLIC"""."STAPLES" "STAPLES"
GROUP BY "STAPLES"."Employee Name" [90079-197]
If I use "custom sql" feature then it works.
Attached are all the connector files.
In the logs I am seeing:
<connection :locale='1024' caption='"PUBLIC"' class='federated' name= >
<named-connection name= >
<connection :protocol-customizations='' class='ignite_odbc' name= one-time-sql='' password='' port='1000' schema='"PUBLIC"' server='localhost' username='sa' />
Why would it initially assume that the schema has to be in quotes?
It does resolve schemas correctly and show them in the connection dialog, but when I actually query the table this error comes up.
This does not happen when I connect to my database via regular odbc. For regular ODBC, JDBC and custom JDBC drivers SCHEMA is correctly formatted when a query is submitted.
Only the custom odbc driver has this issue.
Is there a way to customize how the sdk handles schema resolution/formatting when creating a query?
Is it dependent on some ODBC driver config?
If you provide me your email, I would be glad to share more log files and other details.
The prepare query for metadata enumeration may be the bit that's failing, and if that's the case, the SQLColumns api might work betterFor ‘odbc’ this is the order the various metadata query methods are used:
- SELECT * (prepared query)
- SELECT * WHERE 1=0
- SELECT * TOP/LIMIT 0
- SELECT * (full query)
You can surpress the first 3 cases by adding the following capabilities to the connection customizations section of your manifest:
<customization name="CAP_ODBC_METADATA_SUPPRESS_PREPARED_QUERY" value="yes"/>
<customization name="CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY" value="yes"/>
If that doesn't work, it would be useful to see the full desktop logs. You can send them to me at email@example.com.