Test around NULLs and invalids arguments
This commit is contained in:
@@ -64,9 +64,11 @@ RETURNS NAME
|
||||
AS $$
|
||||
DECLARE
|
||||
hash_value text := md5(internal_server_name::text || '__' || schema_name::text);
|
||||
schema_name text := format('%s%s%s', @extschema@.__CDB_FS_Name_Pattern(), 'schema_', hash_value);
|
||||
BEGIN
|
||||
RETURN schema_name::name;
|
||||
IF schema_name IS NULL THEN
|
||||
RAISE EXCEPTION 'Schema name cannot be NULL';
|
||||
END IF;
|
||||
RETURN format('%s%s%s', @extschema@.__CDB_FS_Name_Pattern(), 'schema_', hash_value)::name;
|
||||
END
|
||||
$$
|
||||
LANGUAGE PLPGSQL IMMUTABLE PARALLEL SAFE;
|
||||
@@ -102,7 +104,11 @@ BEGIN
|
||||
-- easy way to check for permissions and keep all objects under the same owner
|
||||
BEGIN
|
||||
EXECUTE 'SET LOCAL ROLE ' || quote_ident(role_name);
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
EXCEPTION
|
||||
WHEN invalid_parameter_value THEN
|
||||
RAISE EXCEPTION 'Server "%" does not exist',
|
||||
@extschema@.__CDB_FS_Extract_Server_Name(internal_server_name);
|
||||
WHEN OTHERS THEN
|
||||
RAISE EXCEPTION 'Not enough permissions to access the server "%"',
|
||||
@extschema@.__CDB_FS_Extract_Server_Name(internal_server_name);
|
||||
END;
|
||||
|
||||
@@ -41,8 +41,8 @@ BEGIN
|
||||
ORDER BY remote_schema
|
||||
', local_schema, remote_table, '''pg_%''');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
RAISE EXCEPTION 'Not enough permissions to access the server "%": %',
|
||||
@extschema@.__CDB_FS_Extract_Server_Name(server_internal), SQLERRM;
|
||||
RAISE EXCEPTION 'Not enough permissions to access the server "%"',
|
||||
@extschema@.__CDB_FS_Extract_Server_Name(server_internal);
|
||||
END;
|
||||
END
|
||||
$$
|
||||
@@ -238,6 +238,10 @@ DECLARE
|
||||
server_internal name := @extschema@.__CDB_FS_Generate_Server_Name(input_name := server, check_existence := true);
|
||||
server_type name := @extschema@.__CDB_FS_server_type(server_internal);
|
||||
BEGIN
|
||||
IF remote_table IS NULL THEN
|
||||
RAISE EXCEPTION 'Remote table name cannot be NULL';
|
||||
END IF;
|
||||
|
||||
CASE server_type
|
||||
WHEN 'postgres_fdw' THEN
|
||||
RETURN QUERY SELECT * FROM @extschema@.__CDB_FS_List_Foreign_Columns_PG(server_internal, remote_schema, remote_table);
|
||||
|
||||
@@ -104,6 +104,10 @@ DECLARE
|
||||
webmercator_expression TEXT;
|
||||
carto_columns_expression TEXT[];
|
||||
BEGIN
|
||||
IF remote_table IS NULL THEN
|
||||
RAISE EXCEPTION 'Remote table name cannot be NULL';
|
||||
END IF;
|
||||
|
||||
-- Use geom_column as default for webmercator_column
|
||||
IF webmercator_column IS NULL THEN
|
||||
webmercator_column := geom_column;
|
||||
|
||||
Reference in New Issue
Block a user