DataFusion-based SQL query engine for reading PostgreSQL data files directly. Provides a library (pgfusion_lib), an interactive CLI (pgfusion_cli), and a query server (pgfusion_server, planned).
src/
├── lib.rs # declares modules, re-exports public API
├── datasource.rs # CustomDataSource, PgTableExec, PgRecordBatchStream (DataFusion providers)
├── session.rs # create_session() -- bootstraps catalogs, registers all tables
├── cli/
│ ├── main.rs # pgfusion_cli binary entry point
│ └── mod.rs # CLI logic: Cli struct (clap), REPL (rustyline), query execution
└── server/
└── main.rs # pgfusion_server binary entry point (self-contained, not in lib)
pgfusion_lib::create_session-- used by examples, benchmarks, and the CLIpgfusion_lib::CustomDataSource-- for advanced use cases needing direct table provider access
pgfusionnever parses PostgreSQL binary formats directly — delegate topg_arrow- Error handling: propagate
PgErrorandDataFusionError; useanyhowonly in binaries and tests mimallocis the global allocator in binaries (not the library)