Add tests for CSV foreign data wrapper.
authorShigeru Hanada <[email protected]>
Thu, 14 Oct 2010 07:26:57 +0000 (16:26 +0900)
committerShigeru Hanada <[email protected]>
Thu, 14 Oct 2010 07:26:57 +0000 (16:26 +0900)
src/test/regress/expected/foreign_data.out
src/test/regress/sql/foreign_data.sql

index ae60a9135eabce3ee6688e5bc7580c4092fa535e..b1c0c91104e66b5e1380ddf5a01ce194e4569e8f 100644 (file)
@@ -16,13 +16,15 @@ CREATE ROLE unprivileged_role;
 CREATE SCHEMA foreign_schema;
 CREATE FOREIGN DATA WRAPPER dummy;
 CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator;
+CREATE FOREIGN DATA WRAPPER csv VALIDATOR csv_fdw_validator HANDLER csv_fdw_handler;
 -- At this point we should have 2 built-in wrappers and no servers.
 SELECT fdwname, fdwvalidator::regproc, fdwhandler::regproc, fdwoptions FROM pg_foreign_data_wrapper ORDER BY fdwname;
-  fdwname   |       fdwvalidator       | fdwhandler | fdwoptions 
-------------+--------------------------+------------+------------
- dummy      | -                        | -          | 
- postgresql | postgresql_fdw_validator | -          | 
-(2 rows)
+  fdwname   |       fdwvalidator       |   fdwhandler    | fdwoptions 
+------------+--------------------------+-----------------+------------
+ csv        | csv_fdw_validator        | csv_fdw_handler | 
+ dummy      | -                        | -               | 
+ postgresql | postgresql_fdw_validator | -               | 
+(3 rows)
 
 SELECT srvname, srvoptions FROM pg_foreign_server;
  srvname | srvoptions 
@@ -39,39 +41,42 @@ CREATE FOREIGN DATA WRAPPER foo VALIDATOR bar;            -- ERROR
 ERROR:  function bar(text[], oid) does not exist
 CREATE FOREIGN DATA WRAPPER foo;
 \dew
-                    List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         
-------------+-------------------+---------+--------------------------
- dummy      | foreign_data_user | -       | -
- foo        | foreign_data_user | -       | -
- postgresql | foreign_data_user | -       | postgresql_fdw_validator
-(3 rows)
+                        List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         
+------------+-------------------+-----------------+--------------------------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator
+ dummy      | foreign_data_user | -               | -
+ foo        | foreign_data_user | -               | -
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator
+(4 rows)
 
 CREATE FOREIGN DATA WRAPPER foo; -- duplicate
 ERROR:  foreign-data wrapper "foo" already exists
 DROP FOREIGN DATA WRAPPER foo;
 CREATE FOREIGN DATA WRAPPER foo OPTIONS (testing '1');
 \dew+
-                                     List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges |   Options   
-------------+-------------------+---------+--------------------------+-------------------+-------------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | {testing=1}
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                         List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges |   Options   
+------------+-------------------+-----------------+--------------------------+-------------------+-------------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | {testing=1}
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 DROP FOREIGN DATA WRAPPER foo;
 CREATE FOREIGN DATA WRAPPER foo OPTIONS (testing '1', testing '2');   -- ERROR
 ERROR:  option "testing" provided more than once
 CREATE FOREIGN DATA WRAPPER foo OPTIONS (testing '1', another '2');
 \dew+
-                                          List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges |        Options        
-------------+-------------------+---------+--------------------------+-------------------+-----------------------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | {testing=1,another=2}
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                              List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges |        Options        
+------------+-------------------+-----------------+--------------------------+-------------------+-----------------------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | {testing=1,another=2}
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 DROP FOREIGN DATA WRAPPER foo;
 SET ROLE regress_test_role;
@@ -81,13 +86,14 @@ HINT:  Must be superuser to create a foreign-data wrapper.
 RESET ROLE;
 CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
 \dew+
-                                   List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges | Options 
-------------+-------------------+---------+--------------------------+-------------------+---------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | postgresql_fdw_validator |                   | 
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                       List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges | Options 
+------------+-------------------+-----------------+--------------------------+-------------------+---------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 -- ALTER FOREIGN DATA WRAPPER
 ALTER FOREIGN DATA WRAPPER foo;                             -- ERROR
@@ -98,13 +104,14 @@ ALTER FOREIGN DATA WRAPPER foo VALIDATOR bar;               -- ERROR
 ERROR:  function bar(text[], oid) does not exist
 ALTER FOREIGN DATA WRAPPER foo NO VALIDATOR;
 \dew+
