thank you.

I use the cursor because I really do an update against a different table based  
on a value from the select in the original table.  I am eagerly awaiting 8.0 
and the ability to issue an Update Table1 Set Table1.col = Table2.col Using 
(Select y from Table2)

Mike

On Thu, Jan 13, 2005 at 04:58:06PM -0500, Tom Lane wrote:
> "Mike G." <[EMAIL PROTECTED]> writes:
> > I have a function that reads through one table via a cursor to make updates 
> > to a different table.  There is a row in this table with a column that has 
> > a null value.  The following row, in that same column, is not null.  
> > When the cursor loops through the table it seems to be treating the non 
> > null row as being null.  The fetch should be inserting the new non value 
> > into the variable but doesn't appear to be.
> 
> You did "select count(name)", which counts the number of non-null
> occurrences of "name", ie 2.  So the loop stops after two iterations,
> and never gets to the last row.
> 
> I'd lose the count() step entirely and have the loop be driven solely by
> the cursor.  Actually, why use a cursor at all, as opposed to a FOR IN
> SELECT loop?
> 
>                       regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
> 
>                http://archives.postgresql.org

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to