… compliance (#757)
* Add _retry_server_directed_only mode for Retry-After header compliance
When enabled, the connector only retries on 429/503 if the server includes
a Retry-After header in the response. This prevents duplicate side effects
for non-idempotent ExecuteStatement operations where the server has not
explicitly signaled that retry is safe.
The new opt-in parameter `_retry_server_directed_only` threads through
ClientContext, all three DatabricksRetryPolicy construction sites (Thrift,
SEA, UnifiedHttpClient), and the retry policy's should_retry/is_retry
methods. Default behavior (retry without requiring the header) is unchanged.
Signed-off-by: Shubham Dhal <shubham.dhal@databricks.com>
* Remove unnecessary _retry_server_directed_only instance variables
Inline kwargs.get() at the single point of use in ThriftDatabricksClient
and SeaHttpClient instead of storing as dead instance state.
Signed-off-by: Shubham Dhal <shubham.dhal@databricks.com>
* Address PR feedback: rename and clean up retry-after parameter
- Rename server_directed_only to respect_server_retry_after_header
throughout for clarity
- Store _respect_server_retry_after_header as instance variable in
Thrift/SEA backends to match existing kwargs extraction pattern
- Replace duplicate test fixture with _make_retry_policy(**overrides)
helper for flexible policy construction in tests
Signed-off-by: Shubham Dhal <shubham.dhal@databricks.com>
* Fix Black formatting for retry.py and utils.py
Signed-off-by: Shubham Dhal <shubham.dhal@databricks.com>
* Apply CI workflow and test fixes from PR #745
- Update actions/checkout@v2 → v4 and actions/setup-python@v2 → v5 in run-unit-tests-with-arrow job
- Pin Poetry version to 2.2.1 across all workflow files
- Reduce long-running query test min duration from 3 to 2 minutes
Co-authored-by: Isaac
* Removed unnecessary tests
* Fixed something
* fixed something
---------
Signed-off-by: Shubham Dhal <shubham.dhal@databricks.com>
Co-authored-by: Jothi Prakash <jothi.prakash@databricks.com>