From: Ashutosh B. <ash...@en...> - 2012-06-20 03:47:07
|
One fix, I can think of is to create volatile functions only on coordinator. Although, I would still take a step back, and find out why we took the decision not to store views on the datanodes. On Wed, Jun 20, 2012 at 6:10 AM, Michael Paquier <mic...@gm...>wrote: > > > On Tue, Jun 19, 2012 at 4:41 PM, Dimitrije Radojevic <tem...@gm... > > wrote: > >> Hi, >> >> I have encountered a problem when using view types within a function. I >> read the documentation on VIEW to check if this functionality is not yet >> implemented in Postgres-XC, but I couldn't find it, so I'm guessing this is >> supposed to be a bug report (though I am not sure, this may just be a >> missing feature). Here's my test case: >> >> 1) create a table >> CREATE TABLE test_table ( >> id SERIAL NOT NULL, >> other_id int4 NOT NULL, >> PRIMARY KEY("id") ) >> DISTRIBUTE BY REPLICATION; >> >> 2) create a view >> >> >> 3) create a function using the view >> CREATE OR REPLACE FUNCTION some_function() RETURNS SETOF some_view AS >> $body$ >> BEGIN >> RETURN QUERY SELECT * FROM some_view; >> END; >> $body$ >> LANGUAGE 'plpgsql' >> VOLATILE >> CALLED ON NULL INPUT >> SECURITY INVOKER >> COST 100; >> >> I get the following error: >> ERROR: type "some_view" does not exist >> >> This runs fine in postgres 9.1.4. >> > A view is only created on Coordinators. It is basically a projection of > the data that is located on remote Datanodes, so selecting data from a view > means that you need to fallback to a given table (or tables for a join), > and to analyse the distribution type of those tables before fetching the > data from Datanodes. So it doesn't really make sense to define view on > Datanodes. > When creating a function, we create it on all the nodes, resulting in the > error you see as the process fails at the function creation. > > This indeed looks like a bug, and based on the definition XC has about > views, it would make sense to create such functions only on Coordinators. > As you are giving a test case so it will be easier to fix this particular > function creation. > -- > Michael Paquier > http://michael.otacoo.com > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Postgres-xc-bugs mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-bugs > > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Enterprise Postgres Company |