Re: PL/pgSQL bug?

Поиск
Список
Период
Сортировка
От Tatsuo Ishii
Тема Re: PL/pgSQL bug?
Дата
Msg-id 20010811091726V.t-ishii@sra.co.jp
обсуждение исходный текст
Ответ на Re: PL/pgSQL bug?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
> Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> > NOTICE:  ctid (0,5) xmin 645188 xmax 645190 cmin 2 cmax 2
> > This is odd too, since xmax > 0 or cmax > 0 should never happen with
> > visible tuples, in my understanding.
> 
> That's what the docs presently say, but they're in error --- nonzero
> xmax could represent a not-yet-committed deleting xact (or one that
> did commit, but not in your snapshot); or it could be from a deleting
> xact that rolled back. 
> 
> I get 
> 
> regression=# SELECT myftest(1);
> NOTICE:  Error occurred while executing PL/pgSQL function myftest
> NOTICE:  line 6 at SQL statement
> ERROR:  parser: parse error at or near "ctid"
> regression=#
> 
> so there's something wrong with the function as posted.
> 
>             regards, tom lane
> 

Sorry, please try new one attatched below.

DROP TABLE t1;
CREATE TABLE t1 (i INT PRIMARY KEY);
INSERT INTO t1 VALUES(1);
DROP FUNCTION myftest(INT);
CREATE FUNCTION myftest(INT)
RETURNS INT
AS 'DECLARE myid INT;DECLARE rec RECORD;key ALIAS FOR $1;BEGIN  UPDATE t1 SET i = 1 WHERE i = 1;  SELECT INTO myid i
FROMt1 WHERE i = (SELECT i FROM t1 WHERE i = 1);  FOR rec IN SELECT ctid,xmin,xmax,cmin,cmax from t1 LOOP      RAISE
NOTICE''ctid % xmin % xmax % cmin % cmax %'', rec.ctid,rec.xmin,rec.xmax,rec.cmin,rec.cmax;  END LOOP;  RETURN 0;
END;'LANGUAGE'plpgsql';
 


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Martín Marqués
Дата:
Сообщение: Bug?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: PL/pgSQL bug?