dbTalk Databases Forums  

[Info-Ingres] Effect of errors in a table procedure

comp.databases.ingres comp.databases.ingres


Discuss [Info-Ingres] Effect of errors in a table procedure in the comp.databases.ingres forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Martin Bowes
 
Posts: n/a

Default [Info-Ingres] Effect of errors in a table procedure - 01-20-2012 , 05:15 AM






Hi All,

In a DEP if an error occurs then a certain set of events occur. Things like:

* no byref parameters are updated,

* a rollback of all statements upto the error occurs,

* execution recommences from the first statement after the one which produces the error.

So in a Row producing or Table procedure what should happen?

What if I've already generated some rows?

create procedure is_date(
a_string varchar(40) not null not default
)
result row myrow (is_date integer not null)
as declare
int_date ingresdate not null not default;
int_string varchar(40) not null not default;
a_date integer not null not default;
begin
for select :a_string into :int_string
do
int_date = date(:a_string);
select iierrornumber into :a_date;
return row (:a_date);
endfor;
end;
\p\g
declare global temporary table x_date(
a_string varchar(40) not null not default
) on commit preserve rows with norecovery;
insert into x_date(a_string) values('1/1/2011 11:13:45');
insert into x_date(a_string) values('1/11/2010');
insert into x_date(a_string) values('not a date');
insert into x_date(a_string) values('31/1/2002');
\p\g
select x.a_string, y.is_date
from x_date x, is_date(a_string = x.a_string) y
\p\g

On execution this will produce:
E_US10CE 'not a date' is not a valid date/time value.
E_QE0018 Illegal parameter in control block.

What do people think should happen here?

Marty

Reply With Quote
  #2  
Old   
Roy Hann
 
Posts: n/a

Default Re: [Info-Ingres] Effect of errors in a table procedure - 01-20-2012 , 05:32 AM






Martin Bowes wrote:

Quote:
Hi All,

In a DEP if an error occurs then a certain set of events occur. Things like:

* no byref parameters are updated,

* a rollback of all statements upto the error occurs,

* execution recommences from the first statement after the one which produces the error.

So in a Row producing or Table procedure what should happen?

What if I've already generated some rows?
[snip]

Quote:
On execution this will produce:
E_US10CE 'not a date' is not a valid date/time value.
E_QE0018 Illegal parameter in control block.

What do people think should happen here?
Atomic fail. End of.

--
Roy

UK Ingres User Association Conference 2012 will be on Tuesday June 19 2012.
The latest information is available from www.uk-iua.org.uk.

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.