Tom Lane <t...@sss.pgh.pa.us> wrote:
 
> Egad.  If that's it, my confidence in the amount of testing SSI
> has gotten has just dropped dramatically.
 
If I'm reading this correctly, it would appear that nobody has
updated anything to a TOASTed value in a build against HEAD in
testing *anything* in the last two and a half months.  And the
regression tests don't include a single UPDATE to a TOASTed value
anywhere.  That seems like a significant code coverage deficiency.
 
Attached is a patch to cure the latter of these.  I'm submitting
this separately since it seems a good idea regardless of what
happens with the related SSI issue.
 
It is, of course, no excuse for making a dumb mistake like that, but
it wouldn't have survived the day on my machine or Dan's, much less
been submitted as a patch or committed, with the attached general
test of update-to-TOAST functionality in the regression tests.
 
-Kevin

*** a/src/test/regress/expected/update.out
--- b/src/test/regress/expected/update.out
***************
*** 87,90 **** ERROR:  invalid reference to FROM-clause entry for table 
"update_test"
--- 87,99 ----
  LINE 1: UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a...
                                          ^
  HINT:  Perhaps you meant to reference the table alias "t".
+ -- Make sure that we can update to a TOASTed value.
+ UPDATE update_test SET c = repeat('x', 10000) WHERE c = 'car';
+ SELECT a, b, char_length(c) FROM update_test;
+   a  | b  | char_length 
+ -----+----+-------------
+  100 | 20 |            
+   11 | 41 |       10000
+ (2 rows)
+ 
  DROP TABLE update_test;
*** a/src/test/regress/sql/update.sql
--- b/src/test/regress/sql/update.sql
***************
*** 54,57 **** UPDATE update_test SET (a,b) = (select a,b FROM update_test 
where c = 'foo')
--- 54,61 ----
  -- to the original table name
  UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a = 10;
  
+ -- Make sure that we can update to a TOASTed value.
+ UPDATE update_test SET c = repeat('x', 10000) WHERE c = 'car';
+ SELECT a, b, char_length(c) FROM update_test;
+ 
  DROP TABLE update_test;
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to