Skip to content

Commit aeb3162

Browse files
committed
Fixes for previous commits. Add support of select all tuples in fields for TREE index (via empty tuple)
1 parent 7e59b05 commit aeb3162

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/tarantool/connection.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
'''
66

77
import ctypes
8+
import errno
89
import socket
910
import time
1011

@@ -14,6 +15,7 @@
1415
RequestCall,
1516
RequestDelete,
1617
RequestInsert,
18+
RequestPing,
1719
RequestSelect,
1820
RequestUpdate)
1921
from tarantool.space import Space
@@ -145,16 +147,18 @@ def _opt_reconnect(self):
145147
if not self._socket or not self._socket.recv(0, socket.MSG_DONTWAIT):
146148
time.sleep(self.reconnect_delay)
147149
self.connect()
150+
warn("Reconnect attempt %d of %d"%(attempt, self.reconnect_max_attempts), NetworkWarning)
148151
except socket.error as e:
149152
if e.errno == errno.EAGAIN:
150153
break
151154
else:
152155
time.slelep(self.reconnect_delay)
153156
self.connect()
157+
warn("%s : Reconnect attempt %d of %d"%(e.message, attempt, self.reconnect_max_attempts), NetworkWarning)
154158
if attempt == self.reconnect_max_attempts:
155159
raise
156160
attempt += 1
157-
warn("%s : Reconnect attempt %d of %d"%(e.message, attempt, self.reconnect_max_attempts), NetworkWarning)
161+
158162

159163

160164
def _send_request(self, request, space_name = None, field_defs = None, default_type = None):
@@ -326,15 +330,13 @@ def _select(self, space_name, index_name, values, offset=0, limit=0xffffffff):
326330

327331
# 'values' argument must be a list of tuples
328332
assert isinstance(values, (list, tuple))
329-
assert len(values) != 0
330-
assert isinstance(values[0], (list, tuple))
331333

332334
request = RequestSelect(self, space_name, index_name, values, offset, limit)
333335
response = self._send_request(request, space_name)
334336
return response
335337

336338

337-
def select(self, space_name, values, **kwargs):
339+
def select(self, space_name, values=None, **kwargs):
338340
'''\
339341
Execute SELECT request.
340342
Select and retrieve data from the database.
@@ -374,11 +376,12 @@ def select(self, space_name, values, **kwargs):
374376
index = kwargs.get("index", 0)
375377

376378
# Perform smart type cheching (scalar / list of scalars / list of tuples)
377-
if isinstance(values, (int, long, basestring)): # scalar
379+
if values == None:
380+
values = [[]]
381+
elif isinstance(values, (int, long, basestring)): # scalar
378382
# This request is looking for one single record
379383
values = [(values, )]
380384
elif isinstance(values, (list, tuple, set, frozenset)):
381-
assert len(values) > 0
382385
if isinstance(values[0], (int, long, basestring)): # list of scalars
383386
# This request is looking for several records using single-valued index
384387
# Ex: select(space_no, index_no, [1, 2, 3])

src/tarantool/request.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,6 @@ class RequestPing(Request):
300300
'''
301301
request_typle = REQUEST_TYPE_PING
302302

303-
def __init__(self, conn, notime):
303+
def __init__(self, conn):
304304
super(RequestPing, self).__init__(conn)
305-
self._bytes = self.header(0)
305+
self._bytes = struct_LLL.pack(REQUEST_TYPE_PING, 0, 0)

0 commit comments

Comments
 (0)