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

map-services / gps-routes-api / 38790099194
54%

Build:
DEFAULT BRANCH: main
Ran 15 Oct 2026 07:00PM UTC
Jobs 1
Files 22
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

15 Oct 2026 06:58PM UTC coverage: 35.653% (+0.6%) from 35.023%
38790099194

push

github

web-flow
perf(sqlite): bbox lat/lng B-tree pre-filter + CI targets the SQLite implementation (#182)

## Summary
Targets the SQLite + FTS5 + Spatialite build as the CI-published image,
and adds a lat/lng B-tree range pre-filter to SQLite bbox queries so the
planner seeks the existing `idx_routes_latitude` /
`idx_routes_longitude` indexes instead of `SCAN routes`.

## Changes (vs `main`)
- **`.github/workflows/build.yml`** — `docker-publish` now builds `file:
Dockerfile.sqlite` (SQLite+FTS5+Spatialite) instead of the default
Postgres `Dockerfile`. `build-and-test` still validates **both**
backends (Testcontainers Postgres + the real `libsqlite3-mod-spatialite`
SQLite/Spatialite path).
- **`Dockerfile.sqlite`** (new) — glibc multi-stage build,
`CGO_ENABLED=1`, build tags `sqlite,sqlite_fts5`, installs
`libsqlite3-mod-spatialite` at build+runtime, seeds `data/routes.db`
from `data/backup/` at build (avoids the `no such table: routes` 500 at
cold start).
- **`.dockerignore`** — re-include the tracked `data/backup/` for the
sqlite build; keep gitignored `data/routes.db*` excluded.
- **`db/query_builder.go`** — SQLite bbox now emits `latitude BETWEEN ?
AND ? AND longitude BETWEEN ? AND ? AND ST_Within(_geoloc, BuildMbr(?,
?, ?, ?, 4326))` (8 textual-order params); the Postgres `else` branch is
byte-identical (no gate regression).
- **`db/query_builder_test.go`** — 8-param SQLite bbox assertion +
facet/pagination param-ordering regression test.
- **`repositories/sqlite_test.go`** — regression coverage / doc
alignment.

## Verification
- Default Postgres gate: `go build ./...` OK ; `go vet ./...` OK
- SQLite+Spatialite matrix (`-tags sqlite,sqlite_fts5`, real
`mod_spatialite`): `db`, `repositories`, `cmds` OK
- Docker image (`Dockerfile.sqlite`, Docker Desktop arm64): built,
`/healthz` -> 200; Lake District bbox -> `total:10` + facets populated;
far box `[10,60,12,62]` -> `total:0`. `EXPLAIN QUERY PLAN` shows the
index seek (`SEARCH routes USING INDEX idx_routes_longit... (continued)

26 of 26 new or added lines in 1 file covered. (100.0%)

625 of 1753 relevant lines covered (35.65%)

0.36 hits per line

Jobs
ID Job ID Ran Files Coverage
1 38790099194.1 15 Oct 2026 07:00PM UTC 22
35.65
GitHub Action Run
Source Files on build 38790099194
  • Tree
  • List 22
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 592247ff on github
  • Prev Build on main (#38693762007)
  • Next Build on main (#38805603627)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc