Enable native SEA metadata defaults behind server flag - #1672
Conversation
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>
| private static final String NATIVE_METADATA_VIA_SEA_FLAG_NAME = | ||
| "databricks.partnerplatform.clientConfigsFeatureFlags.enableNativeMetadataViaSEA"; | ||
|
|
There was a problem hiding this comment.
discussed offline. This flag is not needed. We can piggy back on existing flag SQL_EXEC_FLAG_NAME in driver. Connector service can map its value to different set of workspaces depending on driver version
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>
| "EnableThriftNativeMetadata", | ||
| "Request Thrift-native SEA results for catalogs, schemas, tables, columns, functions, primary keys, imported keys, and cross references", | ||
| "0"), | ||
| "1"), |
There was a problem hiding this comment.
is this is set to 1 by default, won't this make server side flag redundant?
There was a problem hiding this comment.
@rahuls-db The logic of resolveFeatureFlag is as follow:
- If caller explicitly pass this connection param in, use it.
- Otherwise, if the default value is 1, use feature flag value
- Else, return false
| - Added `EnableThriftNativeMetadata` to request and consume supported Thrift-native SEA metadata results. | ||
|
|
||
| ### Updated | ||
| - `UseBoundedSeaApi` and `EnableThriftNativeMetadata` now default to `1`; when unset, activation is controlled by the server-side `enableSqlExecForJdbc` rollout flag. |
There was a problem hiding this comment.
This is public facing release note. Do we need to talk about enableSqlExecForJdbc or should we remove it or leave it as - UseBoundedSeaApi and EnableThriftNativeMetadata now default to 1.
Also, EnableThriftNativeMetadata is a new param introduced for the first time in this release.
@gopalldb any guidance?
There was a problem hiding this comment.
we usually include what the new parameter does and how to opt out if if user prefers to not have this change.
Description
Sets
UseBoundedSeaApiandEnableThriftNativeMetadatadefaults to1. When unset, both features require the existing server-sidedatabricks.partnerplatform.clientConfigsFeatureFlags.enableSqlExecForJdbcflag on SQL warehouses; explicit JDBC settings continue to take precedence.Testing
mvn test -pl jdbc-core -Dtest=DatabricksConnectionContextTest#testNativeMetadataViaSea*(4 passed)mvn spotless:checkDatabricksConnectionContextTestrun: 157 passed; one existing Mockito test could not initialize Byte Buddy attachment on the local JDK.Telemetry Errors
DatabricksDriverErrorCodewhere appropriate, and any new code is uniquely numbered and tested.Additional Notes to the Reviewer
The existing SQL Exec server flag controls the rollout only when the JDBC properties are not explicitly configured.