diff --git a/docs/catalog/airtable.md b/docs/catalog/airtable.md index 1e9e74dd..e407235c 100644 --- a/docs/catalog/airtable.md +++ b/docs/catalog/airtable.md @@ -61,7 +61,7 @@ We recommend creating a schema to hold all the foreign tables: create schema airtable; ``` -## Creating Foreign Tables +## Entities The Airtable Wrapper supports data reads from the Airtable API. @@ -73,7 +73,7 @@ The Airtable Wrapper supports data reads from Airtable's [Records](https://airta | Object | Select | Insert | Update | Delete | Truncate | | ------- | :----: | :----: | :----: | :----: | :------: | -| Records | ✅ | ❌ | ❌ | ❌ | ❌ | +| Records | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -108,7 +108,7 @@ This will create a "foreign table" inside your Postgres database called `airtabl | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Tables | ✅ | ❌ | ❌ | ❌ | ❌ | +| Tables | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage diff --git a/docs/catalog/auth0.md b/docs/catalog/auth0.md index 6853d7ff..65bc151e 100644 --- a/docs/catalog/auth0.md +++ b/docs/catalog/auth0.md @@ -61,7 +61,7 @@ We recommend creating a schema to hold all the foreign tables: create schema auth0; ``` -## Creating Foreign Tables +## Entities The Auth0 Wrapper supports data reads from Auth0's [Management API List users endpoint](https://auth0.com/docs/api/management/v2/users/get-users) endpoint (_read only_). @@ -73,7 +73,7 @@ The Auth0 Wrapper supports data reads from Auth0's [Management API List users en | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Users | ✅ | ❌ | ❌ | ❌ | ❌ | +| Users | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -106,7 +106,7 @@ This example demonstrates querying Auth0 users data. | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Users | ✅ | ❌ | ❌ | ❌ | ❌ | +| Users | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage diff --git a/docs/catalog/bigquery.md b/docs/catalog/bigquery.md index 11b1dca9..dfbccd5e 100644 --- a/docs/catalog/bigquery.md +++ b/docs/catalog/bigquery.md @@ -84,7 +84,24 @@ We recommend creating a schema to hold all the foreign tables: create schema bigquery; ``` -## Creating Foreign Tables +## Options + +The following options are available when creating BigQuery foreign tables: + +- `table` - Source table or view name in BigQuery, required +- `location` - Source table location (default: 'US') +- `timeout` - Query request timeout in milliseconds (default: 30000) +- `rowid_column` - Primary key column name (required for data modification) + +You can also use a subquery as the table option: + +```sql +table '(select * except(props), to_json_string(props) as props from `my_project.my_dataset.my_table`)' +``` + +Note: When using subquery, full qualified table name must be used. + +## Entites ### Tables @@ -94,7 +111,7 @@ The BigQuery Wrapper supports data reads and writes from BigQuery tables and vie | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Tables | ✅ | ✅ | ✅ | ✅ | ❌ | +| Tables | ✅ | ✅ | ✅ | ✅ | ❌ | #### Usage @@ -117,23 +134,6 @@ create foreign table my_bigquery_table ( - When using `rowid_column`, it must be specified for data modification operations - Data in the streaming buffer cannot be updated or deleted until the buffer is flushed (up to 90 minutes) -### Foreign Table Options - -The following options are available when creating BigQuery foreign tables: - -- `table` - Source table or view name in BigQuery, required -- `location` - Source table location (default: 'US') -- `timeout` - Query request timeout in milliseconds (default: 30000) -- `rowid_column` - Primary key column name (required for data modification) - -You can also use a subquery as the table option: - -```sql -table '(select * except(props), to_json_string(props) as props from `my_project.my_dataset.my_table`)' -``` - -Note: When using subquery, full qualified table name must be used. - ## Query Pushdown Support This FDW supports `where`, `order by` and `limit` clause pushdown. diff --git a/docs/catalog/cal.md b/docs/catalog/cal.md index 8a098c04..8f1b3a12 100644 --- a/docs/catalog/cal.md +++ b/docs/catalog/cal.md @@ -19,13 +19,13 @@ The Cal Wrapper is a WebAssembly(Wasm) foreign data wrapper which allows you to ## Supported Data Types -| Postgres Data Type | Cal.com Data Type | -| ------------------ | ------------------ | -| boolean | Boolean | -| bigint | Number | -| double precision | Number | -| text | String | -| jsonb | Json | +| Postgres Data Type | Cal.com Data Type | +| ------------------ | ----------------- | +| boolean | Boolean | +| bigint | Number | +| double precision | Number | +| text | String | +| jsonb | Json | The Cal.com API uses JSON formatted data, please refer to [Cal.com API docs](https://cal.com/docs/api-reference/v2/introduction) for more details. @@ -35,9 +35,9 @@ The Cal.com API uses JSON formatted data, please refer to [Cal.com API docs](htt ## Available Versions -| Version | Wasm Package URL | Checksum | -| ------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | -| 0.1.0 | `https://github.com/supabase/wrappers/releases/download/wasm_cal_fdw_v0.1.0/cal_fdw.wasm` | `tbd` | +| Version | Wasm Package URL | Checksum | +| ------- | ----------------------------------------------------------------------------------------- | -------- | +| 0.1.0 | `https://github.com/supabase/wrappers/releases/download/wasm_cal_fdw_v0.1.0/cal_fdw.wasm` | `tbd` | ## Preparation @@ -83,9 +83,26 @@ We recommend creating a schema to hold all the foreign tables: create schema if not exists cal; ``` +## Options + +The full list of foreign table options are below: + +- `object` - Object name in Cal.com, required. + +Supported objects are listed below: + +| Object name | +| ------------ | +| my_profile | +| event-types | +| bookings | +| calendars | +| schedules | +| conferencing | + ## Entities -### My Profile +### Profile This is an object representing your Cal.com user profile. @@ -93,9 +110,9 @@ Ref: [Cal.com API docs](https://cal.com/docs/api-reference/v2/introduction) #### Operations -| Object | Select | Insert | Update | Delete | Truncate | -| ---------- | :----: | :----: | :----: | :----: | :------: | -| My Profile | ✅ | ❌ | ❌ | ❌ | ❌ | +| Object | Select | Insert | Update | Delete | Truncate | +| ------- | :----: | :----: | :----: | :----: | :------: | +| Profile | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -127,7 +144,7 @@ Ref: [Cal.com API docs](https://cal.com/docs/api-reference/v2/introduction) | Object | Select | Insert | Update | Delete | Truncate | | ----------- | :----: | :----: | :----: | :----: | :------: | -| Event Types | ✅ | ❌ | ❌ | ❌ | ❌ | +| Event Types | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -166,7 +183,7 @@ Ref: [Cal.com API docs](https://cal.com/docs/api-reference/v2/bookings/create-a- | Object | Select | Insert | Update | Delete | Truncate | | -------- | :----: | :----: | :----: | :----: | :------: | -| Bookings | ✅ | ✅ | ❌ | ❌ | ❌ | +| Bookings | ✅ | ✅ | ❌ | ❌ | ❌ | #### Usage @@ -213,7 +230,7 @@ Ref: [Cal.com API docs](https://cal.com/docs/api-reference/v2/introduction) | Object | Select | Insert | Update | Delete | Truncate | | --------- | :----: | :----: | :----: | :----: | :------: | -| Calendars | ✅ | ❌ | ❌ | ❌ | ❌ | +| Calendars | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -241,7 +258,7 @@ Ref: [Cal.com API docs](https://cal.com/docs/api-reference/v2/introduction) | Object | Select | Insert | Update | Delete | Truncate | | --------- | :----: | :----: | :----: | :----: | :------: | -| Schedules | ✅ | ❌ | ❌ | ❌ | ❌ | +| Schedules | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -271,7 +288,7 @@ Ref: [Cal.com API docs](https://cal.com/docs/api-reference/v2/introduction) | Object | Select | Insert | Update | Delete | Truncate | | ------------ | :----: | :----: | :----: | :----: | :------: | -| Conferencing | ✅ | ❌ | ❌ | ❌ | ❌ | +| Conferencing | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -290,23 +307,6 @@ create foreign table cal.conferencing ( - The `attrs` column contains all conferencing attributes in JSON format -## Foreign Table Options - -The full list of foreign table options are below: - -- `object` - Object name in Cal.com, required. - - Supported objects are listed below: - - | Object name | - | ------------------------ | - | my_profile | - | event-types | - | bookings | - | calendars | - | schedules | - | conferencing | - ## Query Pushdown Support This FDW doesn't support query pushdown. diff --git a/docs/catalog/calendly.md b/docs/catalog/calendly.md index 174fbea0..8ba9a3a3 100644 --- a/docs/catalog/calendly.md +++ b/docs/catalog/calendly.md @@ -33,8 +33,8 @@ The Calendly API uses JSON formatted data, please refer to [Calendly API docs](h ## Available Versions -| Version | Wasm Package URL | Checksum | -| ------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| Version | Wasm Package URL | Checksum | +| ------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | | 0.1.0 | `https://github.com/supabase/wrappers/releases/download/wasm_calendly_fdw_v0.1.0/calendly_fdw.wasm` | `51a19fa4b8c40afb5dcf6dc2e009189aceeba65f30eec75d56a951d78fc8893f` | ## Preparation @@ -80,6 +80,21 @@ We recommend creating a schema to hold all the foreign tables: ```sql create schema if not exists calendly; ``` +## Options + +The full list of foreign table options are below: + +- `object` - Object name in Calendly, required. + +Supported objects are listed below: + +| Object name | +| ------------------------ | +| current_user | +| event_types | +| groups | +| organization_memberships | +| scheduled_events | ## Entities @@ -93,7 +108,7 @@ Ref: [Calendly API docs](https://developer.calendly.com/api-docs) | Object | Select | Insert | Update | Delete | Truncate | | ------------ | :----: | :----: | :----: | :----: | :------: | -| Current User | ✅ | ❌ | ❌ | ❌ | ❌ | +| Current User | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -131,7 +146,7 @@ Ref: [Calendly API docs](https://developer.calendly.com/api-docs) | Object | Select | Insert | Update | Delete | Truncate | | ----------- | :----: | :----: | :----: | :----: | :------: | -| Event Types | ✅ | ❌ | ❌ | ❌ | ❌ | +| Event Types | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -168,7 +183,7 @@ Ref: [Calendly API docs](https://developer.calendly.com/api-docs) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Groups | ✅ | ❌ | ❌ | ❌ | ❌ | +| Groups | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -199,7 +214,7 @@ Ref: [Calendly API docs](https://developer.calendly.com/api-docs) | Object | Select | Insert | Update | Delete | Truncate | | ----------------------- | :----: | :----: | :----: | :----: | :------: | -| Organization Membership | ✅ | ❌ | ❌ | ❌ | ❌ | +| Organization Membership | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -230,7 +245,7 @@ Ref: [Calendly API docs](https://developer.calendly.com/api-docs) | Object | Select | Insert | Update | Delete | Truncate | | ---------------- | :----: | :----: | :----: | :----: | :------: | -| Scheduled Events | ✅ | ❌ | ❌ | ❌ | ❌ | +| Scheduled Events | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -251,22 +266,6 @@ create foreign table calendly.scheduled_events ( - The `attrs` column contains all event attributes in JSON format -## Foreign Table Options - -The full list of foreign table options are below: - -- `object` - Object name in Calendly, required. - - Supported objects are listed below: - - | Object name | - | ------------------------ | - | current_user | - | event_types | - | groups | - | organization_memberships | - | scheduled_events | - ## Query Pushdown Support This FDW doesn't support query pushdown. diff --git a/docs/catalog/clickhouse.md b/docs/catalog/clickhouse.md index d8a0f267..23855d70 100644 --- a/docs/catalog/clickhouse.md +++ b/docs/catalog/clickhouse.md @@ -19,20 +19,20 @@ The ClickHouse Wrapper allows you to read and write data from ClickHouse within ## Supported Data Types -| Postgres Type | ClickHouse Type | -| ---------------- | --------------- | -| boolean | UInt8 | -| smallint | Int16 | -| integer | UInt16 | -| integer | Int32 | -| bigint | UInt32 | -| bigint | Int64 | -| bigint | UInt64 | -| real | Float32 | -| double precision | Float64 | -| text | String | -| date | Date | -| timestamp | DateTime | +| Postgres Type | ClickHouse Type | +| ---------------- | ----------------- | +| boolean | UInt8 | +| smallint | Int16 | +| integer | UInt16 | +| integer | Int32 | +| bigint | UInt32 | +| bigint | Int64 | +| bigint | UInt64 | +| real | Float32 | +| double precision | Float64 | +| text | String | +| date | Date | +| timestamp | DateTime | | * | Nullable<T> | ## Preparation @@ -79,7 +79,41 @@ We recommend creating a schema to hold all the foreign tables: create schema clickhouse; ``` -## Creating Foreign Tables +## Options + +The following options are available when creating ClickHouse foreign tables: + +- `table` - Source table name in ClickHouse, required + +This can also be a subquery enclosed in parentheses, for example, + +```sql +table '(select * from my_table)' +``` + +### Parametrized views + +[Parametrized view](https://clickhouse.com/docs/en/sql-reference/statements/create/view#parameterized-view) is also supported in the subquery. In this case, you need to define a column for each parameter and use `where` to pass values to them. For example, + +```sql + create foreign table test_vw ( + id bigint, + col1 text, + col2 bigint, + _param1 text, + _param2 bigint + ) + server clickhouse_server + options ( + table '(select * from my_view(column1=${_param1}, column2=${_param2}))' + ); + + select * from test_vw where _param1='aaa' and _param2=32; +``` + +- `rowid_column` - Primary key column name, optional for data scan, required for data modify + +## Entities ### Tables @@ -89,7 +123,7 @@ The ClickHouse Wrapper supports data reads and writes from ClickHouse tables. | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Tables | ✅ | ✅ | ✅ | ✅ | ❌ | +| Tables | ✅ | ✅ | ✅ | ✅ | ❌ | #### Usage @@ -110,38 +144,6 @@ create foreign table my_clickhouse_table ( - Supports parametrized views in subqueries - When using `rowid_column`, it must be specified for data modification operations -### Foreign Table Options - -The following options are available when creating ClickHouse foreign tables: - -- `table` - Source table name in ClickHouse, required - - This can also be a subquery enclosed in parentheses, for example, - - ```sql - table '(select * from my_table)' - ``` - - [Parametrized view](https://clickhouse.com/docs/en/sql-reference/statements/create/view#parameterized-view) is also supported in the subquery. In this case, you need to define a column for each parameter and use `where` to pass values to them. For example, - - ```sql - create foreign table test_vw ( - id bigint, - col1 text, - col2 bigint, - _param1 text, - _param2 bigint - ) - server clickhouse_server - options ( - table '(select * from my_view(column1=${_param1}, column2=${_param2}))' - ); - - select * from test_vw where _param1='aaa' and _param2=32; - ``` - -- `rowid_column` - Primary key column name, optional for data scan, required for data modify - ## Query Pushdown Support This FDW supports `where`, `order by` and `limit` clause pushdown, as well as parametrized view (see above). @@ -156,7 +158,7 @@ This example demonstrates basic ClickHouse table operations. | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Tables | ✅ | ✅ | ✅ | ✅ | ❌ | +| Tables | ✅ | ✅ | ✅ | ✅ | ❌ | #### Usage diff --git a/docs/catalog/cognito.md b/docs/catalog/cognito.md index 68703f5f..815635d0 100644 --- a/docs/catalog/cognito.md +++ b/docs/catalog/cognito.md @@ -72,7 +72,7 @@ Ref: [AWS Cognito User Records](https://docs.aws.amazon.com/cognito/latest/devel | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Users | ✅ | ❌ | ❌ | ❌ | ❌ | +| Users | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -97,10 +97,6 @@ options ( - Only the columns listed above are accepted in the foreign table - The `attributes` column contains additional user attributes in JSON format -## Foreign Table Options - -- `object`: type of object we are querying. For now, only `users` is supported - ## Query Pushdown Support This FDW doesn't support query pushdown. diff --git a/docs/catalog/firebase.md b/docs/catalog/firebase.md index 902fa247..6e65f100 100644 --- a/docs/catalog/firebase.md +++ b/docs/catalog/firebase.md @@ -66,6 +66,18 @@ We recommend creating a schema to hold all the foreign tables: create schema firebase; ``` +## Options + +The full list of foreign table options are below: + +- `object` - Object name in Firebase, required. + + For Authenciation users, the object name is fixed to `auth/users`. For Firestore documents, its format is `firestore/`, note that collection id must be a full path id. For example, + + - `firestore/my-collection` + - `firestore/my-collection/my-document/another-collection` + + ## Entities ### Authentication Users @@ -76,9 +88,9 @@ Ref: [Firebase Authentication Users](https://firebase.google.com/docs/auth/users #### Operations -| Object | Select | Insert | Update | Delete | Truncate | -| ------------------- | :----: | :----: | :----: | :----: | :------: | -| Authentication Users| ✅ | ❌ | ❌ | ❌ | ❌ | +| Object | Select | Insert | Update | Delete | Truncate | +| -------------------- | :----: | :----: | :----: | :----: | :------: | +| Authentication Users | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -108,9 +120,9 @@ Ref: [Firestore Database](https://firebase.google.com/docs/firestore) #### Operations -| Object | Select | Insert | Update | Delete | Truncate | -| -------------------------- | :----: | :----: | :----: | :----: | :------: | -| Firestore Database Documents| ✅ | ❌ | ❌ | ❌ | ❌ | +| Object | Select | Insert | Update | Delete | Truncate | +| ---------------------------- | :----: | :----: | :----: | :----: | :------: | +| Firestore Database Documents | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -136,17 +148,6 @@ create foreign table firebase_docs ( - `firestore/my-collection/my-document/another-collection` - The `attrs` column contains all document attributes in JSON format -## Foreign Table Options - -The full list of foreign table options are below: - -- `object` - Object name in Firebase, required. - - For Authenciation users, the object name is fixed to `auth/users`. For Firestore documents, its format is `firestore/`, note that collection id must be a full path id. For example, - - - `firestore/my-collection` - - `firestore/my-collection/my-document/another-collection` - ## Query Pushdown Support This FDW doesn't support query pushdown. diff --git a/docs/catalog/logflare.md b/docs/catalog/logflare.md index 482a1d4c..83e28100 100644 --- a/docs/catalog/logflare.md +++ b/docs/catalog/logflare.md @@ -83,6 +83,10 @@ We recommend creating a schema to hold all the foreign tables: create schema logflare; ``` +## Options + +- `endpoint` - Logflare endpoint UUID or name, required. + ## Entities ### Logflare @@ -95,7 +99,7 @@ Ref: [Logflare docs](https://logflare.app) | Object | Select | Insert | Update | Delete | Truncate | | -------- | :----: | :----: | :----: | :----: | :------: | -| Logflare | ✅ | ❌ | ❌ | ❌ | ❌ | +| Logflare | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -123,10 +127,6 @@ create foreign table my_logflare_table ( - Example: `_param_org_id`, `_param_iso_timestamp_start` - Parameters are passed to the Logflare endpoint -## Foreign Table Options - -- `endpoint` - Logflare endpoint UUID or name, required. - ## Query Pushdown Support This FDW doesn't support query pushdown. diff --git a/docs/catalog/mssql.md b/docs/catalog/mssql.md index e7bb9ecc..a044d551 100644 --- a/docs/catalog/mssql.md +++ b/docs/catalog/mssql.md @@ -95,6 +95,18 @@ We recommend creating a schema to hold all the foreign tables: create schema mssql; ``` +## Options + +The full list of foreign table options are below: + +- `table` - Source table or view name in SQL Server, required. + +This can also be a subquery enclosed in parentheses, for example, + +```sql +table '(select * from users where id = 42 or id = 43)' +``` + ## Entities ### SQL Server Tables @@ -105,9 +117,9 @@ Ref: [Microsoft SQL Server docs](https://www.microsoft.com/en-au/sql-server/) #### Operations -| Object | Select | Insert | Update | Delete | Truncate | -| --------------- | :----: | :----: | :----: | :----: | :------: | -| SQL Server | ✅ | ❌ | ❌ | ❌ | ❌ | +| Object | Select | Insert | Update | Delete | Truncate | +| ---------- | :----: | :----: | :----: | :----: | :------: | +| SQL Server | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -133,18 +145,6 @@ create foreign table mssql_users ( - `limit` clauses - See Data Types section for type mappings between PostgreSQL and SQL Server -## Foreign Table Options - -The full list of foreign table options are below: - -- `table` - Source table or view name in SQL Server, required. - - This can also be a subquery enclosed in parentheses, for example, - - ```sql - table '(select * from users where id = 42 or id = 43)' - ``` - ## Query Pushdown Support This FDW supports `where`, `order by` and `limit` clause pushdown. diff --git a/docs/catalog/notion.md b/docs/catalog/notion.md index ffcc0aee..d628ba7b 100644 --- a/docs/catalog/notion.md +++ b/docs/catalog/notion.md @@ -79,6 +79,20 @@ We recommend creating a schema to hold all the foreign tables: create schema if not exists notion; ``` +## Foreign Table Options + +- `object` - Object name in Notion, required. + +Supported objects are listed below: + +| Object name | +| ----------- | +| block | +| page | +| database | +| user | + + ## Entities ### Block @@ -91,7 +105,7 @@ Ref: [Notion API docs](https://developers.notion.com/reference/intro) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Block | ✅ | ❌ | ❌ | ❌ | ❌ | +| Block | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -129,7 +143,7 @@ Ref: [Notion API docs](https://developers.notion.com/reference/intro) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Page | ✅ | ❌ | ❌ | ❌ | ❌ | +| Page | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -163,7 +177,7 @@ Ref: [Notion API docs](https://developers.notion.com/reference/intro) | Object | Select | Insert | Update | Delete | Truncate | | -------- | :----: | :----: | :----: | :----: | :------: | -| Database | ✅ | ❌ | ❌ | ❌ | ❌ | +| Database | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -197,7 +211,7 @@ Ref: [Notion API docs](https://developers.notion.com/reference/intro) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| User | ✅ | ❌ | ❌ | ❌ | ❌ | +| User | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -221,19 +235,6 @@ create foreign table notion.users ( - The `attrs` column contains all user attributes in JSON format - User email can be extracted using: `attrs->'person'->>'email'` -## Foreign Table Options - -- `object` - Object name in Notion, required. - - Supported objects are listed below: - - | Object name | - | --------------------- | - | block | - | page | - | database | - | user | - ## Query Pushdown Support This FDW supports `where` clause pushdown with `id` as the filter. For example, diff --git a/docs/catalog/paddle.md b/docs/catalog/paddle.md index 53b94738..5920c47d 100644 --- a/docs/catalog/paddle.md +++ b/docs/catalog/paddle.md @@ -86,6 +86,27 @@ We recommend creating a schema to hold all the foreign tables: create schema if not exists paddle; ``` +## Options + +- `object` - Object name in Paddle, required. + +Supported objects are listed below: + +| Object name | +| --------------------- | +| products | +| prices | +| discounts | +| customers | +| transactions | +| reports | +| notification-settings | +| notifications | + +- `rowid_column` - Primary key column name, optional for data scan, required for data modify + +## Entities + ### Products This is an object representing Paddle Products. @@ -96,7 +117,7 @@ Ref: [Paddle API docs](https://developer.paddle.com/api-reference/about/data-typ | Object | Select | Insert | Update | Delete | Truncate | | -------- | :----: | :----: | :----: | :----: | :------: | -| Products | ✅ | ✅ | ✅ | ❌ | ❌ | +| Products | ✅ | ✅ | ✅ | ❌ | ❌ | #### Usage @@ -134,7 +155,7 @@ Ref: [Paddle API docs](https://developer.paddle.com/api-reference/about/data-typ | Object | Select | Insert | Update | Delete | Truncate | | --------- | :----: | :----: | :----: | :----: | :------: | -| Customers | ✅ | ✅ | ✅ | ❌ | ❌ | +| Customers | ✅ | ✅ | ✅ | ❌ | ❌ | #### Usage @@ -172,7 +193,7 @@ Ref: [Paddle API docs](https://developer.paddle.com/api-reference/about/data-typ | Object | Select | Insert | Update | Delete | Truncate | | ------------- | :----: | :----: | :----: | :----: | :------: | -| Subscriptions | ✅ | ✅ | ✅ | ❌ | ❌ | +| Subscriptions | ✅ | ✅ | ✅ | ❌ | ❌ | #### Usage @@ -197,25 +218,6 @@ create foreign table paddle.subscriptions ( - Query pushdown supported for `id` column - Subscription items status can be extracted using: `attrs#>'{items,status}'` -## Foreign Table Options - -- `object` - Object name in Paddle, required. - - Supported objects are listed below: - - | Object name | - | --------------------- | - | products | - | prices | - | discounts | - | customers | - | transactions | - | reports | - | notification-settings | - | notifications | - -- `rowid_column` - Primary key column name, optional for data scan, required for data modify - ## Query Pushdown Support This FDW supports `where` clause pushdown with `id` as the filter. For example, diff --git a/docs/catalog/redis.md b/docs/catalog/redis.md index 484e5724..9beda226 100644 --- a/docs/catalog/redis.md +++ b/docs/catalog/redis.md @@ -79,6 +79,37 @@ We recommend creating a schema to hold all the foreign tables: create schema redis; ``` + +## Options + +- `src_type` - Foreign table source type in Redis, required. + +This can be one of below types, + +| Source type | Description | +| ----------- | ------------------------------------------------------------------ | +| list | [Single list](https://redis.io/docs/data-types/lists/) | +| set | [Single set](https://redis.io/docs/data-types/sets/) | +| hash | [Single hash](https://redis.io/docs/data-types/hashes/) | +| zset | [Single sorted set](https://redis.io/docs/data-types/sorted-sets/) | +| stream | [Stream](https://redis.io/docs/data-types/streams/) | +| multi_list | Multiple lists, specified by `src_key` pattern | +| multi_set | Multiple sets, specified by `src_key` pattern | +| multi_hash | Multiple hashes, specified by `src_key` pattern | +| multi_zset | Multiple sorted sets, specified by `src_key` pattern | + +- `src_key` - Source object key in Redis, required. + +This key can be a pattern for `multi_*` type of foreign table. For other types, this key must return exact one value. For example, + +| Source Type | `src_key` examples | +| --------------------------------------------- | ------------------------------------------------------- | +| list, set, hash, zset, stream | `my_list`, `list:001`, `hash_foo`, `zset:1000` and etc. | +| multi_list, multi_set, multi_hash, multi_zset | `my_list:*`, `set:*`, `zset:*` and etc. | + + +## Entities + ### List This is an object representing a Redis List. @@ -89,7 +120,7 @@ Ref: [Redis docs](https://redis.io/docs/data-types/lists/) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| List | ✅ | ❌ | ❌ | ❌ | ❌ | +| List | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -120,7 +151,7 @@ Ref: [Redis docs](https://redis.io/docs/data-types/sets/) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Set | ✅ | ❌ | ❌ | ❌ | ❌ | +| Set | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -151,7 +182,7 @@ Ref: [Redis docs](https://redis.io/docs/data-types/hashes/) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Hash | ✅ | ❌ | ❌ | ❌ | ❌ | +| Hash | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -183,7 +214,7 @@ Ref: [Redis docs](https://redis.io/docs/data-types/sorted-sets/) | Object | Select | Insert | Update | Delete | Truncate | | ---------- | :----: | :----: | :----: | :----: | :------: | -| Sorted Set | ✅ | ❌ | ❌ | ❌ | ❌ | +| Sorted Set | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -214,7 +245,7 @@ Ref: [Redis docs](https://redis.io/docs/data-types/streams/) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Stream | ✅ | ❌ | ❌ | ❌ | ❌ | +| Stream | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -242,12 +273,12 @@ Redis wrapper supports querying multiple objects of the same type using pattern #### Operations -| Object Type | Select | Insert | Update | Delete | Truncate | +| Object Type | Select | Insert | Update | Delete | Truncate | | ------------- | :----: | :----: | :----: | :----: | :------: | -| Multiple List | ✅ | ❌ | ❌ | ❌ | ❌ | -| Multiple Set | ✅ | ❌ | ❌ | ❌ | ❌ | -| Multiple Hash | ✅ | ❌ | ❌ | ❌ | ❌ | -| Multiple ZSet | ✅ | ❌ | ❌ | ❌ | ❌ | +| Multiple List | ✅ | ❌ | ❌ | ❌ | ❌ | +| Multiple Set | ✅ | ❌ | ❌ | ❌ | ❌ | +| Multiple Hash | ✅ | ❌ | ❌ | ❌ | ❌ | +| Multiple ZSet | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -271,33 +302,6 @@ select * from redis_multi_lists; - Results include object key and items in JSONB format - Items format varies by object type -## Foreign Table Options - -- `src_type` - Foreign table source type in Redis, required. - - This can be one of below types, - - | Source type | Description | - | ----------- | ------------------------------------------------------------------ | - | list | [Single list](https://redis.io/docs/data-types/lists/) | - | set | [Single set](https://redis.io/docs/data-types/sets/) | - | hash | [Single hash](https://redis.io/docs/data-types/hashes/) | - | zset | [Single sorted set](https://redis.io/docs/data-types/sorted-sets/) | - | stream | [Stream](https://redis.io/docs/data-types/streams/) | - | multi_list | Multiple lists, specified by `src_key` pattern | - | multi_set | Multiple sets, specified by `src_key` pattern | - | multi_hash | Multiple hashes, specified by `src_key` pattern | - | multi_zset | Multiple sorted sets, specified by `src_key` pattern | - -- `src_key` - Source object key in Redis, required. - - This key can be a pattern for `multi_*` type of foreign table. For other types, this key must return exact one value. For example, - - | Source Type | `src_key` examples | - | --------------------------------------------- | ------------------------------------------------------- | - | list, set, hash, zset, stream | `my_list`, `list:001`, `hash_foo`, `zset:1000` and etc. | - | multi_list, multi_set, multi_hash, multi_zset | `my_list:*`, `set:*`, `zset:*` and etc. | - ## Query Pushdown Support This FDW doesn't support pushdown. diff --git a/docs/catalog/s3.md b/docs/catalog/s3.md index 3ddf038d..cab9795d 100644 --- a/docs/catalog/s3.md +++ b/docs/catalog/s3.md @@ -159,6 +159,13 @@ We recommend creating a schema to hold all the foreign tables: create schema s3; ``` +## Options + +- `uri` - S3 URI, required. For example, `s3://bucket/s3_table.csv` +- `format` - File format, required. `csv`, `jsonl`, or `parquet` +- `has_header` - If the CSV file has header, optional. `true` or `false`, default is `false` +- `compress` - Compression algorithm, optional. One of `gzip`, `bzip2`, `xz`, `zlib`, default is no compression + ## Entities ### CSV Files @@ -171,7 +178,7 @@ Ref: [AWS S3 docs](https://aws.amazon.com/s3/) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| CSV | ✅ | ❌ | ❌ | ❌ | ❌ | +| CSV | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -208,7 +215,7 @@ Ref: [JSONL docs](https://jsonlines.org/) | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| JSONL | ✅ | ❌ | ❌ | ❌ | ❌ | +| JSONL | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -244,7 +251,7 @@ Ref: [Parquet docs](https://parquet.apache.org/) | Object | Select | Insert | Update | Delete | Truncate | | ------- | :----: | :----: | :----: | :----: | :------: | -| Parquet | ✅ | ❌ | ❌ | ❌ | ❌ | +| Parquet | ✅ | ❌ | ❌ | ❌ | ❌ | #### Usage @@ -272,13 +279,6 @@ create foreign table s3_table_parquet ( - Compressed files are loaded entirely into memory - Supports compression (gzip, bzip2, xz, zlib) -## Foreign Table Options - -- `uri` - S3 URI, required. For example, `s3://bucket/s3_table.csv` -- `format` - File format, required. `csv`, `jsonl`, or `parquet` -- `has_header` - If the CSV file has header, optional. `true` or `false`, default is `false` -- `compress` - Compression algorithm, optional. One of `gzip`, `bzip2`, `xz`, `zlib`, default is no compression - ## Query Pushdown Support This FDW doesn't support query pushdown. diff --git a/docs/catalog/snowflake.md b/docs/catalog/snowflake.md index 2de300a2..dcec3994 100644 --- a/docs/catalog/snowflake.md +++ b/docs/catalog/snowflake.md @@ -124,6 +124,15 @@ We recommend creating a schema to hold all the foreign tables: create schema snowflake; ``` +## Options + +- `table` - Source table or view name in Snowflake, required. + Can also be a subquery enclosed in parentheses. + +- `rowid_column` - Primary key column name, optional for data scan, required for data modify + +## Entities + ### Snowflake Tables This is an object representing a Snowflake table or view. @@ -134,7 +143,7 @@ Ref: [Snowflake docs](https://docs.snowflake.com/en/sql-reference/sql/create-tab | Object | Select | Insert | Update | Delete | Truncate | | ------ | :----: | :----: | :----: | :----: | :------: | -| Table | ✅ | ✅ | ✅ | ✅ | ❌ | +| Table | ✅ | ✅ | ✅ | ✅ | ❌ | #### Usage @@ -162,13 +171,6 @@ create foreign table snowflake.mytable ( - Column names must match between Snowflake and foreign table - Data types must be compatible according to type mapping table -## Foreign Table Options - -- `table` - Source table or view name in Snowflake, required. - Can also be a subquery enclosed in parentheses. - -- `rowid_column` - Primary key column name, optional for data scan, required for data modify - ## Query Pushdown Support This FDW supports `where`, `order by` and `limit` clause pushdown.