Repository navigation
feat: P0/M0 foundation - #15
Merged
Merged
Conversation
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ment Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…taFusion sessions Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… graceful shutdown Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r results Each statement of a simple query is now planned, executed and sent to the client before the next one is planned, so DML and SELECTs observe the effects of earlier statements. When a statement fails, the results already sent stay with the client, followed by the ErrorResponse; the remaining statements are skipped, matching PostgreSQL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Without authentication in M0, these statements let any client read and write arbitrary local files. Tables come from Iceberg catalogs, so neither is product surface. Plans containing either node, including under EXPLAIN ANALYZE, are rejected before execution with feature_not_supported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ssing auth Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A failed registration completed the shutdown future immediately and stopped the server with exit code 0. Log a warning and wait forever instead, as the SIGTERM branch does, which now logs its failure too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements milestone M0 Foundation of the P0 roadmap, following the M0 plan.
fmt,clippy -D warningsandtest, all with--locked.egret-engine-common: theRoletype, plus configuration loaded from defaults, then a TOML file, thenEGRET_ENGINE__*environment variables (figment,deny_unknown_fields).egret-engine-pgwire: serves the PostgreSQL simple query protocol, with one DataFusionSessionContextper connection.42601for syntax errors,XX000for everything else.CREATE EXTERNAL TABLEandCOPY ... TOare rejected with0A000, including insideEXPLAIN ANALYZE, because M0 has no authentication.egret-engine-server: theegret-enginebinary, with--configand--role(theworkerrole is rejected until M2),tracinglogs, and graceful shutdown on Ctrl-C or SIGTERM.Changes beyond the plan text, from the final review
INSERTfollowed bySELECT count(*)in one query returned a stale count. It now runs and sends one statement at a time.CREATE EXTERNAL TABLEorCOPY ... TO. With no authentication, any client could use them to read or write local files, so both are now rejected.0.0.0.0; it now uses127.0.0.1.Design follow-ups are recorded on #8 (M1: build the session after startup, share one
RuntimeEnv,42P01) and #12 (M5: PostgreSQL compatibility gaps).Test plan
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --locked -- -D warningscargo test --workspace --locked: 31 passed (common 9, pgwire 5 unit + 11 protocol, server 3, cli 3)psql -c "SELECT 1 AS one, 'hello' AS greeting"against the binary returns 1 row; Ctrl-C logsegret-engine stoppedand exits 0Closes #7
🤖 Generated with Claude Code