Doesn't anyone around here run the regression tests on patches?
With latest CVS, rules regress test is failing with
-- Test for constraint updates/deletes
--
insert into rtest_system values ('orion', 'Linux Jan Wieck');
+ ERROR: You can't change view relation rtest_system
insert into rtest_system values ('notjw', 'WinNT Jan Wieck (notebook)');
+ ERROR: You can't change view relation rtest_system
insert into rtest_system values ('neptun', 'Fileserver');
+ ERROR: You can't change view relation rtest_system
insert into rtest_interface values ('orion', 'eth0');
insert into rtest_interface values ('orion', 'eth1');
insert into rtest_interface values ('notjw', 'eth0');
insert into rtest_interface values ('neptun', 'eth0');
insert into rtest_person values ('jw', 'Jan Wieck');
+ ERROR: You can't change view relation rtest_person
insert into rtest_person values ('bm', 'Bruce Momjian');
+ ERROR: You can't change view relation rtest_person
insert into rtest_admin values ('jw', 'orion');
insert into rtest_admin values ('jw', 'notjw');
insert into rtest_admin values ('bm', 'neptun');
update rtest_system set sysname = 'pluto' where sysname = 'neptun';
+ NOTICE: mdopen: couldn't open rtest_system: No such file or directory
+ ERROR: cannot open relation rtest_system
select * from rtest_interface;
sysname | ifname
and it goes downhill from there...
regards, tom lane
Hello,
Why is there cmax in tuple ? cxxx is used to determine
if tuple was inserted/deleted by current command or
past command. Because one command can't both insert
and delete the same tuple, only something like "cupd"
might be needed and flag which tells you whether cupd
is time of insert or delete. This saves 4byte from
header ..
devik
devik@cdi.cz wrote:
Hello,
Why is there cmax in tuple ? cxxx is used to determine
if tuple was inserted/deleted by current command or
past command. Because one command can't both insert
and delete the same tuple, only something like "cupd"
might be needed and flag which tells you whether cupd
is time of insert or delete. This saves 4byte from
header ..
If a tuple was inserted and updated in current transaction,
how could we judge if the tuple was valid for a given
ScanCommandId ?
However there could be other improvements.
Regards.
Hiroshi Inoue
devik@cdi.cz wrote:
Why is there cmax in tuple ? cxxx is used to determine
if tuple was inserted/deleted by current command or
past command. Because one command can't both insert
and delete the same tuple, only something like "cupd"
might be needed and flag which tells you whether cupd
is time of insert or delete. This saves 4byte from
header ..If a tuple was inserted and updated in current transaction,
how could we judge if the tuple was valid for a given
ScanCommandId ?
However there could be other improvements.Ahh I did not know that there is need to test tuple for
validity for some past cid. I thought that we only need
to know whether tuple has been updated by current cid
to ensure that it will not be scanned again in the same
cid... Where am I wrong ?
For example,INSENSITIVE cursors(though not implemented) ?
INSENSITIVE cursors see changes made by neither other
backends nor the backend itself.
Regards.
Hiroshi Inoue
Why is there cmax in tuple ? cxxx is used to determine
if tuple was inserted/deleted by current command or
past command. Because one command can't both insert
and delete the same tuple, only something like "cupd"
might be needed and flag which tells you whether cupd
is time of insert or delete. This saves 4byte from
header ..If a tuple was inserted and updated in current transaction,
how could we judge if the tuple was valid for a given
ScanCommandId ?
However there could be other improvements.
Ahh I did not know that there is need to test tuple for
validity for some past cid. I thought that we only need
to know whether tuple has been updated by current cid
to ensure that it will not be scanned again in the same
cid... Where am I wrong ?
devik
devik@cdi.cz writes:
Ahh I did not know that there is need to test tuple for
validity for some past cid. I thought that we only need
to know whether tuple has been updated by current cid
to ensure that it will not be scanned again in the same
cid... Where am I wrong ?
In situations like SQL function calls, it may be necessary to suspend
a table scan while we go off and do other commands, then come back and
resume the table scan. So there can be multiple scans with different
command IDs in progress within a transaction.
regards, tom lane
Tom Lane wrote:
In situations like SQL function calls, it may be necessary to suspend
a table scan while we go off and do other commands, then come back and
resume the table scan. So there can be multiple scans with different
command IDs in progress within a transaction.
Ohh yes .. you are right. Thanks for explanation.
devik