Changeset 816
- Timestamp:
- 03/08/07 23:12:42 (2 years ago)
- Files:
-
- pg8000/trunk/pg8000.py (modified) (4 diffs)
- pg8000/trunk/pg8000-test.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pg8000/trunk/pg8000.py
r812 r816 417 417 val = val + struct.pack("!h", len(self.params)) 418 418 for param in self.params: 419 val = val + struct.pack("!i", len(param)) + param 419 if param == None: 420 # special case, NULL value 421 val = val + struct.pack("!i", -1) 422 else: 423 val = val + struct.pack("!i", len(param)) + param 420 424 val = val + struct.pack("!h", len(self.out_fc)) 421 425 for fc in self.out_fc: … … 976 980 if data == None: 977 981 raise NotSupportedError("type %r not mapped to pg type" % typ) 982 elif data.get("tid") == -1: 983 # special case: NULL values 984 return None 978 985 if fc == 0: 979 986 func = data.get("txt_out") … … 1016 1023 1017 1024 def py_value(v, description, **kwargs): 1025 if v == None: 1026 # special case - NULL value 1027 return None 1018 1028 type_oid = description['type_oid'] 1019 1029 format = description['format'] … … 1134 1144 str: {"tid": 25, "txt_out": textout}, 1135 1145 unicode: {"tid": 25, "txt_out": textout}, 1146 type(None): {"tid": -1}, 1136 1147 } 1137 1148 pg8000/trunk/pg8000-test.py
r815 r816 12 12 13 13 db.execute("DROP TABLE t1") 14 db.execute("CREATE TABLE t1 (f1 int primary key, f2 int not null, f3 varchar(50) n ot null)")14 db.execute("CREATE TABLE t1 (f1 int primary key, f2 int not null, f3 varchar(50) null)") 15 15 16 16 s1 = pg8000.PreparedStatement(db, "INSERT INTO t1 (f1, f2, f3) VALUES ($1, $2, $3)", int, int, str) … … 18 18 s1.execute(2, 10, "he\u0173llo") 19 19 s1.execute(3, 100, "hello") 20 s1.execute(4, 1000, "hello")20 s1.execute(4, 1000, None) 21 21 s1.execute(5, 10000, "hello") 22 22 s1.execute(6, 100000, "hello")