-                                   List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges | Options 
-------------+-------------------+---------+--------------------------+-------------------+---------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | 
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                       List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges | Options 
+------------+-------------------+-----------------+--------------------------+-------------------+---------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | 
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (a '1', b '2');
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (SET c '4');         -- ERROR
@@ -113,35 +120,38 @@ ALTER FOREIGN DATA WRAPPER foo OPTIONS (DROP c);            -- ERROR
 ERROR:  option "c" not found
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD x '1', DROP x);
 \dew+
-                                    List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges |  Options  
-------------+-------------------+---------+--------------------------+-------------------+-----------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | {a=1,b=2}
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                        List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges |  Options  
+------------+-------------------+-----------------+--------------------------+-------------------+-----------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | {a=1,b=2}
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (DROP a, SET b '3', ADD c '4');
 \dew+
-                                    List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges |  Options  
-------------+-------------------+---------+--------------------------+-------------------+-----------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | {b=3,c=4}
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                        List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges |  Options  
+------------+-------------------+-----------------+--------------------------+-------------------+-----------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | {b=3,c=4}
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (a '2');
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (b '4');             -- ERROR
 ERROR:  option "b" provided more than once
 \dew+
-                                      List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges |    Options    
-------------+-------------------+---------+--------------------------+-------------------+---------------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | {b=3,c=4,a=2}
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                          List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges |    Options    
+------------+-------------------+-----------------+--------------------------+-------------------+---------------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | {b=3,c=4,a=2}
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 SET ROLE regress_test_role;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');         -- ERROR
@@ -150,13 +160,14 @@ HINT:  Must be superuser to alter a foreign-data wrapper.
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 \dew+
-                                        List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges |      Options      
-------------+-------------------+---------+--------------------------+-------------------+-------------------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | {b=3,c=4,a=2,d=5}
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                            List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges |      Options      
+------------+-------------------+-----------------+--------------------------+-------------------+-------------------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | {b=3,c=4,a=2,d=5}
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role;  -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
@@ -169,13 +180,14 @@ ERROR:  permission denied to alter foreign-data wrapper "foo"
 HINT:  Must be superuser to alter a foreign-data wrapper.
 RESET ROLE;
 \dew+
-                                           List of foreign-data wrappers
-    Name    |          Owner          | Handler |        Validator         | Access privileges |      Options      
-------------+-------------------------+---------+--------------------------+-------------------+-------------------
- dummy      | foreign_data_user       | -       | -                        |                   | 
- foo        | regress_test_role_super | -       | -                        |                   | {b=3,c=4,a=2,d=5}
- postgresql | foreign_data_user       | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                               List of foreign-data wrappers
+    Name    |          Owner          |     Handler     |        Validator         | Access privileges |      Options      
+------------+-------------------------+-----------------+--------------------------+-------------------+-------------------
+ csv        | foreign_data_user       | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user       | -               | -                        |                   | 
+ foo        | regress_test_role_super | -               | -                        |                   | {b=3,c=4,a=2,d=5}
+ postgresql | foreign_data_user       | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 -- DROP FOREIGN DATA WRAPPER
 DROP FOREIGN DATA WRAPPER nonexistent;                      -- ERROR
@@ -183,13 +195,14 @@ ERROR:  foreign-data wrapper "nonexistent" does not exist
 DROP FOREIGN DATA WRAPPER IF EXISTS nonexistent;
 NOTICE:  foreign-data wrapper "nonexistent" does not exist, skipping
 \dew+
-                                           List of foreign-data wrappers
-    Name    |          Owner          | Handler |        Validator         | Access privileges |      Options      
-------------+-------------------------+---------+--------------------------+-------------------+-------------------
- dummy      | foreign_data_user       | -       | -                        |                   | 
- foo        | regress_test_role_super | -       | -                        |                   | {b=3,c=4,a=2,d=5}
- postgresql | foreign_data_user       | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                               List of foreign-data wrappers
+    Name    |          Owner          |     Handler     |        Validator         | Access privileges |      Options      
+------------+-------------------------+-----------------+--------------------------+-------------------+-------------------
+ csv        | foreign_data_user       | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user       | -               | -                        |                   | 
+ foo        | regress_test_role_super | -               | -                        |                   | {b=3,c=4,a=2,d=5}
+ postgresql | foreign_data_user       | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 DROP ROLE regress_test_role_super;                          -- ERROR
 ERROR:  role "regress_test_role_super" cannot be dropped because some objects depend on it
@@ -203,24 +216,26 @@ ALTER ROLE regress_test_role_super SUPERUSER;
 DROP FOREIGN DATA WRAPPER foo;
 DROP ROLE regress_test_role_super;
 \dew+
