pg_dirtyread doesnt work

Started by Alejandro Carrilloover 13 years ago5 messagesgeneral
Jump to latest
#1Alejandro Carrillo
fasterzip@yahoo.es

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

#2Alejandro Carrillo
fasterzip@yahoo.es
In reply to: Alejandro Carrillo (#1)
Re: pg_dirtyread doesnt work

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,

Show quoted text

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

#3Phil Sorber
phil@omniti.com
In reply to: Alejandro Carrillo (#2)
Re: pg_dirtyread doesnt work

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

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

#4Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Phil Sorber (#3)
Re: 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

#5Alejandro Carrillo
fasterzip@yahoo.es
In reply to: Alvaro Herrera (#4)
Re: pg_dirtyread doesnt work

So I going to say, Alvaro.
The table structure should not create a table with TOAST

Show quoted text

________________________________
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