Skip site navigation (1) Skip section navigation (2)

Re: Strings with null characters produce exceptions when selectedor inserted. Attempts to select messages with null bytes produces "ERROR:insufficient data left in message". And inserting produces "ERROR: invalidbyte sequence for encoding \"UTF8\":

From: "John Lister" <john(dot)lister(at)kickstone(dot)com>
To: "Craig Ringer" <craig(at)postnewspapers(dot)com(dot)au>, pgsql-jdbc-owner(at)postgresql(dot)org, "Kris Jurka" <books(at)ejurka(dot)com>
Cc: user2037(at)ymail(dot)com, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Strings with null characters produce exceptions when selectedor inserted. Attempts to select messages with null bytes produces "ERROR:insufficient data left in message". And inserting produces "ERROR: invalidbyte sequence for encoding \"UTF8\":
Date: 2009-06-04 11:58:26
Message-ID: 1176993971-1244116729-cardhu_decombobulator_blackberry.rim.net-143516403-@bxe1101.bisx.produk.on.blackberry (view raw or flat)
Thread:
Lists: pgsql-jdbc
Apologies for top post using a blackberry. The binary mode should be able to cope fine as it passes the length before sending the data. Should be straightforward to add strings to patch.

John
------Original Message------
From: Craig Ringer
Sender: pgsql-jdbc-owner(at)postgresql(dot)org
To: Kris Jurka
Cc: user2037(at)ymail(dot)com
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [JDBC] Strings with null characters produce exceptions when selectedor inserted. Attempts to select messages with null bytes produces "ERROR:insufficient data left in message". And inserting produces "ERROR: invalidbyte sequence for encoding \"UTF8\": 0x00".  Since a null character is avalid UTF code point why is it rejected by the JDBC driver?  The attachedtest can work with Mysql and their JDBC driver.
Sent: 4 Jun 2009 01:34

Kris Jurka wrote:
> 
> 
> On Wed, 3 Jun 2009, user2037(at)ymail(dot)com wrote:
> 
>> Strings with null characters produce exceptions when selected or
>> inserted. Attempts to select messages with null bytes produces "ERROR:
>> insufficient data left in message". And inserting produces "ERROR:
>> invalid byte sequence for encoding \"UTF8\": 0x00".
>>
>> Since a null character is a valid UTF code point why is it rejected by
>> the JDBC driver?
> 
> Because the server can't handle it.  The server is written in C and
> tracks all textual data as C strings which are null terminated.  It
> cannot handle intermediate null bytes, so the driver is just providing
> that message as early as possible to you.

Note that the `bytea' type _does_ store null bytes fine.

It's interesting that \0x00 is in fact valid utf-8, since it raises the
question of whether Pg should in fact support null bytes in `text' and
`varchar' strings.

--
Craig Ringer

-- 
Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc


Sent using BlackBerry® from Orange

Responses

pgsql-jdbc by date

Next:From: Hannu KrosingDate: 2009-06-04 12:21:04
Subject: Re: Strings with null characters produce exceptions when selectedor inserted. Attempts to select messages with null bytes produces "ERROR:insufficient data left in message". And inserting produces "ERROR: invalidbyte sequence for encoding \"UTF8\":
Previous:From: CrocDate: 2009-06-04 11:16:34
Subject: Re: Headless Exception

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group