We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Writing a Foreign Data Wrapper: Christophe Pettus - PGCon 2023
Writing a foreign data wrapper for PostgreSQL involves defining types, functions, and extension logic while considering error handling, security, and performance optimization.
- 
    Avoid treating foreign data wrappers and relational tables interchangeably. 
- 
    Understand the importance of error handling and logging in a foreign data wrapper. 
- 
    Define a type for a foreign data wrapper, even if it’s not a complex one. 
- 
    Create a separate extension for a foreign data wrapper, not a foreign data wrapper itself. 
- 
    Write tests for a foreign data wrapper, due to the complexities involved. 
- 
    Optimize a foreign data wrapper for performance by handling errors and logging effectively. 
- 
    Choose a suitable data source for a foreign data wrapper, such as a weather feed. 
- 
    Create a foreign data wrapper by defining the required functions and types. 
- 
    Understand the importance of cryptography and security in a foreign data wrapper. 
- 
    Use a foreign data wrapper as a drop-in replacement for a relational table, but with limitations. 
- 
    Avoid using a foreign data wrapper as a way to bypass security and permissions checks. 
- 
    Create a foreign data wrapper for a specific data source, such as an Oracle database or a flat file. 
- 
    Use a foreign data wrapper to access data from a remote database or a file. 
- 
    Optimize a foreign data wrapper for specific use cases, such as batch processing. 
- 
    The planner and executor in Postgres rely on the foreign data wrapper to execute queries correctly. 
- 
    Foreign data wrappers can be optimized for performance and security by implementing error handling and logging. 
- 
    Writing a foreign data wrapper requires a good understanding of Postgres internals and C programming. 
- 
    Foreign data wrappers can be used to access data from various sources, including relational databases and files. 
- 
    Data types used in a foreign data wrapper must be defined and documented. 
- 
    The foreign data wrapper is not responsible for foreign-specific logic, such as joins and grouping. 
- 
    A foreign data wrapper must provide a way to handle errors and connection failures. 
- 
    Writing a foreign data wrapper requires careful attention to error handling and logging. 
- 
    Foreign data wrappers should be designed to be reentrant and thread-safe. 
- 
    The planner and executor in Postgres rely on the foreign data wrapper to provide correct query results.