• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / wrappers / 25217488007
82%

Build:
DEFAULT BRANCH: main
Ran 01 May 2026 02:25PM UTC
Jobs 1
Files 64
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 May 2026 02:10PM UTC coverage: 80.788% (+0.5%) from 80.324%
25217488007

push

github

web-flow
feat: add aggregate pushdown support (COUNT/SUM/AVG/MIN/MAX) (#586)

* feat: add aggregate pushdown support (COUNT/SUM/AVG/MIN/MAX)

Based on PR #549 by JohnCari with critical fix: aggregates and group_by
are now stored in FdwState and passed through output_rel->fdw_private
to the executor. Previously fdw_private was null, so extracted aggregates
were silently discarded.

Changes:
- Add AggregateKind enum, Aggregate struct with deparse() methods
- Add FDW trait methods: supported_aggregates(), supports_group_by(),
  get_aggregate_rel_size(), begin_aggregate_scan()
- Add GetForeignUpperPaths callback in new upper.rs module
- Add aggregates/group_by fields to FdwState in scan.rs
- begin_foreign_scan detects aggregate path and calls begin_aggregate_scan
- EXPLAIN output includes aggregate info when present
- PG version compat: PG13-PG18 (disabled_nodes, fdw_restrictinfo)

* fix: address CodeRabbit review — validate aggregates and GROUP BY

1. Reject pushdown when SUM/AVG/MIN/MAX has no simple column reference
   (e.g. SUM(a+b)) to avoid generating invalid SQL like SUM(*)
2. Abort pushdown when any GROUP BY item is not a plain column reference
   to prevent incomplete GROUP BY clauses
3. Rebuild state.tgts for aggregate paths to reflect the actual output
   shape (group_by columns + aggregate result columns), preventing
   ERRCODE_FDW_INVALID_COLUMN_NUMBER from the executor

* fix: guard upper module import with PG feature cfg

The upper module is conditionally compiled with pg13-pg18 feature flags,
but fdw_routine() imported it unconditionally, causing build failures
without PG features. Wrap the import and GetForeignUpperPaths assignment
with the same cfg guard.

* fix: address CodeRabbit round 2 — aggfilter, aggtype, default warning

1. Reject pushdown for aggregates with FILTER clause (aggfilter check)
2. Add type_oid field to Aggregate struct, populated from Aggref::aggtype
   instead of inferring from the input column type
3. Default begin_aggregate... (continued)

655 of 752 new or added lines in 6 files covered. (87.1%)

3 existing lines in 2 files now uncovered.

9020 of 11165 relevant lines covered (80.79%)

64.61 hits per line

Uncovered Changes

Lines Coverage ∆ File
26
75.96
-2.93% supabase-wrappers/src/interface.rs
20
91.94
supabase-wrappers/src/upper.rs
18
79.52
3.42% wrappers/src/fdw/bigquery_fdw/bigquery_fdw.rs
18
82.35
2.13% wrappers/src/fdw/mssql_fdw/mssql_fdw.rs
8
83.14
2.05% supabase-wrappers/src/scan.rs
7
83.98
1.14% wrappers/src/fdw/clickhouse_fdw/clickhouse_fdw.rs

Coverage Regressions

Lines Coverage ∆ File
2
83.98
1.14% wrappers/src/fdw/clickhouse_fdw/clickhouse_fdw.rs
1
75.64
-0.43% wrappers/src/fdw/s3_fdw/parquet.rs
Jobs
ID Job ID Ran Files Coverage
1 25217488007.1 01 May 2026 02:25PM UTC 64
80.79
GitHub Action Run
Source Files on build 25217488007
  • Tree
  • List 64
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25217488007
  • 6fa4ea85 on github
  • Prev Build on main (#24066154514)
  • Next Build on main (#25302345241)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc