Thread: pg_dirtyread doesnt work

pg_dirtyread doesnt work

From
Alejandro Carrillo
Date:
Hi,

After of very tried to compile this PostgreSQL C function for Windows, I compile that (with VS C++ 2008), but the function get a error when try to read a deleted row. The example:

CREATE FUNCTION pg_dirtyread(oid)
RETURNS setof record
AS E'$libdir/pg_dirtyread', 'pg_finfo_pg_dirtyread' LANGUAGE C STRICT ;

Create table hola(
id bigserial,
dato1 varchar(199) not null,
fecha date
);

/*insert 3 rows and delete 1 row*/


select * from pg_dirtyread('hola'::regclass) t (id bigint,dato1 varchar(199), fecha date);

ERROR:  invalid memory alloc request size 1850015748

Anybody can help me?

Thanks

Re: pg_dirtyread doesnt work

From
Alejandro Carrillo
Date:

Anybody knows why could be happening: ERROR:  invalid memory alloc request size 1850015748

Thanks

De: Alejandro Carrillo <fasterzip@yahoo.es>
Para: "pgsql-general@postgresql.org" <pgsql-general@postgresql.org>
Enviado: Jueves 27 de diciembre de 2012 16:17
Asunto: [GENERAL] pg_dirtyread doesnt work

Hi,

After of very tried to compile this PostgreSQL C function for Windows, I compile that (with VS C++ 2008), but the function get a error when try to read a deleted row. The example:

CREATE FUNCTION pg_dirtyread(oid)
RETURNS setof record
AS E'$libdir/pg_dirtyread', 'pg_finfo_pg_dirtyread' LANGUAGE C STRICT ;

Create table hola(
id bigserial,
dato1 varchar(199) not null,
fecha date
);

/*insert 3 rows and delete 1 row*/


select * from pg_dirtyread('hola'::regclass) t (id bigint,dato1 varchar(199), fecha date);

ERROR:  invalid memory alloc request size 1850015748

Anybody can help me?

Thanks


Re: pg_dirtyread doesnt work

From
Phil Sorber
Date:
Most likely it's because of TOAST'd records. The module is pretty
naive and needs to be updated to handle such cases.

On Fri, Dec 28, 2012 at 10:53 AM, Alejandro Carrillo <fasterzip@yahoo.es> wrote:
>
> Anybody knows why could be happening: ERROR:  invalid memory alloc request
> size 1850015748
>
> Thanks
>
> ________________________________
> De: Alejandro Carrillo <fasterzip@yahoo.es>
> Para: "pgsql-general@postgresql.org" <pgsql-general@postgresql.org>
> Enviado: Jueves 27 de diciembre de 2012 16:17
> Asunto: [GENERAL] pg_dirtyread doesnt work
>
> Hi,
>
> After of very tried to compile this PostgreSQL C function for Windows, I
> compile that (with VS C++ 2008), but the function get a error when try to
> read a deleted row. The example:
>
> CREATE FUNCTION pg_dirtyread(oid)
> RETURNS setof record
> AS E'$libdir/pg_dirtyread', 'pg_finfo_pg_dirtyread' LANGUAGE C STRICT ;
>
> Create table hola(
> id bigserial,
> dato1 varchar(199) not null,
> fecha date
> );
>
> /*insert 3 rows and delete 1 row*/
>
>
> select * from pg_dirtyread('hola'::regclass) t (id bigint,dato1
> varchar(199), fecha date);
>
> ERROR:  invalid memory alloc request size 1850015748
>
> Anybody can help me?
>
> Thanks
>
>


Re: pg_dirtyread doesnt work

From
Alvaro Herrera
Date:
Phil Sorber escribió:
> Most likely it's because of TOAST'd records. The module is pretty
> naive and needs to be updated to handle such cases.

It doesn't look like a column with this definition would be toasted,
though:

> On Fri, Dec 28, 2012 at 10:53 AM, Alejandro Carrillo <fasterzip@yahoo.es> wrote:

> > Create table hola(
> > id bigserial,
> > dato1 varchar(199) not null,
> > fecha date
> > );


--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


Re: pg_dirtyread doesnt work

From
Alejandro Carrillo
Date:
So I going to say, Alvaro.
The table structure should not create a table with TOAST


De: Alvaro Herrera <alvherre@2ndquadrant.com>
Para: Phil Sorber <phil@omniti.com>
CC: Alejandro Carrillo <fasterzip@yahoo.es>; "pgsql-general@postgresql.org" <pgsql-general@postgresql.org>
Enviado: Viernes 28 de diciembre de 2012 15:10
Asunto: Re: [GENERAL] pg_dirtyread doesnt work

Phil Sorber escribió:
> Most likely it's because of TOAST'd records. The module is pretty
> naive and needs to be updated to handle such cases.

It doesn't look like a column with this definition would be toasted,
though:

> On Fri, Dec 28, 2012 at 10:53 AM, Alejandro Carrillo <fasterzip@yahoo.es> wrote:

> > Create table hola(
> > id bigserial,
> > dato1 varchar(199) not null,
> > fecha date
> > );


--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


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