binary cursor returning truncated data
binary cursor returning truncated data
am 12.04.2006 16:21:49 von e.mauviere
This is a multi-part message in MIME format.
------=_NextPart_000_0201_01C65E4D.33A9DA20
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hello,
i am trying to retrieve binary content of a bytea field (or postgis =
geometry field) with a binary cursor with PHP :
$sql=3D"BEGIN;DECLARE mycursor BINARY CURSOR FOR SELECT shape FROM =
$layerName; fetch all in mycursor;"
.....pg_query...=20
But my shape field shows only two bytes of data.
Does someone know if it is a current PHP restriction ?
Thanks by advance,
Eric
------=_NextPart_000_0201_01C65E4D.33A9DA20
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
charset=3Diso-8859-1">
Hello,
i am trying to retrieve binary content =
of a bytea=20
field (or postgis geometry field) with a binary cursor with PHP =
:
$sql=3D"BEGIN;DECLARE mycursor BINARY =
CURSOR FOR=20
SELECT shape FROM $layerName; fetch all in mycursor;"
....pg_query...
But my shape field shows only two =
bytes of=20
data.
Does someone know if it is a current =
PHP=20
restriction ?
Thanks by advance,
Eric =
------=_NextPart_000_0201_01C65E4D.33A9DA20--
Re: binary cursor returning truncated data
am 16.04.2006 18:39:32 von Michael Fuhr
On Wed, Apr 12, 2006 at 04:21:49PM +0200, Eric Mauvire wrote:
> i am trying to retrieve binary content of a bytea field (or postgis
> geometry field) with a binary cursor with PHP :
>
> $sql="BEGIN;DECLARE mycursor BINARY CURSOR FOR SELECT shape FROM $layerName; fetch all in mycursor;"
> ....pg_query...
>
> But my shape field shows only two bytes of data.
The PHP source code (ext/pgsql/pgsql.c) doesn't have any calls to
PQfformat or PQbinaryTuples so PHP appears to expect text data.
Looks like you'll have to fetch data in text format and use
pg_unescape_bytea.
Maybe the PHP developers would consider adding support for binary
data (or maybe they already have and rejected the idea; I don't
know). Try asking on a PHP mailing list.
--
Michael Fuhr
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
Re: binary cursor returning truncated data
am 18.04.2006 10:01:10 von e.mauviere
Thank you Michael,
for that confirmation
I reported the bug to the PHP team, and they issued a patch.
I would also suggest to postgres developpers to simplify their code and g=
o=20
back to SQL standards :)
That BINARY CURSOR thing should be avoided. With MySQL for instance, a=20
cursor will read the same way any type of data, binary or text.
Best regards,
Eric Mauvi=E8re
----- Original Message -----=20
From: "Michael Fuhr"
To: "Eric Mauvi=E8re"
Cc:
Sent: Sunday, April 16, 2006 6:39 PM
Subject: Re: [PHP] binary cursor returning truncated data
> On Wed, Apr 12, 2006 at 04:21:49PM +0200, Eric Mauvire wrote:
>> i am trying to retrieve binary content of a bytea field (or postgis
>> geometry field) with a binary cursor with PHP :
>>
>> $sql=3D"BEGIN;DECLARE mycursor BINARY CURSOR FOR SELECT shape FROM=20
>> $layerName; fetch all in mycursor;"
>> ....pg_query...
>>
>> But my shape field shows only two bytes of data.
>
> The PHP source code (ext/pgsql/pgsql.c) doesn't have any calls to
> PQfformat or PQbinaryTuples so PHP appears to expect text data.
> Looks like you'll have to fetch data in text format and use
> pg_unescape_bytea.
>
> Maybe the PHP developers would consider adding support for binary
> data (or maybe they already have and rejected the idea; I don't
> know). Try asking on a PHP mailing list.
>
> --=20
> Michael Fuhr
>
> ---------------------------(end of broadcast)--------------------------=
-
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
>=20
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
Re: binary cursor returning truncated data
am 18.04.2006 10:28:20 von Christopher Kings-Lynne
> for that confirmation
>
> I reported the bug to the PHP team, and they issued a patch.
>
> I would also suggest to postgres developpers to simplify their code and
> go back to SQL standards :)
> That BINARY CURSOR thing should be avoided. With MySQL for instance, a
> cursor will read the same way any type of data, binary or text.
I think you're rather confused. The BINARY CURSOR is for emitted binary
data, not reading it. If you declare a normal cursor over a binary
(bytea) field, you will get its text representation quite happily.
Chris
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
Re: binary cursor returning truncated data
am 18.04.2006 10:44:21 von e.mauviere
Hello Christopher,
i simply want to retrieve the content of a binary field in a Postgresql=20
table, and use that information in a PHP script.
That binary field contains binary information that must be read with PHP=20
binary functions (unpack).
The current way : POSTGRES cursor -> text version of the binary field in=20
PHP -> conversion back to a binary string with pg_unescape_bytea
is tedious and brings performance issues.
best regards,
Eric Mauvi=E8re
----- Original Message -----=20
From: "Christopher Kings-Lynne"
To: "Eric Mauvi=E8re"
Cc:
Sent: Tuesday, April 18, 2006 10:28 AM
Subject: Re: [PHP] binary cursor returning truncated data
>> for that confirmation
>>
>> I reported the bug to the PHP team, and they issued a patch.
>>
>> I would also suggest to postgres developpers to simplify their code an=
d=20
>> go back to SQL standards :)
>> That BINARY CURSOR thing should be avoided. With MySQL for instance, a=
=20
>> cursor will read the same way any type of data, binary or text.
>
> I think you're rather confused. The BINARY CURSOR is for emitted binar=
y=20
> data, not reading it. If you declare a normal cursor over a binary=20
> (bytea) field, you will get its text representation quite happily.
>
> Chris
>
>
>
> ---------------------------(end of broadcast)--------------------------=
-
> TIP 5: don't forget to increase your free space map settings
>
>=20
---------------------------(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
Re: binary cursor returning truncated data
am 07.09.2006 11:13:17 von Nikolay Samokhvalov
Is this issue still open?
Some guys say me that they experience similar troubles and this may
prevent them from migrating from OneBigWellKnownDBMS to Postgres.
On 4/18/06, Eric Mauvi=E8re wrote:
> Hello Christopher,
>
> i simply want to retrieve the content of a binary field in a Postgresql
> table, and use that information in a PHP script.
> That binary field contains binary information that must be read with PHP
> binary functions (unpack).
>
> The current way : POSTGRES cursor -> text version of the binary field in
> PHP -> conversion back to a binary string with pg_unescape_bytea
> is tedious and brings performance issues.
>
> best regards,
>
> Eric Mauvi=E8re
>
> ----- Original Message -----
> From: "Christopher Kings-Lynne"
> To: "Eric Mauvi=E8re"
> Cc:
> Sent: Tuesday, April 18, 2006 10:28 AM
> Subject: Re: [PHP] binary cursor returning truncated data
>
>
> >> for that confirmation
> >>
> >> I reported the bug to the PHP team, and they issued a patch.
> >>
> >> I would also suggest to postgres developpers to simplify their code and
> >> go back to SQL standards :)
> >> That BINARY CURSOR thing should be avoided. With MySQL for instance, a
> >> cursor will read the same way any type of data, binary or text.
> >
> > I think you're rather confused. The BINARY CURSOR is for emitted binary
> > data, not reading it. If you declare a normal cursor over a binary
> > (bytea) field, you will get its text representation quite happily.
> >
> > Chris
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: don't forget to increase your free space map settings
> >
> >
>
>
>
>
> ---------------------------(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
>
--=20
Best regards,
Nikolay
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings