You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 58dd7b3
Browse filesBrowse the repository at this point in the historyBrowse files
Keep the connection's non-throttling retries on the column fallback path
Derive the single-attempt policy from the connection's RetryConfig by removing only the throttling codes, so other configured codes are still retried before a metadata request fails; the async adapter exposes retry_config for that. Sort information_schema rows by ordinal_position on the client and treat non-string comments as missing, covering UNLOAD-backed and pandas cursors.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/sqlalchemy.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,7 +100,8 @@ A later listing preserves metadata already fetched for a table.
100
100
Table-metadata lookups propagate throttling and permission errors rather than reporting missing tables.
101
101
`has_table()` propagates permission failures, including access denied by Lake Formation, instead of returning or caching `False`.
102
102
For failed metadata requests, only recognized `EntityNotFoundException` responses establish absence; unrecognized errors are propagated rather than guessed to mean a missing table.
103
-
Column reflection and `has_table()` make one table-metadata request; when Athena throttles it, they read `information_schema.columns` instead, executed without query result reuse, and log a warning.
103
+
Column reflection and `has_table()` do not retry a throttled table-metadata request; when Athena reports throttling, they read `information_schema.columns` instead, executed without query result reuse, and log a warning.
104
+
Other error codes listed in `RetryConfig.exceptions` are still retried with the connection's policy on that path; a `retry_config` in `cursor_kwargs` takes precedence.
104
105
Columns reflected this way carry the type names Athena reports there, such as `varchar` for `string`, and partition columns are marked from its `extra_info` column.
105
106
This fallback does not populate the table-metadata cache, and table comments and table options still come from the metadata API with the configured retries, so they propagate the throttling error.
106
107
Athena applies its metadata API rate limits per account, and they are not listed in Service Quotas.
0 commit comments