diff options
author | rekby <rekby@ydb.tech> | 2023-09-14 12:37:33 +0300 |
---|---|---|
committer | rekby <rekby@ydb.tech> | 2023-09-14 13:05:13 +0300 |
commit | 38f58d76e110c3e442edbf50fd36a77e57d6a0f6 (patch) | |
tree | 0fe0fd266bf1e8e192d621049c0168f027debb09 | |
parent | 1d2693bc60fd2d95c0d1f9333515bbfbba09ca10 (diff) | |
download | ydb-38f58d76e110c3e442edbf50fd36a77e57d6a0f6.tar.gz |
copy flag fix from python3 version
-rw-r--r-- | ydb/public/sdk/python2/ydb/_tx_ctx_impl.py | 28 |
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 |