Add missing functions to make geom and webmercator params optional
This commit is contained in:
parent
1b815d0674
commit
8e1b659caf
@ -149,7 +149,7 @@ LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE;
|
|||||||
-- 'my_remote_table', -- mandatory, table name
|
-- 'my_remote_table', -- mandatory, table name
|
||||||
-- 'id', -- mandatory, name of the id column
|
-- 'id', -- mandatory, name of the id column
|
||||||
-- 'geom', -- optional, name of the geom column, preferably in 4326
|
-- 'geom', -- optional, name of the geom column, preferably in 4326
|
||||||
-- 'webmercator', -- optional, must be in 3857 if present
|
-- 'webmercator' -- optional, should be in 3857 if present
|
||||||
-- );
|
-- );
|
||||||
--
|
--
|
||||||
CREATE OR REPLACE FUNCTION @extschema@.CDB_SetUp_PG_Federated_Table(
|
CREATE OR REPLACE FUNCTION @extschema@.CDB_SetUp_PG_Federated_Table(
|
||||||
@ -215,7 +215,76 @@ BEGIN
|
|||||||
id_column,
|
id_column,
|
||||||
geom_expression,
|
geom_expression,
|
||||||
webmercator_expression,
|
webmercator_expression,
|
||||||
array_to_string(rest_of_cols, ','), -- rest of columns
|
array_to_string(rest_of_cols, ','),
|
||||||
|
src_table
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Grant perms to the view
|
||||||
|
EXECUTE format('GRANT SELECT ON %I TO %s', table_name, fdw_objects_name);
|
||||||
|
END
|
||||||
|
$$
|
||||||
|
LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION @extschema@.CDB_SetUp_PG_Federated_Table(
|
||||||
|
server_alias text,
|
||||||
|
schema_name name,
|
||||||
|
table_name name,
|
||||||
|
id_column name,
|
||||||
|
geom_column name
|
||||||
|
)
|
||||||
|
RETURNS void
|
||||||
|
AS $$
|
||||||
|
SELECT @extschema@.CDB_SetUp_PG_Federated_Table(
|
||||||
|
server_alias,
|
||||||
|
schema_name,
|
||||||
|
table_name,
|
||||||
|
id_column,
|
||||||
|
geom_column,
|
||||||
|
geom_column
|
||||||
|
);
|
||||||
|
$$
|
||||||
|
LANGUAGE SQL VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION @extschema@.CDB_SetUp_PG_Federated_Table(
|
||||||
|
server_alias text,
|
||||||
|
schema_name name,
|
||||||
|
table_name name,
|
||||||
|
id_column name
|
||||||
|
)
|
||||||
|
RETURNS void
|
||||||
|
AS $$
|
||||||
|
DECLARE
|
||||||
|
fdw_objects_name NAME := @extschema@.__CDB_User_FDW_Object_Names(server_alias);
|
||||||
|
src_table REGCLASS;
|
||||||
|
rest_of_cols TEXT[];
|
||||||
|
BEGIN
|
||||||
|
-- Import the foreign table
|
||||||
|
PERFORM CDB_SetUp_User_PG_FDW_Table(server_alias, schema_name, table_name);
|
||||||
|
src_table := format('%s.%s', fdw_objects_name, table_name);
|
||||||
|
|
||||||
|
-- Check id_column is numeric
|
||||||
|
PERFORM @extschema@.__ft_assert_numeric(src_table, id_column);
|
||||||
|
|
||||||
|
-- Get a list of columns excluding the id
|
||||||
|
SELECT ARRAY(
|
||||||
|
SELECT quote_ident(c) FROM @extschema@.__ft_getcolumns(src_table) AS c
|
||||||
|
WHERE c <> id_column
|
||||||
|
) INTO rest_of_cols;
|
||||||
|
|
||||||
|
-- Create a view with homogeneous CDB fields
|
||||||
|
EXECUTE format(
|
||||||
|
'CREATE OR REPLACE VIEW %1$I AS
|
||||||
|
SELECT
|
||||||
|
t.%2$I AS cartodb_id,
|
||||||
|
NULL AS the_geom,
|
||||||
|
NULL AS the_geom_webmercator,
|
||||||
|
%3$s
|
||||||
|
FROM %4$s t',
|
||||||
|
table_name,
|
||||||
|
id_column,
|
||||||
|
array_to_string(rest_of_cols, ','),
|
||||||
src_table
|
src_table
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user