> I'm seeing the following failure in the rules regress test:
...
> The actual result corresponds to the former output, and is indeed what
> I would expect, given that text_timestamp() is (and should be)
> non-cachable. Are you sure this expected file is correct?
It was, when I had marked that function as cachable. I went through the
catalog one last time and changed it back (apparently).
> I'm also seeing rather massive failures in horology, but this evidently
> is because horology-no-DST-before-1970.out hasn't been updated ...
Right. I've got one failure in horology myself, since one test was
sensitive to DST and has a transition which apparently happened last
night!
Both should be fixed now. Or would be if cvs.postgresql.org was
responding to requests for ssh. I've enclosed a patch file to be
applied, if you would like to do the honors.
I don't have the right kind of box to be able to test horology for the
"pre1970 crowd" myself, so others will have to do it.
- ThomasIndex: expected/horology.out
===================================================================
RCS file: /home/thomas/cvs/repository/pgsql/src/test/regress/expected/horology.out,v
retrieving revision 1.27
diff -c -r1.27 horology.out
*** expected/horology.out 2001/09/28 07:59:52 1.27
--- expected/horology.out 2001/09/29 08:18:48
***************
*** 548,555 ****
03:31:00
(1 row)
! SELECT CAST(CAST(date 'today' + time with time zone '03:30'
! + interval '1 month 04:01' AS time with time zone) AS time) AS "07:31:00";
07:31:00
----------
07:31:00
--- 548,555 ----
03:31:00
(1 row)
! SELECT CAST(cast(date 'today' + time with time zone '03:30-08'
! + interval '1 month 04:01' as timestamp without time zone) AS time) AS "07:31:00";
07:31:00
----------
07:31:00
Index: expected/rules.out
===================================================================
RCS file: /home/thomas/cvs/repository/pgsql/src/test/regress/expected/rules.out,v
retrieving revision 1.44
diff -c -r1.44 rules.out
*** expected/rules.out 2001/09/28 07:59:53 1.44
--- expected/rules.out 2001/09/29 08:19:59
***************
*** 1308,1315 ****
SELECT tablename, rulename, definition FROM pg_rules
ORDER BY tablename, rulename;
! tablename | rulename |
definition
!
---------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rtest_emp | rtest_emp_del | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog
(ename,who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired '::bpchar, '$0.00'::money,
old.salary);
rtest_emp | rtest_emp_ins | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog
(ename,who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired '::bpchar, new.salary,
'$0.00'::money);
rtest_emp | rtest_emp_upd | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <>
old.salary)DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(),
'honored '::bpchar, new.salary, old.salary);
--- 1308,1315 ----
SELECT tablename, rulename, definition FROM pg_rules
ORDER BY tablename, rulename;
! tablename | rulename |
definition
!
---------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rtest_emp | rtest_emp_del | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog
(ename,who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired '::bpchar, '$0.00'::money,
old.salary);
rtest_emp | rtest_emp_ins | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog
(ename,who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired '::bpchar, new.salary,
'$0.00'::money);
rtest_emp | rtest_emp_upd | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <>
old.salary)DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(),
'honored '::bpchar, new.salary, old.salary);
***************
*** 1335,1341 ****
shoelace | shoelace_del | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM
shoelace_dataWHERE (shoelace_data.sl_name = old.sl_name);
shoelace | shoelace_ins | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO
shoelace_data(sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color,
new.sl_len,new.sl_unit);
shoelace | shoelace_upd | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data
SETsl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit
WHERE(shoelace_data.sl_name = old.sl_name);
! shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <>
old.sl_avail)DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al
Bundy'::name,'Thu Jan 01 00:00:00 1970'::"timestamp");
shoelace_ok | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace
SETsl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name);
(27 rows)
--- 1335,1341 ----
shoelace | shoelace_del | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM
shoelace_dataWHERE (shoelace_data.sl_name = old.sl_name);
shoelace | shoelace_ins | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO
shoelace_data(sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color,
new.sl_len,new.sl_unit);
shoelace | shoelace_upd | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data
SETsl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit
WHERE(shoelace_data.sl_name = old.sl_name);
! shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <>
old.sl_avail)DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al
Bundy'::name,"timestamp"('epoch'::text));
shoelace_ok | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace
SETsl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name);
(27 rows)
Index: sql/horology.sql
===================================================================
RCS file: /home/thomas/cvs/repository/pgsql/src/test/regress/sql/horology.sql,v
retrieving revision 1.16
diff -c -r1.16 horology.sql
*** sql/horology.sql 2001/09/28 08:00:11 1.16
--- sql/horology.sql 2001/09/29 08:17:34
***************
*** 87,94 ****
SELECT CAST(CAST(date 'today' + time with time zone '01:30'
+ interval '02:01' AS time with time zone) AS time) AS "03:31:00";
! SELECT CAST(CAST(date 'today' + time with time zone '03:30'
! + interval '1 month 04:01' AS time with time zone) AS time) AS "07:31:00";
SELECT interval '04:30' - time with time zone '01:02-05' AS "20:32:00-05";
--- 87,94 ----
SELECT CAST(CAST(date 'today' + time with time zone '01:30'
+ interval '02:01' AS time with time zone) AS time) AS "03:31:00";
! SELECT CAST(cast(date 'today' + time with time zone '03:30-08'
! + interval '1 month 04:01' as timestamp without time zone) AS time) AS "07:31:00";
SELECT interval '04:30' - time with time zone '01:02-05' AS "20:32:00-05";