Hi, hackers

I have a problem at PostgreSQL 8.3.5 (Slackware Server and Win 2003 Server)
SO independent.

When run the scripts below I receive the error:

---------------------------------------------------------------------------
testes=# DELETE FROM pai WHERE co_pai = 1;
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
---------------------------------------------------------------------------

The script creates the father table, son and grandson. All conected with FK
Cascade.

I changed the comportment of the pg_trigger to postpone the validation of
constraint
(make compatible with 7.4 version because we migrate it).

When I delete the father register the next error ocourr.

PS1.: On Windows need reinicialize the service.
PS2.: On Linux all connection down but not is needed reinicialize the
service.
PS3.: I make a test on 8.4 version and the same error ocourr.


-------Scripts-------
CREATE TABLE father
(
 co_father double precision NOT NULL,
 no_description character varying(50) NOT NULL,
 CONSTRAINT pk_father PRIMARY KEY (co_father)
)
WITH (OIDS=TRUE);
ALTER TABLE father OWNER TO postgres;


CREATE TABLE son
(
 co_son double precision NOT NULL,
 co_father double precision NOT NULL,
 no_description character varying(50) NOT NULL,
 CONSTRAINT pk_son PRIMARY KEY (co_son)
)
WITH (OIDS=TRUE);
ALTER TABLE son OWNER TO postgres;

CREATE TABLE grandson
(
 co_grandson double precision NOT NULL,
 co_son double precision NOT NULL,
 no_description character varying(50) NOT NULL,
 CONSTRAINT pk_grandson PRIMARY KEY (co_grandson)
)
WITH (OIDS=TRUE);
ALTER TABLE son OWNER TO postgres;

ALTER TABLE son
 ADD CONSTRAINT fk_son_father FOREIGN KEY (co_father)
     REFERENCES father (co_father) MATCH SIMPLE
     ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE grandson
 ADD CONSTRAINT fk_grandson_son FOREIGN KEY (co_son)
     REFERENCES son (co_son) MATCH SIMPLE
     ON UPDATE CASCADE ON DELETE CASCADE;

UPDATE pg_constraint SET condeferred  = TRUE, condeferrable = TRUE;
UPDATE pg_trigger SET tgdeferrable = TRUE, tginitdeferred = TRUE;

INSERT INTO father VALUES(1, 'FATHER-1');

INSERT INTO son VALUES(1,1, 'Son FATHER-1');
INSERT INTO son VALUES(2,1, 'Son FATHER-1');
INSERT INTO son VALUES(3,1, 'Son FATHER-1');

INSERT INTO grandson VALUES(1,1, 'Grandson FATHER-1');
INSERT INTO grandson VALUES(2,2, 'Grandson FATHER-1');
INSERT INTO grandson VALUES(3,3, 'Grandson FATHER-1');

DELETE FROM father WHERE co_father = 1


My LOGS
-----------------------------------------------------------------------------------------------------------

0LOG:  00000: server process (PID 23470) was terminated by signal 11:
Segmentation fault
0LOCATION:  LogChildExit, postmaster.c:2529
0LOG:  00000: terminating any other active server processes
0LOCATION:  HandleChildCrash, postmaster.c:2374
0FATAL:  57P03: the database system is in recovery mode
0LOCATION:  ProcessStartupPacket, postmaster.c:1648
0LOG:  00000: all server processes terminated; reinitializing
0LOCATION:  PostmasterStateMachine, postmaster.c:2690
0LOG:  00000: database system was interrupted; last known up at 2009-10-27
11:43:37 BRST
0LOCATION:  StartupXLOG, xlog.c:4836
0DEBUG:  00000: checkpoint record is at 1/1C865BD4
0LOCATION:  StartupXLOG, xlog.c:4906
0DEBUG:  00000: redo record is at 1/1C865BD4; shutdown TRUE
0LOCATION:  StartupXLOG, xlog.c:4932
0DEBUG:  00000: next transaction ID: 0/27113; next OID: 67190
0LOCATION:  StartupXLOG, xlog.c:4936
0DEBUG:  00000: next MultiXactId: 1; next MultiXactOffset: 0
0LOCATION:  StartupXLOG, xlog.c:4939
0LOG:  00000: database system was not properly shut down; automatic recovery
in progress
0LOCATION:  StartupXLOG, xlog.c:5003
0LOG:  00000: record with zero length at 1/1C865C14
0LOCATION:  ReadRecord, xlog.c:3126
0LOG:  00000: redo is not required
0LOCATION:  StartupXLOG, xlog.c:5146
0DEBUG:  00000: transaction ID wrap limit is 2147484026, limited by database
"template1"
0LOCATION:  SetTransactionIdLimit, varsup.c:283
0LOG:  00000: database system is ready to accept connections
0LOCATION:  reaper, postmaster.c:2156

-----------------------------------------------------------------------------------------------------------------------------

Has I know, the deletion cascade with three levels don't give this problem.
The same think occourr if I change the pg_trigger comportment to postpone
validation. This is right?

Sorry, but what wrap limit do ?

Thanks in advanced.

Sincerely,
-- 
Marcelo Costa
<http://www.marcelocosta.net>
-------------------------------------------------
“You can't always get what want”,

Doctor House in apology to Mike Jagger

Reply via email to