On 27 Aug 2014, at 18:20, Esteban A. Maringolo <[email protected]> wrote:

> 2014-08-27 12:38 GMT-03:00 Sven Van Caekenberghe <[email protected]>:
>> It seems that Glorp Login>>#encodingStrategy is not used by the 
>> NativePostgresDriver yet it is required to set it to a non nil value to get 
>> things working. This feels like a hack or something unfinished.
> 
> How so?
> 
> PGConnection>>#clientEncoding: sets instance variables
> sqlStringConverter and receivingTextConverter, which are used to
> convert text back and forth from Pharo to the socket (see
> PGConnection>>#execute:)
> 
> It is really convoluted, but I guess this has to do with the pass of
> time, and also with the half-backed (IMO) driver independence and
> dialect compatibility.
> 
> Regards!
> 
> Esteban A. Maringolo

Thanks for your answer.

I was confused by the name change between encodingStrategy and clientEncoding. 
You are right it is used. But my point remains that unless you set 
encodingStrategy on Login to something you get an error when nil in converted 
to a Symbol (in #connectionArgsFromCurrentLogin:). Now, I set it to #default 
which does not exist as encoding and leads to no encoding at all. That seems to 
indicate that it is not needed, but I am not sure.

Sven

The before last line of #connectionArgsFromCurrentLogin: could be changed to

aLogin encodingStrategy ifNotNil: [ :enc | connectionArgs clientEncoding: enc 
asSymbol ].



Reply via email to