[plt-dev] pgsql package

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Jul 29 12:01:59 EDT 2009

Thanks for the reply, Dave!

The encoding of my database is SQL_ASCII which, IIUC, means that the
bug really is in the SCheme code side for putting the data in one way
and expecting it to come out the other way.

I don't suppose you (or anyone!) could recommend how this should work?
If I change the encoding to latin-1 and then change it to utf-8 and
then change it back to SQL_ASCII, woudl htat effectively translate the
entire database to utf-8?

---

Ryan said earlier that the line numbers I sent don't match up, but I'm
actually using version (2 3) of spgsql.plt so I was a bit surprised
about that. I'm using this package, specifically:

  http://planet.plt-scheme.org/display.ss?package=spgsql.plt&owner=schematics

and I can see the utf-8 call in this file:

http://planet.plt-scheme.org/package-source/schematics/spgsql.plt/2/3/private/io.ss

and the latin-1 call in this file:

http://planet.plt-scheme.org/package-source/schematics/spgsql.plt/2/3/private/sql-data.ss

so that's another mystery that it would be nice to have resolved.

Robby

On Wed, Jul 29, 2009 at 10:26 AM, Dave Gurnell<d.j.gurnell at gmail.com> wrote:
> Robby wrote:
>>
>> Hi all (Ryan?): I've got a question about pgsql. From what I can tell,
>> string data is stored in the database in the latin-1 encoding
>> (sql-data.ss line 191), but is then retrieved from the database in the
>> utf-8 encoding (io.ss line 205). Am I getting that right?
>>
>> This doesn't mean much, but I changed planet's copy of io.ss to use
>> bytes->string/latin-1 instead of bytes->string/utf-8, and I was able
>> to avoid crashing (but the latin-1 encoding might not have any
>> unencodable octets, so that isn't really saying too too much).
>
> PostgreSQL lets you specify character encodings on a per-database and
> per-client basis. The shell command:
>
>  psql -l
>
> will show you your setting for each database on your server. The psql
> command:
>
>   \encoding
>
> will show you your client encoding for your current session. You can set
> your client encoding using the psql command:
>
>    \encoding UTF8
>
> I'm guessing backslash commands can also be sent over an SPGSQL
> connection... you could try doing:
>
>    (send conn exec "\\encoding UTF8")
>
> as soon as you connect. If that works, perhaps it's something that could be
> rolled into SPGSQL's "connect" procedure?
>
> Hope this helps,
>
> -- Dave
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>


Posted on the dev mailing list.