PATCH - PgVersion_New error handling
Andrew McNamara <[email protected]> Fri, 27 Apr 2007 20:48:38 +1000
| Newsgroups | gmane.comp.python.db.pypgsql.user |
|---|---|
| Message-ID | <[email protected]> |
This is a multipart MIME message. --==_Exmh_1177670899_23000 Content-Type: text/plain; charset=us-ascii Attached is a patch against the CVS HEAD that fixes the error handling in PgVersion_New. The main problems were that NULL returns from pg_strtok_r were not being handled in many cases, and the early exit path was calling PyObject_Del (via PgVersion_dealloc), which skips some finalisation that should occur in Py_DECREF (this mainly effects debug builds of Python). The patch also deletes the unused pgstricmp function, and uses PyType_Ready to initialise the type (this is probably not necessary, as PgVersion_Type isn't a subclass, but it doesn't hurt). I also considered making PgVersion cyclic GC aware, but there doesn't appear to be any way it can be involved in a reference cycle. -- Andrew McNamara, Senior Developer, Object Craft http://www.object-craft.com.au/ --==_Exmh_1177670899_23000 Content-Type: application/octet-stream ; name="pgversionfix-patch" Content-Description: pgversionfix-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pgversionfix-patch" SW5kZXg6IHBndmVyc2lvbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L3B5 cGdzcWwvcHlwZ3NxbC9wZ3ZlcnNpb24uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNApk aWZmIC11IC1yMS4yNCBwZ3ZlcnNpb24uYwotLS0gcGd2ZXJzaW9uLmMJMiBKdW4gMjAwNiAx NDoyNzo0NSAtMDAwMAkxLjI0CisrKyBwZ3ZlcnNpb24uYwkyNyBBcHIgMjAwNyAxMDozMzo0 MSAtMDAwMApAQCAtMTIwLDM5ICsxMjAsNiBAQAogfSBQZ1ZlcnNpb247CiAKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKlwKLXwgTmFtZToJCXBnc3RyaWNtcAkJCQkJCXwKLXwgU3lub3BzaXM6CWlu dCBwZ3N0cmljbXAoY2hhciAqczEsIGNoYXIgKnMyKTsJCQl8Ci18IERlc2NyaXB0aW9uOglw Z3N0cmljbXAgY29tcGFyZXMgaXRzIGFyZ3VtZW50cyAoaWdub3JpbmcgY2FzZSkgYW5kIAl8 Ci18CQlyZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IgZ3JlYXRl ciB0aGFuCXwKLXwJCTAsIGJhc2VkIHVwb24gd2hldGhlciBzMSBpcyBsZXhpY29ncmFwaGlj YWxseSBsZXNzCXwKLXwJCXRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4gczIuCQkJ fAotfAkJCQkJCQkJCXwKLXwgTm90ZToJCUNoYXJhY3RlcnMgZm9sbG93aW5nIGEgbnVsbCBj aGFyYWN0ZXIgYXJlIG5vdCBjb21wYXJlZC4JfAotXCoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1z dGF0aWMgaW50IHBnc3RyaWNtcChjaGFyICpzMSwgY2hhciAqczIpCi17Ci0gICAgaW50IGMx ID0gMCwgYzIgPSAwOwotCi0gICAgZm9yICg7KCpzMSAhPSAwKSAmJiAoKnMyICE9IDApOyBz MSsrLCBzMisrKQotICAgIHsKLQlpZiAoaXN1cHBlcigqczEpKQotCSAgICBjMSA9IHRvbG93 ZXIoKnMxKTsKLQllbHNlCi0JICAgIGMxID0gKnMxOwotCWlmIChpc3VwcGVyKCpzMikpCi0J ICAgIGMyID0gdG9sb3dlcigqczIpOwotCWVsc2UKLQkgICAgYzIgPSAqczI7Ci0KLQlpZiAo YzEgIT0gYzIpCi0JICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJldHVybiAoYzEgLSBjMik7 Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKlwKIHwgTmFtZToJCXBhcnNlVG9rZW4JCQkJCQl8 CiB8CQkJCQkJCQkJfAogfCBTeW5vcHNpczoJaWYgKHBhcnNlVG9rZW4odG9rZW4sIHJlc3Vs dCkpIHsuLi5lcnJvciBoYW5kbGluZy4uLn0JfApAQCAtMjA4LDcgKzE3NSw3IEBACiAgICAg UHlfWERFQ1JFRihzZWxmLT5wYXRjaCk7CiAgICAgUHlfWERFQ1JFRihzZWxmLT5wb3N0NzAp OwogICAgIFB5X1hERUNSRUYoc2VsZi0+dmFsdWUpOwotICAgIFB5T2JqZWN0X0RFTChzZWxm KTsKKyAgICBQeU9iamVjdF9EZWwoc2VsZik7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0qLwpAQCAtMjIzLDExMSArMTkwLDkyIEBACiAgICAgbG9uZyBtYWpvciwgbWlub3IsIHBh dGNoLCB2YWx1ZTsKIAogICAgIHNlbGYgPSAoUGdWZXJzaW9uICopUHlPYmplY3RfTmV3KFBn VmVyc2lvbiwgJlBnVmVyc2lvbl9UeXBlKTsKKyAgICBpZiAoc2VsZiA9PSBOVUxMKQorCXJl dHVybiBOVUxMOwogCi0gICAgaWYgKHNlbGYpCisgICAgcyA9IChjaGFyICopUHlNZW1fU3Ry ZHVwKHZlcnNpb24pOworICAgIGlmIChzID09IE5VTEwpCiAgICAgewotCXNhdmVfcHRyID0g KGNoYXIgKilOVUxMOworCVB5X0RFQ1JFRihzZWxmKTsKKwlyZXR1cm4gTlVMTDsKKyAgICB9 CiAKLQlzZWxmLT52ZXJzaW9uID0gUHlfQnVpbGRWYWx1ZSgicyIsIHZlcnNpb24pOwotCXMg PSAoY2hhciAqKVB5TWVtX1N0cmR1cCh2ZXJzaW9uKTsKLQlpZiAoKHNlbGYtPnZlcnNpb24g PT0gKFB5T2JqZWN0ICopTlVMTCkgfHwgKHMgPT0gKGNoYXIgKilOVUxMKSkKLQl7Ci0JICAg IFB5RXJyX05vTWVtb3J5KCk7Ci0JICAgIGdvdG8gbmV3X2Vycm9yOwotCX0KKyAgICBzZWxm LT52ZXJzaW9uID0gTlVMTDsKKyAgICBzZWxmLT5tYWpvciA9IHNlbGYtPm1pbm9yID0gc2Vs Zi0+cGF0Y2ggPSAoUHlPYmplY3QgKilOVUxMOyAKKyAgICBzZWxmLT52YWx1ZSA9IHNlbGYt PnBvc3Q3MCA9IChQeU9iamVjdCAqKU5VTEw7CiAKLQlzZWxmLT5tYWpvciA9IHNlbGYtPm1p bm9yID0gc2VsZi0+cGF0Y2ggPSAoUHlPYmplY3QgKilOVUxMOyAKLQlzZWxmLT52YWx1ZSA9 IHNlbGYtPnBvc3Q3MCA9IChQeU9iamVjdCAqKU5VTEw7CisgICAgc2VsZi0+dmVyc2lvbiA9 IFB5X0J1aWxkVmFsdWUoInMiLCB2ZXJzaW9uKTsKKyAgICBpZiAoc2VsZi0+dmVyc2lvbiA9 PSBOVUxMKQorCWdvdG8gbmV3X2Vycm9yOwogCi0JLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlwKLQl8IFBhcnNlIG91 dCB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSB2ZXJzaW9uIHN0cmluZy4JfAot CXwgVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyAnUG9zdGdyZVNRTCBNLm0ucCBvbiAuLi4nIHdo ZXJlIE0gaXMJfAotCXwgdGhlIG1ham9yIG51bWJlciwgbSBpcyB0aGUgbWlub3IgbnVtYmVy IGFuZCBwIGlzIHRoZSBwYXRjaAl8Ci0JfCBsZXZlbC4JCQkJCQkJfAotCVwqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov Ci0KLQltYWpvciA9IG1pbm9yID0gcGF0Y2ggPSB2YWx1ZSA9IDA7Ci0KLQkvKiBQcmUtc2V0 IHRoZSBlcnJvciBjb25kaXRpb24uCi0JICogV2UnbGwgY2xlYXIgaXQgaWYgZXZlcnl0aGlu ZydzIE9LCi0JICovCi0JUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0JCQki SW52YWxpZCBmb3JtYXQgZm9yIFBnVmVyc2lvbiBjb25zdHJ1Y3Rpb24uIik7Ci0KLQotCXRv a2VuID0gcGdfc3RydG9rX3IocywgIiBcdCIsICZzYXZlX3B0cik7Ci0JaWYgKHN0cmNtcCh0 b2tlbiwgIlBvc3RncmVTUUwiKSAhPSAwKQotCSAgICBnb3RvIG5ld19lcnJvcjsKLQotCXZz dHIgPSBwZ19zdHJ0b2tfcigoY2hhciAqKU5VTEwsICIgXHQiLCAmc2F2ZV9wdHIpOwotCi0J dG9rZW4gPSBwZ19zdHJ0b2tfcigoY2hhciAqKU5VTEwsICIgXHQiLCAmc2F2ZV9wdHIpOwot CWlmIChzdHJjbXAodG9rZW4sICJvbiIpICE9IDApCi0JICAgIGdvdG8gbmV3X2Vycm9yOwot Ci0JLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKlwKLQl8IFRoaXMgdGVzdCBpcyBpbiBjYXNlIHNvbWVvbmUgdHJpZXMg dG8gY29tcGFyZXMgYWdhaW5zdCBhCXwKLQl8IHN0cmluZyBzdWNoIGFzICc3LjIgb24nLgkJ CQkJfAotCVwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCi0KLQl0b2tlbiA9IHBnX3N0cnRva19yKChjaGFyICopTlVM TCwgIiBcdCIsICZzYXZlX3B0cik7Ci0JaWYgKHN0cmNtcCh0b2tlbiwgIm9uIikgPT0gMCkK LQkgICAgZ290byBuZXdfZXJyb3I7Ci0KLQkvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXAotCXwgV2Ugbm93IGhhdmUg dGhlIHZlcnNpb24gbnVtYmVyIChhcyBNLm0ucCkgaW4gdnN0ci4gIFBhcnNlIGl0Lgl8Ci0J fCBOb3RlOiBUaGUgbWlub3IgbnVtYmVyIGFuZCBwYXRjaCBsZXZlbCBtYXkgbm90IGJlIHBy ZXNlbnQuCXwKLQlcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwotCi0Jc2F2ZV9wdHIgPSAoY2hhciAqKU5VTEw7Ci0K LSAgICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKlwKLSAgICAgICAgfCBWZW5kb3IgcmVsZWFzZXMgZS5nLiBm cm9tIGRiZXhwZXJ0cyBnZXQgZm9yZ290dGVuLiAgICAgICAgICAgIHwKLSAgICAgICAgfCBX ZSBzdHJpcCB0aGF0IGF3YXkgaGVyZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKLSAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotICAgICAgICB2c3RyID0gcGdfc3Ry dG9rX3IodnN0ciwgIi0iLCAmc2F2ZV9wdHIpOwotICAgICAgICBzYXZlX3B0ciA9IChjaGFy ICopTlVMTDsKLQotCXRva2VuID0gcGdfc3RydG9rX3IodnN0ciwgIi4iLCAmc2F2ZV9wdHIp OwotCWlmIChwYXJzZVRva2VuKHRva2VuLCAmbWFqb3IpKQotCSAgICBnb3RvIG5ld19lcnJv cjsKLQotCXRva2VuID0gcGdfc3RydG9rX3IoKGNoYXIgKilOVUxMLCAiLiIsICZzYXZlX3B0 cik7Ci0JaWYgKCh0b2tlbiAhPSAoY2hhciAqKU5VTEwpICYmICgqdG9rZW4gIT0gJ1wwJykg JiYKLQkJCQkJCShwYXJzZVRva2VuKHRva2VuLCAmbWlub3IpKSkKLQkgICAgZ290byBuZXdf ZXJyb3I7Ci0KLQl0b2tlbiA9IHBnX3N0cnRva19yKChjaGFyICopTlVMTCwgIi4tIiwgJnNh dmVfcHRyKTsKLQlpZiAoKHRva2VuICE9IChjaGFyICopTlVMTCkgJiYgKCp0b2tlbiAhPSAn XDAnKSAmJgotCSAgICAocGFyc2VUb2tlbih0b2tlbiwgJnBhdGNoKSkpCi0JewotCSAgICBn b3RvIG5ld19lcnJvcjsKLQl9Ci0JCi0JdmFsdWUgPSAoKChtYWpvciAqIDEwMCkgKyBtaW5v cikgKiAxMDApICsgcGF0Y2g7CisgICAgLyoKKyAgICAgKiBQYXJzZSBvdXQgdGhlIHZlcnNp b24gaW5mb3JtYXRpb24gZnJvbSB0aGUgdmVyc2lvbiBzdHJpbmcuCisgICAgICogVGhlIGV4 cGVjdGVkIGZvcm1hdCBpcyAnUG9zdGdyZVNRTCBNLm0ucCBvbiAuLi4nIHdoZXJlIE0gaXMK KyAgICAgKiB0aGUgbWFqb3IgbnVtYmVyLCBtIGlzIHRoZSBtaW5vciBudW1iZXIgYW5kIHAg aXMgdGhlIHBhdGNoCisgICAgICogbGV2ZWwuCisgICAgICovCisgICAgbWFqb3IgPSBtaW5v ciA9IHBhdGNoID0gdmFsdWUgPSAwOwogCi0JLyogT0ssIHRoZSB2ZXJzaW9uIGluZm9ybWF0 aW9uIGhhcyBiZWVuIHBhcnNlZCwKLQkgKiBDbGVhciB0aGUgcHJlLXNldCBlcnJvcgotCSAq LwotCSh2b2lkKVB5RXJyX0NsZWFyKCk7Ci0KLQkvKiBBbmQgYnVpbGQgdGhlIGF0dHJpYnV0 ZXMgKi8KLQlzZWxmLT5tYWpvciA9IFB5X0J1aWxkVmFsdWUoImkiLCBtYWpvcik7Ci0Jc2Vs Zi0+bWlub3IgPSBQeV9CdWlsZFZhbHVlKCJpIiwgbWlub3IpOwotCXNlbGYtPnBhdGNoID0g UHlfQnVpbGRWYWx1ZSgiaSIsIHBhdGNoKTsKLQlzZWxmLT52YWx1ZSA9IFB5X0J1aWxkVmFs dWUoImkiLCB2YWx1ZSk7Ci0Jc2VsZi0+cG9zdDcwID0gUHlfQnVpbGRWYWx1ZSgiaSIsICgo dmFsdWUgPj0gNzAxMDApID8gMWwgOiAwbCkpOwotCWlmIChQeUVycl9PY2N1cnJlZCgpKQot CSAgICBnb3RvIG5ld19lcnJvcjsKLSAgICB9CisgICAgLyogUHJlLXNldCB0aGUgZXJyb3Ig Y29uZGl0aW9uLiAgV2UnbGwgY2xlYXIgaXQgaWYgZXZlcnl0aGluZydzIE9LICovCisgICAg UHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisJCSAgICAiSW52YWxpZCBmb3Jt YXQgZm9yIFBnVmVyc2lvbiBjb25zdHJ1Y3Rpb24uIik7CisKKworICAgIHNhdmVfcHRyID0g KGNoYXIgKilOVUxMOworICAgIHRva2VuID0gcGdfc3RydG9rX3IocywgIiBcdCIsICZzYXZl X3B0cik7CisgICAgaWYgKHRva2VuID09IE5VTEwgfHwgc3RyY21wKHRva2VuLCAiUG9zdGdy ZVNRTCIpICE9IDApCisJZ290byBuZXdfZXJyb3I7CisKKyAgICB2c3RyID0gcGdfc3RydG9r X3IoKGNoYXIgKilOVUxMLCAiIFx0IiwgJnNhdmVfcHRyKTsKKworICAgIHRva2VuID0gcGdf c3RydG9rX3IoKGNoYXIgKilOVUxMLCAiIFx0IiwgJnNhdmVfcHRyKTsKKyAgICBpZiAodG9r ZW4gIT0gTlVMTCAmJiBzdHJjbXAodG9rZW4sICJvbiIpICE9IDApCisJZ290byBuZXdfZXJy b3I7CisKKyAgICAvKgorICAgICAqIFZlbmRvciByZWxlYXNlcyBlLmcuIGZyb20gZGJleHBl cnRzIGdldCBmb3Jnb3R0ZW4uCisgICAgICogV2Ugc3RyaXAgdGhhdCBhd2F5IGhlcmUuCisg ICAgICovCisgICAgc2F2ZV9wdHIgPSAoY2hhciAqKU5VTEw7CisgICAgdnN0ciA9IHBnX3N0 cnRva19yKHZzdHIsICItIiwgJnNhdmVfcHRyKTsKKworICAgIC8qCisgICAgICogV2Ugbm93 IGhhdmUgdGhlIHZlcnNpb24gbnVtYmVyIChhcyBNLm0ucCkgaW4gdnN0ci4gIFBhcnNlIGl0 LgorICAgICAqIE5vdGU6IFRoZSBtaW5vciBudW1iZXIgYW5kIHBhdGNoIGxldmVsIG1heSBu b3QgYmUgcHJlc2VudC4KKyAgICAgKi8KKyAgICBzYXZlX3B0ciA9IChjaGFyICopTlVMTDsK KyAgICB0b2tlbiA9IHBnX3N0cnRva19yKHZzdHIsICIuIiwgJnNhdmVfcHRyKTsKKyAgICBp ZiAodG9rZW4gPT0gTlVMTCB8fCBwYXJzZVRva2VuKHRva2VuLCAmbWFqb3IpKQorCWdvdG8g bmV3X2Vycm9yOworCisgICAgdG9rZW4gPSBwZ19zdHJ0b2tfcigoY2hhciAqKU5VTEwsICIu IiwgJnNhdmVfcHRyKTsKKyAgICBpZiAodG9rZW4gIT0gTlVMTCAmJiAqdG9rZW4gIT0gJ1ww JyAmJiBwYXJzZVRva2VuKHRva2VuLCAmbWlub3IpKQorCWdvdG8gbmV3X2Vycm9yOworCisg ICAgdG9rZW4gPSBwZ19zdHJ0b2tfcigoY2hhciAqKU5VTEwsICIuLSIsICZzYXZlX3B0cik7 CisgICAgaWYgKHRva2VuICE9IE5VTEwgJiYgKnRva2VuICE9ICdcMCcgJiYgcGFyc2VUb2tl bih0b2tlbiwgJnBhdGNoKSkKKwlnb3RvIG5ld19lcnJvcjsKKworICAgIHZhbHVlID0gKCgo bWFqb3IgKiAxMDApICsgbWlub3IpICogMTAwKSArIHBhdGNoOworCisgICAgLyogT0ssIHRo ZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGhhcyBiZWVuIHBhcnNlZCwgQ2xlYXIgdGhlIHByZS1z ZXQgZXJyb3IgKi8KKyAgICBQeUVycl9DbGVhcigpOworCisgICAgLyogQW5kIGJ1aWxkIHRo ZSBhdHRyaWJ1dGVzICovCisgICAgc2VsZi0+bWFqb3IgPSBQeV9CdWlsZFZhbHVlKCJpIiwg bWFqb3IpOworICAgIHNlbGYtPm1pbm9yID0gUHlfQnVpbGRWYWx1ZSgiaSIsIG1pbm9yKTsK KyAgICBzZWxmLT5wYXRjaCA9IFB5X0J1aWxkVmFsdWUoImkiLCBwYXRjaCk7CisgICAgc2Vs Zi0+dmFsdWUgPSBQeV9CdWlsZFZhbHVlKCJpIiwgdmFsdWUpOworICAgIHNlbGYtPnBvc3Q3 MCA9IFB5X0J1aWxkVmFsdWUoImkiLCB2YWx1ZSA+PSA3MDEwMCA/IDEgOiAwKTsKKyAgICBp ZiAoUHlFcnJfT2NjdXJyZWQoKSkKKwlnb3RvIG5ld19lcnJvcjsKIAogICAgIFB5TWVtX0Zy ZWUocyk7CiAgICAgcmV0dXJuIChQeU9iamVjdCAqKXNlbGY7CiAKIG5ld19lcnJvcjoKICAg ICBQeU1lbV9GcmVlKHMpOwotICAgIFBnVmVyc2lvbl9kZWFsbG9jKHNlbGYpOworICAgIFB5 X0RFQ1JFRihzZWxmKTsKICAgICByZXR1cm4gKFB5T2JqZWN0ICopTlVMTDsKIH0KIApAQCAt NTA0LDcgKzQ1Miw3IEBACiAJUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0F0dHJpYnV0ZUVycm9y LCAKIAkJCSJQZ1ZlcnNpb24gYXR0cmlidXRlcyBhcmUgcmVhZC1vbmx5Iik7CiAgICAgfQot ICAgIHJldHVybiAtMTsgICAKKyAgICByZXR1cm4gLTE7CSAKIH0KIAogLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovCkBAIC01NTksMTAgKzUwNywxMCBAQAogCiBQeVR5cGVPYmplY3QgUGdW ZXJzaW9uX1R5cGUgPSB7CiAgICAgUHlPYmplY3RfSEVBRF9JTklUKE5VTEwpCi0gICAgKGlu dClOVUxMLAkJCQkvKiBvYl9zaXplCQkqLworICAgIDAsCQkJCQkvKiBvYl9zaXplCQkqLwog ICAgIE1PRFVMRV9OQU1FICIuUGdWZXJzaW9uIiwJCS8qIHRwX25hbWUJCSovCiAgICAgc2l6 ZW9mKFBnVmVyc2lvbiksCQkJLyogdHBfYmFzaWNzaXplCQkqLwotICAgIChpbnQpTlVMTCwJ CQkJLyogdHBfaXRlbXNpemUJCSovCisgICAgMCwJCQkJCS8qIHRwX2l0ZW1zaXplCQkqLwog ICAgIChkZXN0cnVjdG9yKVBnVmVyc2lvbl9kZWFsbG9jLAkvKiB0cF9kZWFsbG9jCQkqLwog ICAgIChwcmludGZ1bmMpTlVMTCwJCQkvKiB0cF9wcmludAkJKi8KICAgICAoZ2V0YXR0cmZ1 bmMpUGdWZXJzaW9uX2dldGF0dHIsCS8qIHRwX2dldGF0dHIJCSovCkBAIC01NzUsMTEgKzUy MywxNSBAQAogICAgIChoYXNoZnVuYylOVUxMLAkJCS8qIHRwX2hhc2gJCSovCiAgICAgKHRl cm5hcnlmdW5jKU5VTEwsCQkJLyogdHBfY2FsbAkJKi8KICAgICAocmVwcmZ1bmMpTlVMTCwJ CQkvKiB0cF9zdHIJCSovCi0gICAgTlVMTCwgTlVMTCwgTlVMTCwgKGludClOVUxMLAotICAg IFBnVmVyc2lvbl9UeXBlX0RvYwotfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKyAgICAwLAkJCQkJLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAw LAkJCQkJLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLAkJCQkJLyogdHBfYXNfYnVmZmVyICov CisgICAgMCwJCQkJCS8qIHRwX2ZsYWdzICovCisgICAgUGdWZXJzaW9uX1R5cGVfRG9jLAkJ CS8qIHRwX2RvYyAqLworfTsKIAogdm9pZCBpbml0cGd2ZXJzaW9uKHZvaWQpCiB7Ci0gICAg UGdWZXJzaW9uX1R5cGUub2JfdHlwZQk9ICZQeVR5cGVfVHlwZTsKKyAgICBpZiAoUHlUeXBl X1JlYWR5KCZQZ1ZlcnNpb25fVHlwZSkgPCAwKQorCXJldHVybjsKIH0K --==_Exmh_1177670899_23000 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ --==_Exmh_1177670899_23000 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Pypgsql-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/pypgsql-users --==_Exmh_1177670899_23000--