-
Notifications
You must be signed in to change notification settings - Fork 58
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Feature Request
Describe the Feature Request
The current implementation of stream operations in the YDB Python SDK (specifically for session.transaction().execute()
) allows users to execute queries without properly consuming the response stream. This can lead to silent failures where:
- Queries (especially UPSERT operations) appear to execute successfully (no exceptions raised)
- Data is not actually persisted in the database
- No warnings or errors are logged to indicate incomplete operation
- The root cause is difficult to diagnose (users must be aware of internal stream mechanics)
Describe Preferred Solution
Implement runtime warnings when:
- A stream is not fully consumed and may have errors.
Describe Alternatives
Improve documentation to emphasize stream consumption requirements
Related Code
with ydb.QuerySessionPool(driver) as pool:
with pool.checkout() as session:
session.transaction(tx_mode=ydb.QuerySerializableReadWrite()).execute(
query=query_to_upsert,
parameters={
"$data": ydb.TypedValue(data_to_upsert, ydb.ListType(TestSerialStruct))
},
commit_tx=True,
)
Additional Context
The API should prevent "successful no-ops" through:
If the feature request is approved, would you be willing to submit a PR?
No
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request