Add query_tags parameter support for execute methods#736
Merged
sreekanth-db merged 6 commits intodatabricks:mainfrom Mar 2, 2026
Merged
Add query_tags parameter support for execute methods#736sreekanth-db merged 6 commits intodatabricks:mainfrom
sreekanth-db merged 6 commits intodatabricks:mainfrom
Conversation
sreekanth-db
approved these changes
Feb 10, 2026
Contributor
sreekanth-db
left a comment
There was a problem hiding this comment.
LGTM, requesting @jprakash-db and @gopalldb to take a look
Contributor
sreekanth-db
left a comment
There was a problem hiding this comment.
Few PR checks are failing, please take a look at them @jiabin-hu
gopalldb
reviewed
Feb 11, 2026
gopalldb
approved these changes
Feb 11, 2026
8e57d36 to
2b052e8
Compare
…r on execute* methods Signed-off-by: Jiabin Hu <jiabin.hu@databricks.com>
- Added query_tags parameter to executemany() method - Query tags are applied to all queries in the batch - Updated example to demonstrate executemany usage with query_tags - All tests pass (122/122 client tests) Signed-off-by: Jiabin Hu <jiabin.hu@databricks.com>
Signed-off-by: Jiabin Hu <jiabin.hu@databricks.com>
Signed-off-by: Jiabin Hu <jiabin.hu@databricks.com>
Signed-off-by: Jiabin Hu <jiabin.hu@databricks.com>
Signed-off-by: Jiabin Hu <jiabin.hu@databricks.com>
2b052e8 to
23b6591
Compare
Contributor
Author
|
jenkins merge |
4 tasks
vikrantpuppala
added a commit
to databricks/databricks-sql-go
that referenced
this pull request
Apr 6, 2026
## Summary - Adds per-statement query tag support via `driverctx.NewContextWithQueryTags`, allowing users to attach query tags to individual SQL statements through context - Tags are serialized into `TExecuteStatementReq.ConfOverlay["query_tags"]`, consistent with the Python ([#736](databricks/databricks-sql-python#736)) and NodeJS ([#339](databricks/databricks-sql-nodejs#339)) connector implementations - Previously only session-level query tags were supported (set once via `WithSessionParams` at connection time) ## Usage ```go ctx := driverctx.NewContextWithQueryTags(context.Background(), map[string]string{ "team": "data-eng", "app": "etl-pipeline", }) rows, err := db.QueryContext(ctx, "SELECT * FROM table") ``` ## Changes | File | Description | |------|-------------| | `driverctx/ctx.go` | `NewContextWithQueryTags`, `QueryTagsFromContext`, propagation in `NewContextFromBackground` | | `query_tags.go` *(new)* | `SerializeQueryTags` — map to wire format with escaping | | `connection.go` | Read tags from context → serialize → set `ConfOverlay["query_tags"]` | | `driverctx/ctx_test.go` | 5 tests for context helpers | | `query_tags_test.go` *(new)* | 13 tests for serialization (escaping, edge cases) | | `connection_test.go` | 6 integration tests verifying ConfOverlay behavior | | `examples/query_tags/main.go` | Updated with session + statement-level examples | ## Test plan - [x] Unit tests for `SerializeQueryTags` covering nil, empty, single/multi tags, escaping of `\`, `:`, `,` in values and keys - [x] Unit tests for `NewContextWithQueryTags` / `QueryTagsFromContext` including nil context, missing key, timeout preservation, background propagation - [x] Integration tests verifying `ConfOverlay["query_tags"]` is correctly set (or absent) in captured `TExecuteStatementReq` - [ ] Verify existing tests still pass (CI) This pull request was AI-assisted by Isaac. --------- Signed-off-by: Jooho Yeo <jooho.yeo@databricks.com> Co-authored-by: Jooho Yeo <jooho.yeo@databricks.com> Co-authored-by: Vikrant Puppala <vikrant.puppala@databricks.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds per-query query tags functionality that allows users to pass tags as a dictionary to the
execute.*()methods.Changes
serialize_query_tags()utility function inutils.pyto convert dict to the required format"key1:value1,key2:value2"query_tagsparameter toCursor.execute()andCursor.execute_async()methodsDatabricksClientinterface andThriftDatabricksClientimplementationconfOverlaywith key"query_tags"Key Features
"key1:value1,key2,key3:value3"):,,,\in values with leading backslashUsage Example
Testing
The branch is ready and all tests are passing! 🎉
What type of PR is this?
Description
How is this tested?
Related Tickets & Documents