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

veeso / ic-dbms / 21566066606
95%
main: 94%

Build:
Build:
LAST BUILD BRANCH: 0.4
DEFAULT BRANCH: main
Ran 01 Feb 2026 04:14PM UTC
Jobs 1
Files 76
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 Feb 2026 04:12PM UTC coverage: 95.487% (+1.1%) from 94.374%
21566066606

push

github

web-flow
feat(api): implement JSON filtering for queries (#13) (#30)

* docs: add JSON filter design document

Design for JSON filtering in ic-dbms queries covering:
- JsonFilter enum with Contains, Extract, HasKey operations
- JsonCmp enum for comparisons on extracted values
- Dot notation path syntax with bracket array indices
- Structural containment (PostgreSQL @> style)
- Module structure and testing strategy

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(api): implement `Json` data type

Add Json data type to ic-dbms-api with full DataType trait support.

Implementation:
- Json struct wrapping serde_json::Value with cached string repr
- Default value is `null` (not empty object)
- Hierarchical type-based ordering (Ord/PartialOrd):
  Null < Bool < Number < String < Array < Object
- Recursive Hash implementation (key-order independent for objects)
- Memory encoding: 2-byte length prefix + JSON string
- Candid serialization as text
- Serde serialize/deserialize support

Integration:
- Add Json variant to Value enum with as_json() accessor
- Add Json to DataTypeKind enum
- Add InvalidJson variant to DecodeError

Tests:
- 91 tests covering ordering, hashing, encoding/decoding,
  Candid roundtrip, serde, FromStr, Display, and edge cases

closes #13

* feat(api): implement JSON filtering for queries (#13)

Add JSON-specific filter operations for querying JSON columns:

- JsonFilter::Contains - PostgreSQL @> style structural containment
- JsonFilter::Extract - Extract value at path with comparison operations
- JsonFilter::HasKey - Check if path exists in JSON structure

Path syntax supports dot notation with bracket array indices
(e.g., "user.items[0].name").

Includes:
- path.rs: PathSegment enum and parse_path() function
- extract.rs: extract_at_path() and json_value_to_dbms_value()
- contains.rs: json_contains() for structural containment
- Comprehensive test coverage (154+ new tests)
- Documentation at docs/json.md

Co-Authored-By: Claude O... (continued)

1967 of 1979 new or added lines in 8 files covered. (99.39%)

1 existing line in 1 file now uncovered.

9374 of 9817 relevant lines covered (95.49%)

764726.91 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
99.53
ic-dbms-api/src/dbms/query/filter/json_filter/path.rs
2
99.37
ic-dbms-api/src/dbms/query/filter/json_filter.rs
2
99.73
ic-dbms-api/src/dbms/types/json.rs
7
96.9
ic-dbms-api/src/dbms/query/filter/json_filter/extract.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
99.06
0.4% ic-dbms-api/src/dbms/query/filter.rs
Jobs
ID Job ID Ran Files Coverage
1 21566066606.1 01 Feb 2026 04:14PM UTC 76
95.49
GitHub Action Run
Source Files on build 21566066606
  • Tree
  • List 76
  • Changed 6
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21566066606
  • 3cd934fa on github
  • Prev Build on 0.4 (#21564533641)
  • Next Build on 0.4 (#21566663234)
  • 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