Hi James,
I can help answer question number 3. You can still ship data from PostgreSQL to Greenplum if the table has unsupported data formats by "shipping" the data as TEXT and then casting it back to the type you want on Greenplum. I just tried doing the following on my local system:
In some PostgreSQL/Greenplum database:
CREATE TABLE non_supported_pxf_types (acidr CIDR, acircle CIRCLE, auuid UUID);
On Greenplum using PXF:
Create a table to read data from the external postres database, read all the non-supported types as text:
CREATE EXTERNAL TABLE read_from_non_supported_pxf_types (acidr TEXT, acircle TEXT, auuid TEXT)
LOCATION ('pxf://non_supported_pxf_types?PROFILE=jdbc&SERVER=postgres')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');
Then create an internal table to store your data, and cast it to the original type:
CREATE TABLE store_from_external_pxf (acidr CIDR, acircle CIRCLE, auuid UUID);
Finally, insert data into the internal greenplum table
INSERT INTO store_from_external_pxf
SELECT acidr::cidr, acircle::circle, auuid::uuid
FROM read_from_non_supported_pxf_types;
Please let me know if this is useful and if you have any additional questions.
Best,
- Francisco