Catch UnsupportedOperationException alongside SQLFeatureNotSupportedException
and AbstractMethodError in DbxJdbcPlugin. Hive-based drivers (e.g., Transwarp
Inceptor) throw UnsupportedOperationException for unsupported optional JDBC
methods instead of the standard SQLFeatureNotSupportedException. Since it is
a RuntimeException, it previously propagated uncaught and crashed the connection.
Fixes#912
Many JDBC drivers depend on SLF4J and commons-lang3 at runtime but
don't shade them. Bundling these in the plugin JAR avoids
NoClassDefFoundError when users import driver JARs.
- table_structure_sql: merge separate MODIFY statements for type, nullability,
and default into a single MODIFY statement. This fixes Dameng's requirement
that MODIFY includes the full column definition.
- DbxJdbcPlugin: move DATA_DEFAULT to first SELECT position and read it first
in the ResultSet loop (LONG columns must be read before other columns).
Dameng JDBC driver does not populate the REMARKS field from
DatabaseMetaData.getColumns(). Instead, map jdbc:dm: URLs to ORACLE_QUIRKS
so column comments are retrieved via all_col_comments system view, matching
how Oracle connections are handled.
Fixes#504
Replace DatabaseMetaData API calls with direct queries against Oracle
data dictionary views (ALL_TABLES, ALL_TAB_COLUMNS, ALL_CONSTRAINTS etc.)
for connections using jdbc:oracle: URLs. Also sets Oracle-specific
connection properties (remarksReporting, restrictGetTables, etc.).
Add list_objects support for agent-driven databases (Dameng, Oracle, etc.)
and ExternalDriver plugin connections. SQL Server dbo schema now uses
listObjects to display grouped object nodes including routines.
- Add list_objects RPC to JDBC agent plugin
- Add extract_agent and ExternalDriver branches in list_objects_core
- Add get_object_source support for agent connections
- Click function/procedure nodes to view source via object browser
- Fix duplicate tree node IDs when same name exists as view and function