Open YuriyGavrilov opened 1 year ago
I can't reproduce this locally @YuriyGavrilov . However I do see a multi-threading bug in the code that populates getSqlInfo() properties: https://github.com/apache/arrow/blob/563078fb70f7d23e716a2c1c79e96f7409c02f3f/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowDatabaseMetadata.java#L732
The checking of if this cache is populated isn't thread-safe. If one thread starts populating the cache, and another thread tries to access a property, the second thread will see the cache is non-empty and think all properties have been cached rather than waiting for the rest of the cache to fill.
@YuriyGavrilov , the thread-safety issue mentioned above is now fixed. It'd be great if you could retry the driver in Tableau with this fix in place (and close this issue if it is working consistently).
@jduo wow 🤩 thank you for such quick response. I will try to make tests also quickly but just get expired trial licenses. So maybe Monday or Tuesday will find a new tableau license and make tests.
Describe the enhancement requested
There is an error with jdbc arrow driver in Tableau. Hope somebody find solution to fix it. or maybe addd necessary dialect to arrow
There are also some warning messeges at
cfjd.io.netty.util.internal.ReflectionUtil
Component(s)
Java
To reproduce this error try to start arrow server with:
Add jdbc driver to tableau driver from
https://repo.maven.apache.org/maven2/org/apache/arrow/arrow-jdbc/13.0.0/
to local folder like/Users/{user}/Library/Tableau/Drivers/flight-sql-jdbc-driver-13.0.0.jar
Try to connect with this URL
jdbc:arrow-flight-sql://localhost:31337?useEncryption=true&user=flight_username&password=flight_password&disableCertificateVerification=true
This works fine in dbeaver ...