-                                   List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges | Options 
-------------+-------------------+---------+--------------------------+-------------------+---------
- dummy      | foreign_data_user | -       | -                        |                   | 
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(2 rows)
+                                       List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges | Options 
+------------+-------------------+-----------------+--------------------------+-------------------+---------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(3 rows)
 
 CREATE FOREIGN DATA WRAPPER foo;
 CREATE SERVER s1 FOREIGN DATA WRAPPER foo;
 CREATE USER MAPPING FOR current_user SERVER s1;
 \dew+
-                                   List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges | Options 
-------------+-------------------+---------+--------------------------+-------------------+---------
- dummy      | foreign_data_user | -       | -                        |                   | 
- foo        | foreign_data_user | -       | -                        |                   | 
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(3 rows)
+                                       List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges | Options 
+------------+-------------------+-----------------+--------------------------+-------------------+---------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ foo        | foreign_data_user | -               | -                        |                   | 
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(4 rows)
 
 \des+
                                     List of foreign servers
@@ -251,12 +266,13 @@ NOTICE:  drop cascades to 2 other objects
 DETAIL:  drop cascades to server s1
 drop cascades to user mapping for foreign_data_user
 \dew+
-                                   List of foreign-data wrappers
-    Name    |       Owner       | Handler |        Validator         | Access privileges | Options 
-------------+-------------------+---------+--------------------------+-------------------+---------
- dummy      | foreign_data_user | -       | -                        |                   | 
- postgresql | foreign_data_user | -       | postgresql_fdw_validator |                   | 
-(2 rows)
+                                       List of foreign-data wrappers
+    Name    |       Owner       |     Handler     |        Validator         | Access privileges | Options 
+------------+-------------------+-----------------+--------------------------+-------------------+---------
+ csv        | foreign_data_user | csv_fdw_handler | csv_fdw_validator        |                   | 
+ dummy      | foreign_data_user | -               | -                        |                   | 
+ postgresql | foreign_data_user | -               | postgresql_fdw_validator |                   | 
+(3 rows)
 
 \des+
                               List of foreign servers
@@ -783,10 +799,11 @@ DROP FOREIGN TABLE foreign_schema.foreign_table_1;
 SELECT * FROM information_schema.foreign_data_wrappers ORDER BY 1, 2;
  foreign_data_wrapper_catalog | foreign_data_wrapper_name | authorization_identifier | library_name | foreign_data_wrapper_language 
 ------------------------------+---------------------------+--------------------------+--------------+-------------------------------
+ regression                   | csv                       | foreign_data_user        |              | c
  regression                   | dummy                     | foreign_data_user        |              | c
  regression                   | foo                       | foreign_data_user        |              | c
  regression                   | postgresql                | foreign_data_user        |              | c
-(3 rows)
+(4 rows)
 
 SELECT * FROM information_schema.foreign_data_wrapper_options ORDER BY 1, 2, 3;
  foreign_data_wrapper_catalog | foreign_data_wrapper_name | option_name  | option_value 
@@ -1141,6 +1158,7 @@ DETAIL:  privileges for foreign-data wrapper postgresql
 REVOKE ALL ON FOREIGN DATA WRAPPER postgresql FROM unprivileged_role;
 DROP ROLE unprivileged_role;
 DROP ROLE regress_test_role2;
+DROP FOREIGN DATA WRAPPER csv CASCADE;
 DROP FOREIGN DATA WRAPPER postgresql CASCADE;
 DROP FOREIGN DATA WRAPPER dummy CASCADE;
 \c
index 591808b184d7cf1682910a3143ce0f708ceddffa..3120e53800ac77427df57fef83385c552389d772 100644 (file)
@@ -24,6 +24,7 @@ CREATE SCHEMA foreign_schema;
 
 CREATE FOREIGN DATA WRAPPER dummy;
 CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator;
+CREATE FOREIGN DATA WRAPPER csv VALIDATOR csv_fdw_validator HANDLER csv_fdw_handler;
 
 -- At this point we should have 2 built-in wrappers and no servers.
 SELECT fdwname, fdwvalidator::regproc, fdwhandler::regproc, fdwoptions FROM pg_foreign_data_wrapper ORDER BY fdwname;
@@ -464,6 +465,7 @@ DROP ROLE unprivileged_role;                                -- ERROR
 REVOKE ALL ON FOREIGN DATA WRAPPER postgresql FROM unprivileged_role;
 DROP ROLE unprivileged_role;
 DROP ROLE regress_test_role2;
+DROP FOREIGN DATA WRAPPER csv CASCADE;
 DROP FOREIGN DATA WRAPPER postgresql CASCADE;
 DROP FOREIGN DATA WRAPPER dummy CASCADE;
 \c