{"id":26263445,"url":"https://github.com/systemxlabs/datafusion-remote-table","last_synced_at":"2025-04-30T11:48:58.199Z","repository":{"id":280947248,"uuid":"943698003","full_name":"systemxlabs/datafusion-remote-table","owner":"systemxlabs","description":"A DataFusion table provider for executing SQL queries on remote databases.","archived":false,"fork":false,"pushed_at":"2025-04-25T02:20:19.000Z","size":652,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-25T03:30:37.290Z","etag":null,"topics":["datafusion","mysql","oracle","postgresql","rust","sql","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/systemxlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-06T05:54:54.000Z","updated_at":"2025-04-25T02:20:22.000Z","dependencies_parsed_at":"2025-03-20T11:23:31.410Z","dependency_job_id":"9e8a25de-8eb1-441b-b110-6fceaa387d87","html_url":"https://github.com/systemxlabs/datafusion-remote-table","commit_stats":null,"previous_names":["systemxlabs/datafusion-remote-table"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemxlabs%2Fdatafusion-remote-table","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemxlabs%2Fdatafusion-remote-table/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemxlabs%2Fdatafusion-remote-table/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemxlabs%2Fdatafusion-remote-table/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/systemxlabs","download_url":"https://codeload.github.com/systemxlabs/datafusion-remote-table/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250751652,"owners_count":21481310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datafusion","mysql","oracle","postgresql","rust","sql","sqlite"],"created_at":"2025-03-14T01:17:47.010Z","updated_at":"2025-04-30T11:48:58.189Z","avatar_url":"https://github.com/systemxlabs.png","language":"Rust","readme":"# datafusion-remote-table\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n[![Crates.io](https://img.shields.io/crates/v/datafusion-remote-table.svg)](https://crates.io/crates/datafusion-remote-table)\n\n## Features\n1. Execute SQL queries on remote databases and stream results as datafusion table provider\n2. Support inferring schema or user specified schema\n3. Support pushing down filters and limit to remote databases\n4. Execution plan can be serialized for distributed execution\n5. Record batches can be transformed before outputting to next plan node\n\n## Usage\n```rust\n#[tokio::main]\npub async fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    let options = ConnectionOptions::Postgres(PostgresConnectionOptions::new(\n        \"localhost\",\n        5432,\n        \"user\",\n        \"password\",\n    ));\n    let remote_table = RemoteTable::try_new(options, \"select * from supported_data_types\").await?;\n\n    let ctx = SessionContext::new();\n    ctx.register_table(\"remote_table\", Arc::new(remote_table))?;\n\n    ctx.sql(\"select * from remote_table\").await?.show().await?;\n\n    Ok(())\n}\n```\n\n## Supported databases\n- [x] Postgres\n  - [x] Int2 / Int4 / Int8\n  - [x] Float4 / Float8 / Numeric\n  - [x] Char / Varchar / Text / Bpchar / Bytea\n  - [x] Date / Time / Timestamp / Timestamptz / Interval\n  - [x] Bool / Oid / Name / Json / Jsonb / Geometry(PostGIS)\n  - [x] Int2[] / Int4[] / Int8[]\n  - [x] Float4[] / Float8[]\n  - [x] Char[] / Varchar[] / Bpchar[] / Text[] / Bytea[]\n- [x] MySQL\n  - [x] TinyInt (Unsigned) / Smallint (Unsigned) / MediumInt (Unsigned) / Int (Unsigned) / Bigint (Unsigned)\n  - [x] Float / Double / Decimal\n  - [x] Date / DateTime / Time / Timestamp / Year\n  - [x] Char / Varchar / Binary / Varbinary\n  - [x] TinyText / Text / MediumText / LongText\n  - [x] TinyBlob / Blob / MediumBlob / LongBlob\n  - [x] Json / Geometry\n- [x] Oracle\n  - [x] Number / BinaryFloat / BinaryDouble / Float\n  - [x] Varchar2 / NVarchar2 / Char / NChar / Long / Clob / NClob\n  - [x] Raw / Long Raw / Blob\n  - [x] Date / Timestamp\n  - [x] Boolean \n- [x] SQLite\n  - [x] Null / Integer / Real / Text / Blob\n\n## Thanks\n- [datafusion-table-providers](https://crates.io/crates/datafusion-table-providers)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemxlabs%2Fdatafusion-remote-table","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystemxlabs%2Fdatafusion-remote-table","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemxlabs%2Fdatafusion-remote-table/lists"}