1 | one
(1 row)
+\c test_part
+create function remote_func(a varchar, b varchar, c varchar)
+returns void as $$
+begin
+ return;
+end;
+$$ language plpgsql;
+\c regression
+CREATE OR REPLACE FUNCTION test1(x integer, a varchar, b varchar, c varchar)
+RETURNS void AS $$
+CLUSTER 'testcluster';
+RUN ON 0;
+SELECT * FROM remote_func(a, b, c);
+$$ LANGUAGE plproxy;
+select * from test1(1, 'a', NULL,NULL);
+ test1
+-------
+
+(1 row)
+
+select * from test1(1, NULL, NULL,NULL);
+ test1
+-------
+
+(1 row)
+
+CREATE OR REPLACE FUNCTION test2(a varchar, b varchar, c varchar)
+RETURNS void AS $$
+CLUSTER 'testcluster';
+RUN ON 0;
+SELECT * FROM remote_func(a, b, c);
+$$ LANGUAGE plproxy;
+select * from test2(NULL, NULL, NULL);
+ test2
+-------
+
+(1 row)
+
+select * from test2('a', NULL, NULL);
+ test2
+-------
+
+(1 row)
+
+CREATE OR REPLACE FUNCTION test3(a varchar, b varchar, c varchar)
+RETURNS void AS $$
+CLUSTER 'testcluster';
+RUN ON 0;
+SELECT * FROM remote_func(a, c, b);
+$$ LANGUAGE plproxy;
+select * from test3(NULL,NULL, 'a');
+ test3
+-------
+
+(1 row)
+
+select * from test3('a', NULL,NULL);
+ test3
+-------
+
+(1 row)
+
$x$ language plproxy;
select * from get_one();
+
+
+\c test_part
+create function remote_func(a varchar, b varchar, c varchar)
+returns void as $$
+begin
+ return;
+end;
+$$ language plpgsql;
+
+\c regression
+CREATE OR REPLACE FUNCTION test1(x integer, a varchar, b varchar, c varchar)
+RETURNS void AS $$
+CLUSTER 'testcluster';
+RUN ON 0;
+SELECT * FROM remote_func(a, b, c);
+$$ LANGUAGE plproxy;
+
+select * from test1(1, 'a', NULL,NULL);
+select * from test1(1, NULL, NULL,NULL);
+
+CREATE OR REPLACE FUNCTION test2(a varchar, b varchar, c varchar)
+RETURNS void AS $$
+CLUSTER 'testcluster';
+RUN ON 0;
+SELECT * FROM remote_func(a, b, c);
+$$ LANGUAGE plproxy;
+
+select * from test2(NULL, NULL, NULL);
+select * from test2('a', NULL, NULL);
+
+
+CREATE OR REPLACE FUNCTION test3(a varchar, b varchar, c varchar)
+RETURNS void AS $$
+CLUSTER 'testcluster';
+RUN ON 0;
+SELECT * FROM remote_func(a, c, b);
+$$ LANGUAGE plproxy;
+
+select * from test3(NULL,NULL, 'a');
+select * from test3('a', NULL,NULL);
+
+
+
+
+
+
+
+
+
gotbin = 0;
for (i = 0; i < func->remote_sql->arg_count; i++)
{
+ int idx = func->remote_sql->arg_lookup[i];
plengths[i] = 0;
pformats[i] = 0;
- if (PG_ARGISNULL(i))
+ if (PG_ARGISNULL(idx))
{
values[i] = NULL;
}
else
{
- int idx = func->remote_sql->arg_lookup[i];
bool bin = cluster->config.disable_binary ? 0 : 1;
values[i] = plproxy_send_type(func->arg_types[idx],