9010642326
This reverts commit 24cb6cf9c1
.
117 lines
8.4 KiB
Plaintext
117 lines
8.4 KiB
Plaintext
C1|
|
|
## Registering an existing table works
|
|
R1|
|
|
S1|1|POINT(1 1)|patata
|
|
S1|2|POINT(2 2)|patata2
|
|
t|remote_geom|cdb_fs_loopback.remote_geom|id|geom|geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
f|remote_geom2|||||[{"Name" : "another_field", "Type" : "text"}, {"Name" : "cartodb_id", "Type" : "bigint"}, {"Name" : "the_geom", "Type" : "GEOMETRY,4326"}, {"Name" : "the_geom_webmercator", "Type" : "GEOMETRY,3857"}]
|
|
f|remote_geom3|||||[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
f|remote_other|||||[{"Name" : "field", "Type" : "text"}, {"Name" : "field2", "Type" : "text"}, {"Name" : "id", "Type" : "bigint"}]
|
|
## Registering another existing table works
|
|
R2|
|
|
S2|3|POINT(3 3)|patata
|
|
t|remote_geom|cdb_fs_loopback.remote_geom|id|geom|geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
t|remote_geom2|cdb_fs_loopback."myFullTable"|cartodb_id|the_geom|the_geom_webmercator|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "cartodb_id", "Type" : "bigint"}, {"Name" : "the_geom", "Type" : "GEOMETRY,4326"}, {"Name" : "the_geom_webmercator", "Type" : "GEOMETRY,3857"}]
|
|
f|remote_geom3|||||[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
f|remote_other|||||[{"Name" : "field", "Type" : "text"}, {"Name" : "field2", "Type" : "text"}, {"Name" : "id", "Type" : "bigint"}]
|
|
## Re-registering a table works
|
|
R3|
|
|
ERROR: relation "cdb_fs_loopback.myFullTable" does not exist at character 49
|
|
S3_new|3|patata
|
|
## Unregistering works
|
|
U1|
|
|
ERROR: relation "remote_geom" does not exist at character 71
|
|
f|remote_geom|||||[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
t|remote_geom2|cdb_fs_loopback.different_name|cartodb_id|the_geom_webmercator|the_geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "cartodb_id", "Type" : "bigint"}, {"Name" : "the_geom", "Type" : "GEOMETRY,4326"}, {"Name" : "the_geom_webmercator", "Type" : "GEOMETRY,3857"}]
|
|
f|remote_geom3|||||[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
f|remote_other|||||[{"Name" : "field", "Type" : "text"}, {"Name" : "field2", "Type" : "text"}, {"Name" : "id", "Type" : "bigint"}]
|
|
## Registering a table: Invalid server fails
|
|
ERROR: Server "Does not exist" does not exist
|
|
## Registering a table: NULL server fails
|
|
ERROR: Server name cannot be NULL
|
|
## Registering a table: Invalid schema fails
|
|
ERROR: Could not import schema "Does not exist" of server "loopback": schema "Does not exist" is not present on foreign server "cdb_fs_loopback"
|
|
## Registering a table: NULL schema fails
|
|
ERROR: Schema name cannot be NULL
|
|
## Registering a table: Invalid table fails
|
|
ERROR: Could not import table "remote_schema.Does not exist" of server "loopback"
|
|
## Registering a table: NULL table fails
|
|
ERROR: Remote table name cannot be NULL
|
|
## Registering a table: Invalid id fails
|
|
ERROR: non integer id_column "Does not exist"
|
|
## Registering a table: NULL id fails
|
|
ERROR: non integer id_column "<NULL>"
|
|
## Registering a table: Invalid geom_column fails
|
|
ERROR: non geometry column "Does not exists"
|
|
## Registering a table: NULL geom_column is OK: Reuses geom_mercator
|
|
|
|
t|remote_geom|cdb_fs_loopback.remote_geom|id|geom|geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
|
|
## Registering a table: Invalid webmercator_column fails
|
|
ERROR: non geometry column "Does not exists"
|
|
## Registering a table: NULL webmercator_column is OK: Reuses geom
|
|
|
|
t|remote_geom|cdb_fs_loopback.remote_geom|id|geom|geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
|
|
##Registering a table with extra columns show the correct information
|
|
|
|
t|remote_geom3|cdb_fs_loopback.remote_geom3|id|geom|geom_mercator|[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
|
|
## Target conflict is handled nicely: Table
|
|
CREATE TABLE
|
|
ERROR: Could not import table "remote_geom" as "cdb_fs_loopback.localtable" already exists
|
|
## Target conflict is handled nicely: View
|
|
CREATE VIEW
|
|
ERROR: Could not import table "remote_geom" as "cdb_fs_loopback.localtable2" already exists
|
|
DROP VIEW
|
|
DROP TABLE
|
|
## Registering tables does not work without permissions
|
|
You are now connected to database "contrib_regression" as user "cdb_fs_tester".
|
|
ERROR: Not enough permissions to access the server "loopback"
|
|
## Normal users can not write in the import schema
|
|
ERROR: permission denied for schema cdb_fs_loopback at character 14
|
|
## Listing remote tables does not work without permissions
|
|
ERROR: Not enough permissions to access the server "loopback"
|
|
## Registering tables works with granted permissions
|
|
You are now connected to database "contrib_regression" as user "postgres".
|
|
|
|
You are now connected to database "contrib_regression" as user "cdb_fs_tester".
|
|
|
|
## Listing remote tables works with granted permissions
|
|
t|remote_geom|cdb_fs_loopback.localtable|id|geom|geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
t|remote_geom2|cdb_fs_loopback.different_name|cartodb_id|the_geom_webmercator|the_geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "cartodb_id", "Type" : "bigint"}, {"Name" : "the_geom", "Type" : "GEOMETRY,4326"}, {"Name" : "the_geom_webmercator", "Type" : "GEOMETRY,3857"}]
|
|
f|remote_geom3|||||[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
f|remote_other|||||[{"Name" : "field", "Type" : "text"}, {"Name" : "field2", "Type" : "text"}, {"Name" : "id", "Type" : "bigint"}]
|
|
## Selecting from a registered table with granted permissions works
|
|
1|POINT(1 1)
|
|
2|POINT(2 2)
|
|
## Selecting from a registered table without permissions does not work
|
|
You are now connected to database "contrib_regression" as user "cdb_fs_tester2".
|
|
CREATE FUNCTION
|
|
t
|
|
DROP FUNCTION
|
|
## Deleting a registered table without permissions does not work
|
|
ERROR: Not enough permissions to access the server "loopback"
|
|
## Only the owner can grant permissions over the server
|
|
ERROR: You do not have rights to grant access on "loopback"
|
|
## Everything works for a different user when granted permissions
|
|
You are now connected to database "contrib_regression" as user "postgres".
|
|
|
|
You are now connected to database "contrib_regression" as user "cdb_fs_tester2".
|
|
t|remote_geom|cdb_fs_loopback.localtable|id|geom|geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
t|remote_geom2|cdb_fs_loopback.different_name|cartodb_id|the_geom_webmercator|the_geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "cartodb_id", "Type" : "bigint"}, {"Name" : "the_geom", "Type" : "GEOMETRY,4326"}, {"Name" : "the_geom_webmercator", "Type" : "GEOMETRY,3857"}]
|
|
f|remote_geom3|||||[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
f|remote_other|||||[{"Name" : "field", "Type" : "text"}, {"Name" : "field2", "Type" : "text"}, {"Name" : "id", "Type" : "bigint"}]
|
|
1|POINT(1 1)
|
|
2|POINT(2 2)
|
|
## A different user can unregister a table
|
|
NOTICE: drop cascades to view cdb_fs_loopback.localtable
|
|
|
|
f|remote_geom|||||[{"Name" : "another_field", "Type" : "text"}, {"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "id", "Type" : "integer"}]
|
|
t|remote_geom2|cdb_fs_loopback.different_name|cartodb_id|the_geom_webmercator|the_geom|[{"Name" : "another_field", "Type" : "text"}, {"Name" : "cartodb_id", "Type" : "bigint"}, {"Name" : "the_geom", "Type" : "GEOMETRY,4326"}, {"Name" : "the_geom_webmercator", "Type" : "GEOMETRY,3857"}]
|
|
f|remote_geom3|||||[{"Name" : "geom", "Type" : "GEOMETRY,4326"}, {"Name" : "geom_mercator", "Type" : "GEOMETRY,3857"}, {"Name" : "id", "Type" : "bigint"}]
|
|
f|remote_other|||||[{"Name" : "field", "Type" : "text"}, {"Name" : "field2", "Type" : "text"}, {"Name" : "id", "Type" : "bigint"}]
|
|
## Only the owner can revoke permissions over the server
|
|
ERROR: You do not have rights to revoke access on "loopback"
|
|
D1|
|