"Becker, Holger" wrote:

> The internal stack code generated from the sql seems to be corrupted.

Whee, lucky me ;-D


> To bypass this problem drop the indexes.

I've done this, it "works"...


> To analyze this problem I need information about the table and index
> definition could you please post it here or send directly to me.

Ok, these are all the DDL queries relating to the creation of the ticket
table, the database creation program is a perl application, so there is
no single SQL file, this was extracted by printing the queries relating
to "ticket".

The new indexes that uncovered the bug are the ones starting with 'fk_':

SQL: CREATE TABLE "ticket" (
  OWNER_DUDE_ID INTEGER NOT NULL DEFAULT NULL,
  ARRIVED INTEGER NOT NULL DEFAULT 0,
  TICKET_TYPE_ID INTEGER NOT NULL DEFAULT NULL,
  TICKET_ID VARCHAR(29) NOT NULL DEFAULT NULL,
  SEATER_DUDE_ID INTEGER DEFAULT NULL,
  ORDER_ID INTEGER DEFAULT NULL,
  UPDATED INTEGER NOT NULL DEFAULT NULL,
  CREATED INTEGER NOT NULL DEFAULT NULL,
  SEAT_ID INTEGER DEFAULT NULL,
  USER_DUDE_ID INTEGER DEFAULT NULL,
  PRIMARY KEY(TICKET_ID)
)
SQL: ALTER TABLE "ticket" ADD FOREIGN KEY (SEATER_DUDE_ID) REFERENCES
"dude"(DUDE_ID)
SQL: ALTER TABLE "ticket" ADD FOREIGN KEY (TICKET_TYPE_ID) REFERENCES
"ticket_type"(TICKET_TYPE_ID)
SQL: ALTER TABLE "ticket" ADD FOREIGN KEY (ORDER_ID) REFERENCES
"order"(ORDER_ID)
SQL: ALTER TABLE "ticket" ADD FOREIGN KEY (OWNER_DUDE_ID) REFERENCES
"dude"(DUDE_ID)
SQL: ALTER TABLE "ticket" ADD FOREIGN KEY (USER_DUDE_ID) REFERENCES
"dude"(DUDE_ID)
SQL: ALTER TABLE "ticket" ADD FOREIGN KEY (SEAT_ID) REFERENCES
"seat"(SEAT_ID)
SQL: CREATE INDEX "fk_SEATER_DUDE_ID" ON "ticket" (SEATER_DUDE_ID)
SQL: CREATE INDEX "fk_ORDER_ID" ON "ticket" (ORDER_ID)
SQL: CREATE INDEX "fk_TICKET_TYPE_ID" ON "ticket" (TICKET_TYPE_ID)
SQL: CREATE INDEX "fk_USER_DUDE_ID" ON "ticket" (USER_DUDE_ID)
SQL: CREATE INDEX "fk_OWNER_DUDE_ID" ON "ticket" (OWNER_DUDE_ID)
SQL: CREATE UNIQUE INDEX "SEAT_ID" ON "ticket" (SEAT_ID)
SQL: CREATE TRIGGER "ticket_insert" FOR "ticket" AFTER INSERT EXECUTE (
TRY
   INSERT INTO TEST.changelog (changelog_id,event,oid) values
(CHANGELOG_id_sequence.nextval,'I','ticket:'&RTRIM(:NEW.TICKET_ID));

CATCH
  IF $rc <> 100
  THEN STOP ($rc, 'In trigger ticket_insert: '&$errmsg);
)
SQL: CREATE TRIGGER "ticket_update" FOR "ticket" AFTER UPDATE EXECUTE (
TRY
   INSERT INTO TEST.changelog (changelog_id,event,oid) values
(CHANGELOG_id_sequence.nextval,'U','ticket:'&RTRIM(:OLD.TICKET_ID));

CATCH
  IF $rc <> 100
  THEN STOP ($rc, 'In trigger ticket_update: '&$errmsg);
)
SQL: CREATE TRIGGER "ticket_delete" FOR "ticket" AFTER DELETE EXECUTE (
TRY
   INSERT INTO TEST.changelog (changelog_id,event,oid) values
(CHANGELOG_id_sequence.nextval,'D','ticket:'&RTRIM(:OLD.TICKET_ID));

CATCH
  IF $rc <> 100
  THEN STOP ($rc, 'In trigger ticket_delete: '&$errmsg);
)

-- 
 Regards Flemming Frandsen aka. Dion/Swamp http://dion.swamp.dk
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to