| 2903 | +CREATE SCHEMA import_dest2; |
| 2904 | +IMPORT FOREIGN SCHEMA import_source FROM SERVER loopback INTO import_dest2 |
| 2905 | + OPTIONS (import_default 'true'); |
| 2906 | +\det+ import_dest2 |
| 2907 | + List of foreign tables |
| 2908 | + Schema | Table | Server | FDW Options | Description |
| 2909 | +--------------+-------+----------+-------------------------------------------------+------------- |
| 2910 | + import_dest2 | t1 | loopback | (schema_name 'import_source', table_name 't1') | |
| 2911 | + import_dest2 | t2 | loopback | (schema_name 'import_source', table_name 't2') | |
| 2912 | + import_dest2 | t3 | loopback | (schema_name 'import_source', table_name 't3') | |
| 2913 | + import_dest2 | x 4 | loopback | (schema_name 'import_source', table_name 'x 4') | |
| 2914 | + import_dest2 | x 5 | loopback | (schema_name 'import_source', table_name 'x 5') | |
| 2915 | +(5 rows) |
| 2916 | + |
| 2917 | +\d import_dest2.* |
| 2918 | + Foreign table "import_dest2.t1" |
| 2919 | + Column | Type | Modifiers | FDW Options |
| 2920 | +--------+-------------------+-----------+-------------------- |
| 2921 | + c1 | integer | | (column_name 'c1') |
| 2922 | + c2 | character varying | not null | (column_name 'c2') |
| 2923 | +Server: loopback |
| 2924 | +FDW Options: (schema_name 'import_source', table_name 't1') |
| 2925 | + |
| 2926 | + Foreign table "import_dest2.t2" |
| 2927 | + Column | Type | Modifiers | FDW Options |
| 2928 | +--------+-------------------+---------------+-------------------- |
| 2929 | + c1 | integer | default 42 | (column_name 'c1') |
| 2930 | + c2 | character varying | | (column_name 'c2') |
| 2931 | + c3 | text | collate POSIX | (column_name 'c3') |
| 2932 | +Server: loopback |
| 2933 | +FDW Options: (schema_name 'import_source', table_name 't2') |
| 2934 | + |
| 2935 | + Foreign table "import_dest2.t3" |
| 2936 | + Column | Type | Modifiers | FDW Options |
| 2937 | +--------+--------------------------+---------------+-------------------- |
| 2938 | + c1 | timestamp with time zone | default now() | (column_name 'c1') |
| 2939 | + c2 | typ1 | | (column_name 'c2') |
| 2940 | +Server: loopback |
| 2941 | +FDW Options: (schema_name 'import_source', table_name 't3') |
| 2942 | + |
| 2943 | + Foreign table "import_dest2.x 4" |
| 2944 | + Column | Type | Modifiers | FDW Options |
| 2945 | +--------+-----------------------+-----------+--------------------- |
| 2946 | + c1 | double precision | | (column_name 'c1') |
| 2947 | + C 2 | text | | (column_name 'C 2') |
| 2948 | + c3 | character varying(42) | | (column_name 'c3') |
| 2949 | +Server: loopback |
| 2950 | +FDW Options: (schema_name 'import_source', table_name 'x 4') |
| 2951 | + |
| 2952 | + Foreign table "import_dest2.x 5" |
| 2953 | + Column | Type | Modifiers | FDW Options |
| 2954 | +--------+------+-----------+------------- |
| 2955 | +Server: loopback |
| 2956 | +FDW Options: (schema_name 'import_source', table_name 'x 5') |
| 2957 | + |
| 2958 | +CREATE SCHEMA import_dest3; |
| 2959 | +IMPORT FOREIGN SCHEMA import_source FROM SERVER loopback INTO import_dest3 |
| 2960 | + OPTIONS (import_collate 'false', import_not_null 'false'); |
| 2961 | +\det+ import_dest3 |
| 2962 | + List of foreign tables |
| 2963 | + Schema | Table | Server | FDW Options | Description |
| 2964 | +--------------+-------+----------+-------------------------------------------------+------------- |
| 2965 | + import_dest3 | t1 | loopback | (schema_name 'import_source', table_name 't1') | |
| 2966 | + import_dest3 | t2 | loopback | (schema_name 'import_source', table_name 't2') | |
| 2967 | + import_dest3 | t3 | loopback | (schema_name 'import_source', table_name 't3') | |
| 2968 | + import_dest3 | x 4 | loopback | (schema_name 'import_source', table_name 'x 4') | |
| 2969 | + import_dest3 | x 5 | loopback | (schema_name 'import_source', table_name 'x 5') | |
| 2970 | +(5 rows) |
| 2971 | + |
| 2972 | +\d import_dest3.* |
| 2973 | + Foreign table "import_dest3.t1" |
| 2974 | + Column | Type | Modifiers | FDW Options |
| 2975 | +--------+-------------------+-----------+-------------------- |
| 2976 | + c1 | integer | | (column_name 'c1') |
| 2977 | + c2 | character varying | | (column_name 'c2') |
| 2978 | +Server: loopback |
| 2979 | +FDW Options: (schema_name 'import_source', table_name 't1') |
| 2980 | + |
| 2981 | + Foreign table "import_dest3.t2" |
| 2982 | + Column | Type | Modifiers | FDW Options |
| 2983 | +--------+-------------------+-----------+-------------------- |
| 2984 | + c1 | integer | | (column_name 'c1') |
| 2985 | + c2 | character varying | | (column_name 'c2') |
| 2986 | + c3 | text | | (column_name 'c3') |
| 2987 | +Server: loopback |
| 2988 | +FDW Options: (schema_name 'import_source', table_name 't2') |
| 2989 | + |
| 2990 | + Foreign table "import_dest3.t3" |
| 2991 | + Column | Type | Modifiers | FDW Options |
| 2992 | +--------+--------------------------+-----------+-------------------- |
| 2993 | + c1 | timestamp with time zone | | (column_name 'c1') |
| 2994 | + c2 | typ1 | | (column_name 'c2') |
| 2995 | +Server: loopback |
| 2996 | +FDW Options: (schema_name 'import_source', table_name 't3') |
| 2997 | + |
| 2998 | + Foreign table "import_dest3.x 4" |
| 2999 | + Column | Type | Modifiers | FDW Options |
| 3000 | +--------+-----------------------+-----------+--------------------- |
| 3001 | + c1 | double precision | | (column_name 'c1') |
| 3002 | + C 2 | text | | (column_name 'C 2') |
| 3003 | + c3 | character varying(42) | | (column_name 'c3') |
| 3004 | +Server: loopback |
| 3005 | +FDW Options: (schema_name 'import_source', table_name 'x 4') |
| 3006 | + |
| 3007 | + Foreign table "import_dest3.x 5" |
| 3008 | + Column | Type | Modifiers | FDW Options |
| 3009 | +--------+------+-----------+------------- |
| 3010 | +Server: loopback |
| 3011 | +FDW Options: (schema_name 'import_source', table_name 'x 5') |
| 3012 | + |
| 3013 | +-- Check LIMIT TO and EXCEPT |
| 3014 | +CREATE SCHEMA import_dest4; |
| 3015 | +IMPORT FOREIGN SCHEMA import_source LIMIT TO (t1, nonesuch) |
| 3016 | + FROM SERVER loopback INTO import_dest4; |
| 3017 | +\det+ import_dest4 |
| 3018 | + List of foreign tables |
| 3019 | + Schema | Table | Server | FDW Options | Description |
| 3020 | +--------------+-------+----------+------------------------------------------------+------------- |
| 3021 | + import_dest4 | t1 | loopback | (schema_name 'import_source', table_name 't1') | |
| 3022 | +(1 row) |
| 3023 | + |
| 3024 | +IMPORT FOREIGN SCHEMA import_source EXCEPT (t1, "x 4", nonesuch) |
| 3025 | + FROM SERVER loopback INTO import_dest4; |
| 3026 | +\det+ import_dest4 |
| 3027 | + List of foreign tables |
| 3028 | + Schema | Table | Server | FDW Options | Description |
| 3029 | +--------------+-------+----------+-------------------------------------------------+------------- |
| 3030 | + import_dest4 | t1 | loopback | (schema_name 'import_source', table_name 't1') | |
| 3031 | + import_dest4 | t2 | loopback | (schema_name 'import_source', table_name 't2') | |
| 3032 | + import_dest4 | t3 | loopback | (schema_name 'import_source', table_name 't3') | |
| 3033 | + import_dest4 | x 5 | loopback | (schema_name 'import_source', table_name 'x 5') | |
| 3034 | +(4 rows) |
| 3035 | + |
| 3036 | +-- Assorted error cases |
| 3037 | +IMPORT FOREIGN SCHEMA import_source FROM SERVER loopback INTO import_dest4; |
| 3038 | +ERROR: relation "t1" already exists |
| 3039 | +CONTEXT: importing foreign table "t1" |
| <
C78C
code>3040 | +IMPORT FOREIGN SCHEMA nonesuch FROM SERVER loopback INTO import_dest4; |
| 3041 | +ERROR: schema "nonesuch" is not present on foreign server "loopback" |
| 3042 | +IMPORT FOREIGN SCHEMA nonesuch FROM SERVER loopback INTO notthere; |
| 3043 | +ERROR: schema "notthere" does not exist |
| 3044 | +IMPORT FOREIGN SCHEMA nonesuch FROM SERVER nowhere INTO notthere; |
| 3045 | +ERROR: server "nowhere" does not exist |
| 3046 | +-- Check case of a type present only on the remote server. |
| 3047 | +-- We can fake this by dropping the type locally in our transaction. |
| 3048 | +CREATE TYPE "Colors" AS ENUM ('red', 'green', 'blue'); |
| 3049 | +CREATE TABLE import_source.t5 (c1 int, c2 text collate "C", "Col" "Colors"); |
| 3050 | +CREATE SCHEMA import_dest5; |
| 3051 | +BEGIN; |
| 3052 | +DROP TYPE "Colors" CASCADE; |
| 3053 | +NOTICE: drop cascades to table import_source.t5 column Col |
| 3054 | +IMPORT FOREIGN SCHEMA import_source LIMIT TO (t5) |
| 3055 | + FROM SERVER loopback INTO import_dest5; -- ERROR |
| 3056 | +ERROR: type "public.Colors" does not exist |
| 3057 | +LINE 4: "Col" public."Colors" OPTIONS (column_name 'Col') |
| 3058 | + ^ |
| 3059 | +QUERY: CREATE FOREIGN TABLE t5 ( |
| 3060 | + c1 integer OPTIONS (column_name 'c1'), |
| 3061 | + c2 text OPTIONS (column_name 'c2') COLLATE pg_catalog."C", |
| 3062 | + "Col" public."Colors" OPTIONS (column_name 'Col') |
| 3063 | +) SERVER loopback |
| 3064 | +OPTIONS (schema_name 'import_source', table_name 't5'); |
| 3065 | +CONTEXT: importing foreign table "t5" |
| 3066 | +ROLLBACK; |
0 commit comments