Обсуждение: LOOP?

Поиск
Список
Период
Сортировка

LOOP?

От
"Ray Madigan"
Дата:
I am writing a trigger to inspect a row of a temporary table to determine if
the row has any null columns,  I will return as soon as I find a null
column.  I ran across this in the manual and It seems like I could use

The FOR-IN-EXECUTE statement is another way to iterate over rows:
[<<label>>]
FOR record_or_row IN EXECUTE text_expression LOOP
statements
END LOOP;

postgresql has a RECORD type which is an abstract row.

Does it have any fields to tell the length?

Does it have an accessor function like new.element(index};

I am trying to write a general function where from instance to instance the
columns in the record change.  If I can't do this I will have to create a
new function for each temporary table.

Is this possible or should I quit looking;

FOR record IN {something related to NEW } LOOP

END LOOP;




Re: LOOP?

От
Richard Huxton
Дата:
Ray Madigan wrote:
> I am writing a trigger to inspect a row of a temporary table to determine if
> the row has any null columns,  I will return as soon as I find a null
> column.  I ran across this in the manual and It seems like I could use
> 
> The FOR-IN-EXECUTE statement is another way to iterate over rows:
> [<<label>>]
> FOR record_or_row IN EXECUTE text_expression LOOP
> statements
> END LOOP;
> 
> postgresql has a RECORD type which is an abstract row.
> 
> Does it have any fields to tell the length?
> 
> Does it have an accessor function like new.element(index};

Short answer - no to the above.

You'll not find what you want in plpgsql, perhaps look at pltcl or 
plperl for this sort of thing.

--  Richard Huxton  Archonet Ltd