Skip to content

Commit 5916a75

Browse files
committed
Fix #2
1 parent 192493c commit 5916a75

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

firebird/driver/core.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2953,6 +2953,8 @@ def _pack_input(self, meta: iMessageMetadata, buffer: bytes,
29532953
offset = in_meta.get_offset(i)
29542954
# handle NULL value
29552955
in_buffer[in_meta.get_null_offset(i)] = 1 if value is None else 0
2956+
if value is None:
2957+
continue
29562958
# store parameter value
29572959
if _is_str_param(value, datatype):
29582960
# Implicit conversion to string

test/test_driver.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2596,6 +2596,31 @@ def test_08_select_int128(self):
25962596
self.assertIsInstance(d128, decimal.Decimal)
25972597
self.assertEqual(d128, d[1])
25982598

2599+
class TestIssues(DriverTestBase):
2600+
def setUp(self):
2601+
super().setUp()
2602+
self.dbfile = os.path.join(self.dbpath, self.FBTEST_DB)
2603+
self.con = connect(self.dbfile, user=FBTEST_USER, password=FBTEST_PASSWORD)
2604+
self.con._logging_id_ = self.__class__.__name__
2605+
self.con2 = connect(self.dbfile, user=FBTEST_USER, password=FBTEST_PASSWORD, charset='utf-8')
2606+
self.con2._logging_id_ = self.__class__.__name__
2607+
#self.con.execute_immediate("recreate table t (c1 integer)")
2608+
#self.con.commit()
2609+
#self.con.execute_immediate("RECREATE TABLE T2 (C1 Smallint,C2 Integer,C3 Bigint,C4 Char(5),C5 Varchar(10),C6 Date,C7 Time,C8 Timestamp,C9 Blob sub_type 1,C10 Numeric(18,2),C11 Decimal(18,2),C12 Float,C13 Double precision,C14 Numeric(8,4),C15 Decimal(8,4))")
2610+
self.con.execute_immediate("delete from t")
2611+
self.con.execute_immediate("delete from t2")
2612+
self.con.commit()
2613+
def tearDown(self):
2614+
self.con2.close()
2615+
self.con.close()
2616+
def test_issue_02(self):
2617+
with self.con.cursor() as cur:
2618+
cur.execute('insert into T2 (C1,C2,C3) values (?,?,?)', [1, None, 1])
2619+
self.con.commit()
2620+
cur.execute('select C1,C2,C3 from T2 where C1 = 1')
2621+
rows = cur.fetchall()
2622+
self.assertListEqual(rows, [(1, None, 1)])
2623+
25992624
if __name__ == '__main__':
26002625
unittest.main()
26012626

0 commit comments

Comments
 (0)