@@ -31,8 +31,9 @@ class RemoteTarantoolServer():
3131 Class to work with remote Tarantool server.
3232 """
3333
34- def __init__ (self ):
34+ def __init__ (self , sql_seq_scan_default = None ):
3535 self .host = os .environ ['REMOTE_TARANTOOL_HOST' ]
36+ self .sql_seq_scan_default = sql_seq_scan_default
3637
3738 self .args = {}
3839 self .args ['primary' ] = BINARY_PORT
@@ -95,13 +96,33 @@ def release_lock(self):
9596 raise RuntimeError (f'can not release "{ self .whoami } " lock: { str (err )} ' )
9697 self .lock_is_acquired = False
9798
99+ def set_sql_seq_scan_default (self , value ):
100+ """
101+ Set compat.sql_seq_scan_default on the remote server. The
102+ option affects sessions created after the call, so it must be
103+ set before the test connects to the server.
104+ """
105+
106+ res = self .admin .execute (f"""
107+ local is_compat, compat = pcall(require, 'compat')
108+ if is_compat then
109+ compat.sql_seq_scan_default = '{ value } '
110+ end
111+ return true
112+ """ )
113+ if res != [True ]:
114+ raise RuntimeError (
115+ f'can not set compat.sql_seq_scan_default to "{ value } ": { str (res )} ' )
116+
98117 def start (self ):
99118 """
100119 Initialize the work with the remote server.
101120 """
102121
103122 if not self .lock_is_acquired :
104123 self .acquire_lock ()
124+ if self .sql_seq_scan_default is not None :
125+ self .set_sql_seq_scan_default (self .sql_seq_scan_default )
105126 self .admin .execute (f'box.cfg{{listen = "0.0.0.0:{ self .args ["primary" ]} "}}' )
106127
107128 def stop (self ):
@@ -110,6 +131,8 @@ def stop(self):
110131 """
111132
112133 self .admin .execute ('box.cfg{listen = box.NULL}' )
134+ if self .sql_seq_scan_default is not None :
135+ self .set_sql_seq_scan_default ('default' )
113136 self .release_lock ()
114137
115138 def is_started (self ):
0 commit comments