|
From: Michael P. <mic...@gm...> - 2011-08-01 05:38:22
|
Hi,
Sorry for the late reply on this topic.
Here is a little bit of feedback about your problem.
After looking closer at what was currently missing in Postgres-XC to support
SERIAL, I found that some basic mechanism to feed values on Coordinator for
stable and volatile functions is still missing.
For example, the lack of support for SERIAL is not only limited to the query
itself, it is a more fundamental error that happens for all the queries of
the type:
select * from table where column_1 = volatile_function('one_value');
By that I mean SELECT queries using functions in their WHERE clause that
cannot be evaluated on Datanodes and values have to be taken from
Coordinator to insure data consistency among the cluster. This is also the
case for INSERT as values are not determined correctly on Coordinator. This
is also the case for DELETE and UPDATE clauses using non-immutable functions
in their WHERE clause.
For example, a simple INSERT query symbolizing this problem would be:
create table aa (int serial) distribute by replication;
insert into aa values (nextval('sequ'));
insert into aa values (DEFAULT);
In those cases we need to calculate the value on Coordinator and then
distribute the same value among nodes.
>From August, we will begin to investigate those problems. But it needs some
fundamental work and may need a bit of time.
However, once such a mechanism will be in place, supporting serial tables is
a piece of cake.
Regards,
--
Michael Paquier
http://michael.otacoo.com
|