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

datatug / datatug-cli / 25867873074
62%

Build:
DEFAULT BRANCH: main
Ran 14 May 2026 03:11PM UTC
Jobs 1
Files 268
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

14 May 2026 03:09PM UTC coverage: 37.292% (+0.2%) from 37.074%
25867873074

push

github

trakhimenok
feat(dbcopy): wire inGitDB → SQLite reverse direction end-to-end

Bumps ingitdb-cli to v1.10.0 (PK column-name preservation in
DescribeCollection) and unblocks the reverse-direction round-trip that
was t.Skip-ed pending that upstream fix.

Two engine changes were needed alongside the dep bump:

1. Switch source-read query from dal.NewTextQuery to a StructuredQuery
   built via dal.NewQueryBuilder(dal.From(colRef)).SelectIntoRecordset().
   dalgo2ingitdb's ExecuteQueryToRecordsReader rejects TextQuery outright;
   dalgo2sql happily converts a StructuredQuery to text via q.String().
   Both source backends now flow through the same code path.

2. Adapter-aware target key construction (new buildTargetKey helper in
   engine_rows.go):
   - inGitDB target: key.ID = encoded PK value (single column raw or
     `__`-joined composite). The driver uses it as the record filename.
   - SQL target: key.ID = nil via dal.NewIncompleteKey. The dalgo2sql
     INSERT path would panic ("record key has value but no primary key
     defined") if key.ID were set but the configured dal.Schema is empty
     (dalgo2sqlite passes nil columns/schema at construction). With the
     ID unset, dalgo2sql iterates the data map and emits all columns —
     PK columns flow through as regular columns and SQLite enforces the
     PK constraint at the DB level.

Test updates:
- engine_reverse_test.go: t.Skip replaced with require.NoError; the
  TestCopy_RoundTrip_ChinookViaInGitDB now asserts reverse RowsCopied ==
  forward RowsCopied (== 15607).
- partial_failure_test.go: faultySourceDB now detects the source table
  from either StructuredQuery (via From().Base().(dal.CollectionRef))
  or the legacy TextQuery shape.

Live binary verified — SQLite → inGitDB → SQLite produces:
  - 15607 rows each direction, 0 skips
  - Album row 1 = "For Those About To Rock We Salute You" (intact)
  - PlaylistTrack 8715 rows (composite PK round-trips via __-encoded
    filenames on the inGitDB hop, decode... (continued)

9 of 11 new or added lines in 1 file covered. (81.82%)

5 existing lines in 2 files now uncovered.

5150 of 13810 relevant lines covered (37.29%)

0.44 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
80.21
-0.47% pkg/dbcopy/engine_rows.go

Coverage Regressions

Lines Coverage ∆ File
3
51.08
5.91% pkg/dbcopy/reload.go
2
76.27
-1.13% pkg/dbcopy/engine.go
Jobs
ID Job ID Ran Files Coverage
1 25867873074.1 14 May 2026 03:11PM UTC 268
37.29
GitHub Action Run
Source Files on build 25867873074
  • Tree
  • List 268
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • ca635889 on github
  • Prev Build on main (#25866326428)
  • Next Build on main (#25872809075)
  • Delete
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