Skip to content

Enable native SEA metadata defaults behind server flag - #1672

Merged
vuanhphung merged 3 commits into
mainfrom
vu-phung_data/enable-native-metadata-via-sea
Sep 4, 2026
Merged

Enable native SEA metadata defaults behind server flag#1672
vuanhphung merged 3 commits into
mainfrom
vu-phung_data/enable-native-metadata-via-sea

Conversation

@vuanhphung

@vuanhphung vuanhphung commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Description

Sets UseBoundedSeaApi and EnableThriftNativeMetadata defaults to 1. When unset, both features require the existing server-side databricks.partnerplatform.clientConfigsFeatureFlags.enableSqlExecForJdbc flag on SQL warehouses; explicit JDBC settings continue to take precedence.

Testing

  • mvn test -pl jdbc-core -Dtest=DatabricksConnectionContextTest#testNativeMetadataViaSea* (4 passed)
  • mvn spotless:check
  • Full DatabricksConnectionContextTest run: 157 passed; one existing Mockito test could not initialize Byte Buddy attachment on the local JDK.

Telemetry Errors

  • Not applicable — this PR does not add or change a telemetry-visible error.
  • Applicable — the error uses DatabricksDriverErrorCode where appropriate, and any new code is uniquely numbered and tested.
  • Applicable — its driver/server/user classification is linked, or maintainer help is requested because the author cannot access the classification.

Additional Notes to the Reviewer

The existing SQL Exec server flag controls the rollout only when the JDBC properties are not explicitly configured.

Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Review bot failed — see workflow logs.

Reason: model did not call finalize_review and the final text was not parseable JSON: Empty response

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Review bot failed — see workflow logs.

Reason: model did not call finalize_review and the final text was not parseable JSON: Empty response

Comment on lines +52 to +54
private static final String NATIVE_METADATA_VIA_SEA_FLAG_NAME =
"databricks.partnerplatform.clientConfigsFeatureFlags.enableNativeMetadataViaSEA";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Review bot failed — see workflow logs.

Reason: model did not call finalize_review and the final text was not parseable JSON: Empty response

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"),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this is set to 1 by default, won't this make server side flag redundant?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rahuls-db The logic of resolveFeatureFlag is as follow:

  1. If caller explicitly pass this connection param in, use it.
  2. Otherwise, if the default value is 1, use feature flag value
  3. Else, return false

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Review bot failed — see workflow logs.

Reason: model did not call finalize_review and the final text was not parseable JSON: Empty response

Comment thread NEXT_CHANGELOG.md
- 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.

@rahuls-db rahuls-db Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we usually include what the new parameter does and how to opt out if if user prefers to not have this change.

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No issues identified by the review bot.

@vuanhphung
vuanhphung added this pull request to the merge queue Sep 4, 2026
Merged via the queue into main with commit cce296a Sep 4, 2026
41 of 43 checks passed
@vuanhphung
vuanhphung deleted the vu-phung_data/enable-native-metadata-via-sea branch September 4, 2026 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants