Odbc and Bytea

Odbc and Bytea

am 26.02.2008 16:55:54 von Luiz

This is a multi-part message in MIME format.

------=OPENWEBMAIL_ATT_0.943114810480864
Content-Type: text/plain;
charset=iso-8859-1

Hi,

I discovered that ODBC driver has a slightly different behavior than libpq on
the conversion from bytea escaped sequence to the unescaped form.

Well, I was sent a wrong escaped string to a bytea column, and Odbc driver
donĀ“t return the same wrong string when retrieve it. :(

Altought for correct strings they works well, I think that is interesting that
both routines have the same behaviour.

So,I attached a modification (algorithm extracted from libpq ;) ).

Hope this can help to improve the driver.

Best Regards

Luiz
--
Plan IT Tecnologia Informatica Ltda.


------=OPENWEBMAIL_ATT_0.943114810480864
Content-Type: application/octet-stream;
name="convert.diff"
Content-Disposition: attachment; filename="convert.diff"
Content-Transfer-Encoding: base64

SW5kZXg6IGNvbnZlcnQuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT
IGZpbGU6IC9jdnNyb290L3BzcWxvZGJjL3BzcWxvZGJjL2NvbnZlcnQuYyx2
DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTY2DQpkaWZmIC1yMS4xNjYgY29u
dmVydC5jDQo0Nzg5YTQ3OTAsNDc5MQ0KPiAjZGVmaW5lIElTRklSU1RPQ1RE
SUdJVChDSCkgKChDSCkgPj0gJzAnICYmIChDSCkgPD0gJzMnKQ0KPiAjZGVm
aW5lIElTT0NURElHSVQoQ0gpICgoQ0gpID49ICcwJyAmJiAoQ0gpIDw9ICc3
JykNCjQ4MDJjNDgwNA0KPCAJCWlmICh2YWx1ZVtpXSA9PSBCWVRFQV9FU0NB
UEVfQ0hBUikNCi0tLQ0KPiAJCXN3aXRjaCAodmFsdWVbaV0pDQo0ODA0LDQ4
MDVjNDgwNiw0ODM3DQo8IAkJCWlmICh2YWx1ZVtpICsgMV0gPT0gQllURUFf
RVNDQVBFX0NIQVIpDQo8IAkJCXsNCi0tLQ0KPiAJCQljYXNlIEJZVEVBX0VT
Q0FQRV9DSEFSOg0KPiAJCQkJaSsrOw0KPiAJCQkJaWYgKHZhbHVlW2ldID09
IEJZVEVBX0VTQ0FQRV9DSEFSKQ0KPiAJCQkJCWlmIChyZ2JWYWx1ZSkNCj4g
CQkJCQkJcmdiVmFsdWVbb10gPSB2YWx1ZVtpXTsNCj4gDQo+IAkJCQkJbysr
Ow0KPiAJCQkJCWkrKzsNCj4gCQkJCWVsc2UNCj4gCQkJCXsNCj4gCQkJCQlp
ZiAoKElTRklSU1RPQ1RESUdJVCh2YWx1ZVtpXSkpICYmDQo+IAkJCQkJCShJ
U09DVERJR0lUKHZhbHVlW2kgKyAxXSkpICYmDQo+IAkJCQkJCShJU09DVERJ
R0lUKHZhbHVlW2kgKyAyXSkpKQ0KPiAJCQkJCXsNCj4gCQkJCQkJaWYgKHJn
YlZhbHVlKQ0KPiAJCQkJCQkJcmdiVmFsdWVbb10gPSBjb252X2Zyb21fb2N0
YWwoJnZhbHVlW2ldKTsNCj4gDQo+IAkJCQkJCW8rKzsNCj4gCQkJCQkJaSAr
PSAzOw0KPiAJCQkJCX0NCj4gCQkJCX0NCj4gDQo+IAkJCQkvKg0KPiAJCQkJ
ICogTm90ZTogaWYgd2Ugc2VlICdcJyBmb2xsb3dlZCBieSBzb21ldGhpbmcg
dGhhdCBpc24ndCBhDQo+IAkJCQkgKiByZWNvZ25pemVkIGVzY2FwZSBzZXF1
ZW5jZSwgd2UgbG9vcCBhcm91bmQgaGF2aW5nIGRvbmUNCj4gCQkJCSAqIG5v
dGhpbmcgZXhjZXB0IGFkdmFuY2UgaS4gIFRoZXJlZm9yZSB0aGUgc29tZXRo
aW5nIHdpbGwgYmUNCj4gCQkJCSAqIGVtaXR0ZWQgYXMgb3JkaW5hcnkgZGF0
YSBvbiB0aGUgbmV4dCBjeWNsZS4gQ29ybmVyIGNhc2U6DQo+IAkJCQkgKiAn
XCcgYXQgZW5kIG9mIHN0cmluZyB3aWxsIGp1c3QgYmUgZGlzY2FyZGVkLg0K
PiAJCQkJICovDQo+IAkJCQlicmVhazsNCj4gDQo+IAkJCWRlZmF1bHQ6DQo0
ODA4LDQ4MjFjNDg0MCw0ODQzDQo8IAkJCQlpICs9IDI7DQo8IAkJCX0NCjwg
CQkJZWxzZQ0KPCAJCQl7DQo8IAkJCQlpZiAocmdiVmFsdWUpDQo8IAkJCQkJ
cmdiVmFsdWVbb10gPSBjb252X2Zyb21fb2N0YWwoJnZhbHVlW2ldKTsNCjwg
CQkJCWkgKz0gNDsNCjwgCQkJfQ0KPCAJCX0NCjwgCQllbHNlDQo8IAkJew0K
PCAJCQlpZiAocmdiVmFsdWUpDQo8IAkJCQlyZ2JWYWx1ZVtvXSA9IHZhbHVl
W2ldOw0KPCAJCQlpKys7DQotLS0NCj4gDQo+IAkJCQlpKys7DQo+IAkJCQlv
KysNCj4gCQkJCWJyZWFrOw0KNDgyMyw0ODI1ZDQ4NDQNCjwgCQkvKiogaWYg
KHJnYlZhbHVlKQ0KPCAJCQlteWxvZygiY29udmVydF9mcm9tX3BnYmluYXJ5
OiBpPSVkLCByZ2JWYWx1ZVslZF0gPSAlZCwgJWNcbiIsIGksIG8sIHJnYlZh
bHVlW29dLCByZ2JWYWx1ZVtvXSk7ICoqKi8NCjwgCQlvKys7DQo=

------=OPENWEBMAIL_ATT_0.943114810480864
Content-Type: text/plain
Content-Disposition: inline
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

------=OPENWEBMAIL_ATT_0.943114810480864--