aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrekby <rekby@ydb.tech>2023-09-14 12:37:33 +0300
committerrekby <rekby@ydb.tech>2023-09-14 13:05:13 +0300
commit38f58d76e110c3e442edbf50fd36a77e57d6a0f6 (patch)
tree0fe0fd266bf1e8e192d621049c0168f027debb09
parent1d2693bc60fd2d95c0d1f9333515bbfbba09ca10 (diff)
downloadydb-38f58d76e110c3e442edbf50fd36a77e57d6a0f6.tar.gz
copy flag fix from python3 version
-rw-r--r--ydb/public/sdk/python2/ydb/_tx_ctx_impl.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/ydb/public/sdk/python2/ydb/_tx_ctx_impl.py b/ydb/public/sdk/python2/ydb/_tx_ctx_impl.py
index 765cd82e72..0f12865920 100644
--- a/ydb/public/sdk/python2/ydb/_tx_ctx_impl.py
+++ b/ydb/public/sdk/python2/ydb/_tx_ctx_impl.py
@@ -116,12 +116,10 @@ def _construct_tx_settings(tx_state):
@wrap_tx_factory_handler
-def execute_request_factory(
- session_state, tx_state, query, parameters, commit_tx, settings
-):
+def execute_request_factory(session_state, tx_state, query, parameters, commit_tx, settings):
data_query, query_id = session_state.lookup(query)
parameters_types = {}
- keep_in_cache = False
+
if query_id is not None:
query_pb = _apis.ydb_table.Query(id=query_id)
parameters_types = data_query.parameters_types
@@ -131,22 +129,26 @@ def execute_request_factory(
yql_text = data_query.yql_text
parameters_types = data_query.parameters_types
elif isinstance(query, types.DataQuery):
- if settings is not None and hasattr(settings, "keep_in_cache"):
- keep_in_cache = settings.keep_in_cache
- else:
- # that is an instance of a data query and we don't know query id for id.
- # so let's prepare it to keep in cache
- keep_in_cache = True
yql_text = query.yql_text
parameters_types = query.parameters_types
else:
yql_text = query
query_pb = _apis.ydb_table.Query(yql_text=yql_text)
- request = _apis.ydb_table.ExecuteDataQueryRequest(
- parameters=convert.parameters_to_pb(parameters_types, parameters)
- )
+ request = _apis.ydb_table.ExecuteDataQueryRequest(parameters=convert.parameters_to_pb(parameters_types, parameters))
+
+ if query_id is not None:
+ # SDK not send query text and nothing save to cache
+ keep_in_cache = False
+ elif settings is not None and hasattr(settings, "keep_in_cache"):
+ keep_in_cache = settings.keep_in_cache
+ elif parameters:
+ keep_in_cache = True
+ else:
+ keep_in_cache = False
+
if keep_in_cache:
request.query_cache_policy.keep_in_cache = True
+
request.query.MergeFrom(query_pb)
tx_control = _apis.ydb_table.TransactionControl()
tx_control.commit_tx = commit_tx