Skip to content

Commit 60e6e8c

Browse files
committed
[WIP] try except for reading 32 bit values
1 parent 9cc1a53 commit 60e6e8c

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

datajoint/blob.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,11 @@ def unpack(self, blob):
104104
self._pos = 0
105105
blob_format = self.read_zero_terminated_string()
106106
if blob_format in ('mYm', 'dj0'):
107-
return self.read_blob(n_bytes=len(self._blob) - self._pos)
107+
try:
108+
return self.read_blob(n_bytes=len(self._blob) - self._pos)
109+
except:
110+
self.is_32_bit = True
111+
return self.read_blob(n_bytes=len(self._blob) - self._pos)
108112

109113
def read_blob(self, n_bytes=None):
110114
start = self._pos

tests/test_blob.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,11 @@ def test_complex():
134134

135135

136136
def test_insert_longblob():
137-
# schema.Testmym.insert1({'id': 1, 'data': [1,2,3,4,5,6]})
137+
import numpy as np
138+
# schema.Testmym.insert1({'id': 1, 'data': np.recarray(np.array([[(np.array([[np.nan, 1., 1., 0., 1., 0., np.nan]]), np.array(['llllrrl'], dtype='<U7'), np.array(['ddddddd'], dtype='<U7'), np.array(['Stage 10'], dtype='<U8'))]]), dtype=[('hits', 'O'), ('sides', 'O'), ('tasks', 'O'), ('stage', 'O')])})
138139
dj.conn().query("INSERT INTO djtest_test1.testmym (id, data) VALUES (1, X'6D596D00530200000001000000010000000400000068697473007369646573007461736B73007374616765004D000000410200000001000000070000000600000000000000000000000000F8FF000000000000F03F000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000F8FF230000004102000000010000000700000004000000000000006C006C006C006C00720072006C002300000041020000000100000007000000040000000000000064006400640064006400640064002500000041020000000100000008000000040000000000000053007400610067006500200031003000')").fetchall()
139140
# dj.conn().query("INSERT INTO djtest_test1.testmym (id, data) VALUES (1, X'646A300002060000000000000004000000000000000A01000104000000000000000A01000204000000000000000A01000304000000000000000A01000404000000000000000A01000504000000000000000A010006')").fetchall()
140141
print('\n',dj.conn().query("SELECT hex(data) FROM djtest_test1.testmym").fetchall())
141142
print((schema.Testmym & 'id=1').fetch1())
143+
schema.Testmym.drop()
142144
assert True

0 commit comments

Comments
 (0)