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
|
||||
-- 'id', -- mandatory, name of the id column
|
||||
-- '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(
|
||||
@ -215,7 +215,76 @@ BEGIN
|
||||
id_column,
|
||||
geom_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
|
||||
);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user