added postgres_fdw docs (#31085)

* added postgres_fdw docs

* updated link in extension docs

* Update apps/docs/content/guides/database/extensions/postgres_fdw.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/database/extensions/postgres_fdw.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/database/extensions/postgres_fdw.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* ci: Autofix updates from GitHub workflow

* Update apps/docs/content/guides/database/extensions/postgres_fdw.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

---------

Co-authored-by: Brian Brennglass <brian@Brians-MBP.lan>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-tidy-bot <github-tidy-bot@supabase.com>
Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
This commit is contained in:
TheOtherBrian1
2024-12-12 17:31:18 -05:00
committed by GitHub
parent c4f12c9783
commit f1cf6c642d
4 changed files with 156 additions and 1 deletions

View File

@@ -1004,6 +1004,10 @@ export const database: NavMenuConstant = {
name: 'pg_stat_monitor: Extended Query Performance Monitoring',
url: '/guides/database/extensions/pg_stat_monitor',
},
{
name: 'postgres_fdw: query data from an external Postgres server',
url: '/guides/database/extensions/postgres_fdw',
},
{
name: 'pgvector: Embeddings and vector similarity',
url: '/guides/database/extensions/pgvector',

View File

@@ -0,0 +1,148 @@
---
id: 'postgres_fdw'
title: 'postgres_fdw'
description: 'Query Postgres server from another'
---
The extension enables Postgres to query tables and views on a remote Postgres server.
## Enable the extension
<Tabs
scrollable
size="small"
type="underlined"
defaultActiveId="dashboard"
queryGroup="database-method"
>
<TabPanel id="dashboard" label="Dashboard">
1. Go to the [Database](/dashboard/project/_/database/tables) page in the Dashboard.
2. Click on **Extensions** in the sidebar.
3. Search for "postgres_fdw" and enable the extension.
</TabPanel>
<TabPanel id="sql" label="SQL">
```sql
-- Example: enable the "postgres_fdw" extension
create extension if not exists postgres_fdw;
-- Example: disable the "postgres_fdw" extension
drop extension if exists postgres_fdw;
```
Procedural languages are automatically installed within `pg_catalog`, so you don't need to specify a schema.
</TabPanel>
</Tabs>
## Create a connection to another database
<StepHikeCompact>
<StepHikeCompact.Step step={1}>
<StepHikeCompact.Details title="Create a foreign server">
Define the remote database address
</StepHikeCompact.Details>
<StepHikeCompact.Code>
```sql
create server "<foreign_server_name>"
foreign data wrapper postgres_fdw
options (
host '<host>',
port '<port>',
dbname '<dbname>'
);
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
<StepHikeCompact.Step step={2}>
<StepHikeCompact.Details title="Create a server mapping">
Set the user credentials for the remote server
</StepHikeCompact.Details>
<StepHikeCompact.Code>
```sql
create user mapping for "<dbname>"
server "<foreign_server_name>"
options (
user '<db_user>',
password '<password>'
);
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
<StepHikeCompact.Step step={3}>
<StepHikeCompact.Details title="Import tables">
Import tables from the foreign database
</StepHikeCompact.Details>
<StepHikeCompact.Code>
Example: Import all tables from a schema
```sql
import foreign schema "<foreign_schema>"
from server "<foreign_server>"
into "<host_schema>";
```
Example: Import specific tables
```sql
import foreign schema "<foreign_schema>""
limit to (
"<table_name1>",
"<table_name2>"
)
from server "<foreign_server>"
into "<host_schema>";
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
<StepHikeCompact.Step step={4}>
<StepHikeCompact.Details title="Query foreign table"/>
<StepHikeCompact.Code>
```sql
select * from '<foreign_table>'
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
</StepHikeCompact>
### Configuring execution options
#### Fetch_size
Maximum rows fetched per operation. For example, fetching 200 rows with `fetch_size` set to 100 requires 2 requests.
```sql
alter server "<foreign_server_name>"
options (fetch_size '10000');
```
#### Batch_size
Maximum rows inserted per cycle. For example, inserting 200 rows with `batch_size` set to 100 requires 2 requests.
```sql
alter server "<foreign_server_name>"
options (batch_size '1000');
```
#### Extensions
Lists shared extensions. Without them, queries involving unlisted extension functions or operators may fail or omit references.
```sql
alter server "<foreign_server_name>"
options (extensions 'vector, postgis');
```
For more server options, check the extension's [official documentation](https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW)
## Resources
- Official [`postgres_fdw` documentation](https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW)

View File

@@ -487,7 +487,7 @@
"name": "postgres_fdw",
"comment": "foreign-data wrapper for remote PostgreSQL servers",
"tags": ["Admin"],
"link": "https://www.postgresql.org/docs/current/postgres-fdw.html",
"link": "/guides/database/extensions/postgres_fdw",
"github_url": null,
"product": null,
"product_url": null

View File

@@ -1,6 +1,7 @@
APIs
[Aa]uth
[Bb]aselining
batch_size
Berri
[Cc]hatbots?
ChatGPT
@@ -24,6 +25,7 @@ Deno
[Ee]nv
[Ee]nums?
event_message
fetch_size
Firestore
Hashicorp
[Gg]eospatial
@@ -41,6 +43,7 @@ JWTs
Lua
Markprompt
[Mm]iddleware
misexecution
[Nn]amespace(d|s)?
Next.js
npm