Skip to content

Commit 06b4215

Browse files
authored
fix: support merging for NUMERIC values (#434)
Fixes #433
1 parent 93c09ab commit 06b4215

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

google/cloud/spanner_v1/streamed.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ def _merge_struct(lhs, rhs, type_):
315315
TypeCode.STRING: _merge_string,
316316
TypeCode.STRUCT: _merge_struct,
317317
TypeCode.TIMESTAMP: _merge_string,
318+
TypeCode.NUMERIC: _merge_string,
318319
}
319320

320321

tests/unit/test_streamed.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,19 @@ def test__merge_chunk_bool(self):
164164
with self.assertRaises(Unmergeable):
165165
streamed._merge_chunk(chunk)
166166

167+
def test__merge_chunk_numeric(self):
168+
from google.cloud.spanner_v1 import TypeCode
169+
170+
iterator = _MockCancellableIterator()
171+
streamed = self._make_one(iterator)
172+
FIELDS = [self._make_scalar_field("total", TypeCode.NUMERIC)]
173+
streamed._metadata = self._make_result_set_metadata(FIELDS)
174+
streamed._pending_chunk = self._make_value(u"1234.")
175+
chunk = self._make_value(u"5678")
176+
177+
merged = streamed._merge_chunk(chunk)
178+
self.assertEqual(merged.string_value, u"1234.5678")
179+
167180
def test__merge_chunk_int64(self):
168181
from google.cloud.spanner_v1 import TypeCode
169182

0 commit comments

Comments
 (0)