Development and usage instructions
This scorecard compares how q, cqdb, peachq and l perform on the same Q test suite, covering language features and integration behavior. Is It Q? was created to make compatibility gaps visible, check real use cases across runtimes, and track improvements as new versions are released.
The results show which tested features work in each recorded runtime version. Coverage is the percentage of shipped test cases passed; it does not establish complete Q support.
Pass: all cases passed. Partial: some passed. Fail: none passed. Each result shows passed/total cases; click for details. Untested means no complete feature run. Runtime columns are ranked by overall pass rate, highest first; stale or incomplete runs appear last. Total coverage = passed cases / all shipped cases. Failed, missing and interrupted cases remain in the denominator. Stale: the recorded suite differs from this checkout; open the result for its original evidence.
| Feature | q | cqdb | peachq | l |
|---|---|---|---|---|
| Total coverage | Pass 100.00% (16,174/16,174) | Partial 99.91% (16,159/16,174) | Partial 81.71% (13,215/16,174) | Partial 9.56% (1,546/16,174) |
| Types and nulls | Pass 95/95 | Pass 95/95 | Pass 95/95 | Partial 93/95 |
| Casts | Pass 91/91 | Pass 91/91 | Partial 89/91 | Pass 91/91 |
| Operators | Pass 83/83 | Pass 83/83 | Partial 82/83 | Partial 82/83 |
| Lists and indexing | Pass 145/145 | Pass 145/145 | Partial 127/145 | Partial 144/145 |
| Adverbs | Pass 45/45 | Pass 45/45 | Partial 40/45 | Partial 43/45 |
| Dictionaries | Pass 48/48 | Pass 48/48 | Partial 46/48 | Fail 0/48; crash |
| Tables and basic queries | Pass 84/84 | Pass 84/84 | Partial 72/84 | Partial 83/84 |
| Joins | Pass 39/39 | Pass 39/39 | Partial 31/39 | Partial 29/39 |
| Dates and times | Pass 108/108 | Pass 108/108 | Partial 76/108 | Partial 100/108 |
| Strings | Pass 66/66 | Pass 66/66 | Partial 63/66 | Partial 61/66 |
| Formatting | Pass 41/41 | Partial 39/41 | Partial 39/41 | Partial 40/41 |
| Functions | Pass 62/62 | Pass 62/62 | Partial 61/62 | Partial 61/62 |
| Scope | Pass 42/42 | Partial 41/42 | Partial 39/42 | Partial 40/42 |
| Built-in functions | Pass 82/82 | Pass 82/82 | Partial 71/82 | Partial 77/82 |
| Error handling | Pass 32/32 | Pass 32/32 | Partial 31/32 | Partial 31/32 |
| Parsing and syntax | Pass 37/37 | Pass 37/37 | Partial 29/37 | Partial 36/37 |
| Binary serialization | Pass 73/73 | Pass 73/73 | Partial 60/73 | Partial 59/73 |
| JSON | Pass 47/47 | Pass 47/47 | Pass 47/47 | Partial 44/47 |
| Control flow | Pass 57/57 | Pass 57/57 | Partial 55/57 | Partial 53/57 |
| Advanced queries | Pass 43/43 | Partial 40/43 | Partial 30/43 | Partial 40/43 |
| Math | Pass 48/48 | Pass 48/48 | Partial 47/48 | Partial 46/48 |
| Linear algebra | Pass 93/93 | Pass 93/93 | Partial 91/93 | Partial 88/93 |
| Value display | Pass 34/34 | Partial 27/34 | Partial 33/34 | Partial 33/34 |
| Runtime | Pass 14/14 | Pass 14/14 | Partial 12/14 | Partial 10/14 |
| System commands | Pass 1/1 | Pass 1/1 | Pass 1/1 | Pass 1/1 |
| Text file I/O | Pass 9/9 | Pass 9/9 | Pass 9/9 | Pass 9/9 |
| Combinatorial keyword and type cases | Pass 14,470/14,470 | Pass 14,470/14,470 | Partial 11,791/14,470 | Fail 0/14,470; crash |
| Flat storage | Pass 1/1 | Pass 1/1 | Pass 1/1 | Pass 1/1 |
| Splayed storage | Pass 1/1 | Pass 1/1 | Fail 0/1; error | Pass 1/1 |
| Namespaces | Pass 1/1 | Pass 1/1 | Fail 0/1 | Pass 1/1 |
| Views | Pass 1/1 | Pass 1/1 | Fail 0/1; error | Pass 1/1 |
| IPC loopback | Pass 1/1 | Pass 1/1 | Fail 0/1 | Fail 0/1; timeout |
| K glyphs | Pass 68/68 | Pass 68/68 | Fail 0/68; incomplete | Pass 68/68 |
| K adverbs | Pass 32/32 | Pass 32/32 | Fail 0/32; incomplete | Pass 32/32 |
| Join edge cases | Pass 9/9 | Pass 9/9 | Partial 8/9 | Partial 4/9 |
| Larger-data correctness | Pass 8/8 | Pass 8/8 | Pass 8/8 | Partial 7/8 |
| Parallel execution | Pass 7/7 | Pass 7/7 | Partial 5/7 | Partial 6/7 |
| Malformed inputs and recovery | Pass 7/7 | Pass 7/7 | Pass 7/7 | Pass 7/7 |
| Restart and log replay | Pass 5/5 | Pass 5/5 | Fail 0/5; error | Pass 5/5 |
| Partitioned storage | Pass 8/8 | Pass 8/8 | Fail 0/8; error | Pass 8/8 |
| Server callbacks and timers | Pass 10/10 | Partial 8/10 | Fail 0/10; error | Fail 0/10; timeout |
| IPC typed payloads | Pass 14/14 | Pass 14/14 | Partial 12/14 | Fail 0/14; timeout |
| IPC framing and malformed messages | Pass 7/7 | Pass 7/7 | Pass 7/7 | Partial 6/7 |
| Segmented storage | Pass 5/5 | Pass 5/5 | Fail 0/5 | Pass 5/5 |
| Runtime | Version | Platform | Tested (UTC) | Last check (UTC) | Update |
|---|---|---|---|---|---|
| q | 5.0.20260723 | linux-x86_64 | 2026-09-09T10:58:02+00:00 | 2026-09-09T10:58:00+00:00 | updated |
| cqdb | 0.26.4 | linux-x86_64 | 2026-09-09T10:58:02+00:00 | 2026-09-09T10:58:00+00:00 | updated |
| peachq | v0.81 | linux-x86_64 | 2026-09-09T10:58:03+00:00 | 2026-09-09T10:58:00+00:00 | updated |
| l | 20260908 | linux-x86_64 | 2026-09-09T11:02:17+00:00 | 2026-09-09T11:00:44+00:00 | updated |
Each assertion counts once; each whole-program snapshot counts once. Feature groups are not weighted scores.
| Feature | Test files |
|---|---|
| Types and nulls | 01_atoms_types.q |
| Casts | 02_casts.q |
| Operators | 03_operators.q |
| Lists and indexing | 04_lists_indexing.q |
| Adverbs | 05_adverbs.q |
| Dictionaries | 06_dicts.q |
| Tables and basic queries | 07_tables_qsql.q |
| Joins | 08_joins.q |
| Dates and times | 09_temporal.q |
| Strings | 10_text.q |
| Formatting | 20_format.q |
| Functions | 11_functions.q |
| Scope | 23_scope.q |
| Built-in functions | 12_builtins.q |
| Error handling | 13_errors.q |
| Parsing and syntax | 14_parse_forms.q |
| Binary serialization | 15_serialization.q |
| JSON | 16_json.q |
| Control flow | 17_control.q |
| Advanced queries | 18_qsql_advanced.q |
| Math | 19_math.q |
| Linear algebra | 21_linalg.q |
| Value display | 22_display.q |
| Runtime | 24_runtime.q |
| System commands | system_cmds.q |
| Text file I/O | 25_textio.q |
| Combinatorial keyword and type cases | 90_enumerated.q |
| Flat storage | fileio_flat.q |
| Splayed storage | fileio_splayed.q |
| Namespaces | namespaces.q |
| Views | views.q |
| IPC loopback | ipc_client.q |
| K glyphs | k01_glyphs.k |
| K adverbs | k02_adverbs.k |
| Join edge cases | test_joins.q |
| Larger-data correctness | test_large_vectors.q |
| Parallel execution | test_parallel.q |
| Malformed inputs and recovery | test_robustness.q |
| Restart and log replay | test_restart.q |
| Partitioned storage | test_partitions.q |
| Server callbacks and timers | test_callbacks.q |
| IPC typed payloads | test_ipc_values.q |
| IPC framing and malformed messages | test_ipc_frames.json |
| Segmented storage | test_segments.q |
Current suite SHA-256: a2b94a124fa74e72068d6230b0c8559eb620a93c2ad5e91d19db0888c3bde00a.
See automation for execution and publication settings.
1 commits
Hacker News (1)
q
81.7%
Python
15.8%
HiveQL
2.1%
Development and usage instructions
This scorecard compares how q, cqdb, peachq and l perform on the same Q test suite, covering language features and integration behavior. Is It Q? was created to make compatibility gaps visible, check real use cases across runtimes, and track improvements as new versions are released.
The results show which tested features work in each recorded runtime version. Coverage is the percentage of shipped test cases passed; it does not establish complete Q support.
Pass: all cases passed. Partial: some passed. Fail: none passed. Each result shows passed/total cases; click for details. Untested means no complete feature run. Runtime columns are ranked by overall pass rate, highest first; stale or incomplete runs appear last. Total coverage = passed cases / all shipped cases. Failed, missing and interrupted cases remain in the denominator. Stale: the recorded suite differs from this checkout; open the result for its original evidence.
| Feature | q | cqdb | peachq | l |
|---|---|---|---|---|
| Total coverage | Pass 100.00% (16,174/16,174) | Partial 99.91% (16,159/16,174) | Partial 81.71% (13,215/16,174) | Partial 9.56% (1,546/16,174) |
| Types and nulls | Pass 95/95 | Pass 95/95 | Pass 95/95 | Partial 93/95 |
| Casts | Pass 91/91 | Pass 91/91 | Partial 89/91 | Pass 91/91 |
| Operators | Pass 83/83 | Pass 83/83 | Partial 82/83 | Partial 82/83 |
| Lists and indexing | Pass 145/145 | Pass 145/145 | Partial 127/145 | Partial 144/145 |
| Adverbs | Pass 45/45 | Pass 45/45 | Partial 40/45 | Partial 43/45 |
| Dictionaries | Pass 48/48 | Pass 48/48 | Partial 46/48 | Fail 0/48; crash |
| Tables and basic queries | Pass 84/84 | Pass 84/84 | Partial 72/84 | Partial 83/84 |
| Joins | Pass 39/39 | Pass 39/39 | Partial 31/39 | Partial 29/39 |
| Dates and times | Pass 108/108 | Pass 108/108 | Partial 76/108 | Partial 100/108 |
| Strings | Pass 66/66 | Pass 66/66 | Partial 63/66 | Partial 61/66 |
| Formatting | Pass 41/41 | Partial 39/41 | Partial 39/41 | Partial 40/41 |
| Functions | Pass 62/62 | Pass 62/62 | Partial 61/62 | Partial 61/62 |
| Scope | Pass 42/42 | Partial 41/42 | Partial 39/42 | Partial 40/42 |
| Built-in functions | Pass 82/82 | Pass 82/82 | Partial 71/82 | Partial 77/82 |
| Error handling | Pass 32/32 | Pass 32/32 | Partial 31/32 | Partial 31/32 |
| Parsing and syntax | Pass 37/37 | Pass 37/37 | Partial 29/37 | Partial 36/37 |
| Binary serialization | Pass 73/73 | Pass 73/73 | Partial 60/73 | Partial 59/73 |
| JSON | Pass 47/47 | Pass 47/47 | Pass 47/47 | Partial 44/47 |
| Control flow | Pass 57/57 | Pass 57/57 | Partial 55/57 | Partial 53/57 |
| Advanced queries | Pass 43/43 | Partial 40/43 | Partial 30/43 | Partial 40/43 |
| Math | Pass 48/48 | Pass 48/48 | Partial 47/48 | Partial 46/48 |
| Linear algebra | Pass 93/93 | Pass 93/93 | Partial 91/93 | Partial 88/93 |
| Value display | Pass 34/34 | Partial 27/34 | Partial 33/34 | Partial 33/34 |
| Runtime | Pass 14/14 | Pass 14/14 | Partial 12/14 | Partial 10/14 |
| System commands | Pass 1/1 | Pass 1/1 | Pass 1/1 | Pass 1/1 |
| Text file I/O | Pass 9/9 | Pass 9/9 | Pass 9/9 | Pass 9/9 |
| Combinatorial keyword and type cases | Pass 14,470/14,470 | Pass 14,470/14,470 | Partial 11,791/14,470 | Fail 0/14,470; crash |
| Flat storage | Pass 1/1 | Pass 1/1 | Pass 1/1 | Pass 1/1 |
| Splayed storage | Pass 1/1 | Pass 1/1 | Fail 0/1; error | Pass 1/1 |
| Namespaces | Pass 1/1 | Pass 1/1 | Fail 0/1 | Pass 1/1 |
| Views | Pass 1/1 | Pass 1/1 | Fail 0/1; error | Pass 1/1 |
| IPC loopback | Pass 1/1 | Pass 1/1 | Fail 0/1 | Fail 0/1; timeout |
| K glyphs | Pass 68/68 | Pass 68/68 | Fail 0/68; incomplete | Pass 68/68 |
| K adverbs | Pass 32/32 | Pass 32/32 | Fail 0/32; incomplete | Pass 32/32 |
| Join edge cases | Pass 9/9 | Pass 9/9 | Partial 8/9 | Partial 4/9 |
| Larger-data correctness | Pass 8/8 | Pass 8/8 | Pass 8/8 | Partial 7/8 |
| Parallel execution | Pass 7/7 | Pass 7/7 | Partial 5/7 | Partial 6/7 |
| Malformed inputs and recovery | Pass 7/7 | Pass 7/7 | Pass 7/7 | Pass 7/7 |
| Restart and log replay | Pass 5/5 | Pass 5/5 | Fail 0/5; error | Pass 5/5 |
| Partitioned storage | Pass 8/8 | Pass 8/8 | Fail 0/8; error | Pass 8/8 |
| Server callbacks and timers | Pass 10/10 | Partial 8/10 | Fail 0/10; error | Fail 0/10; timeout |
| IPC typed payloads | Pass 14/14 | Pass 14/14 | Partial 12/14 | Fail 0/14; timeout |
| IPC framing and malformed messages | Pass 7/7 | Pass 7/7 | Pass 7/7 | Partial 6/7 |
| Segmented storage | Pass 5/5 | Pass 5/5 | Fail 0/5 | Pass 5/5 |
| Runtime | Version | Platform | Tested (UTC) | Last check (UTC) | Update |
|---|---|---|---|---|---|
| q | 5.0.20260723 | linux-x86_64 | 2026-09-09T10:58:02+00:00 | 2026-09-09T10:58:00+00:00 | updated |
| cqdb | 0.26.4 | linux-x86_64 | 2026-09-09T10:58:02+00:00 | 2026-09-09T10:58:00+00:00 | updated |
| peachq | v0.81 | linux-x86_64 | 2026-09-09T10:58:03+00:00 | 2026-09-09T10:58:00+00:00 | updated |
| l | 20260908 | linux-x86_64 | 2026-09-09T11:02:17+00:00 | 2026-09-09T11:00:44+00:00 | updated |
Each assertion counts once; each whole-program snapshot counts once. Feature groups are not weighted scores.
| Feature | Test files |
|---|---|
| Types and nulls | 01_atoms_types.q |
| Casts | 02_casts.q |
| Operators | 03_operators.q |
| Lists and indexing | 04_lists_indexing.q |
| Adverbs | 05_adverbs.q |
| Dictionaries | 06_dicts.q |
| Tables and basic queries | 07_tables_qsql.q |
| Joins | 08_joins.q |
| Dates and times | 09_temporal.q |
| Strings | 10_text.q |
| Formatting | 20_format.q |
| Functions | 11_functions.q |
| Scope | 23_scope.q |
| Built-in functions | 12_builtins.q |
| Error handling | 13_errors.q |
| Parsing and syntax | 14_parse_forms.q |
| Binary serialization | 15_serialization.q |
| JSON | 16_json.q |
| Control flow | 17_control.q |
| Advanced queries | 18_qsql_advanced.q |
| Math | 19_math.q |
| Linear algebra | 21_linalg.q |
| Value display | 22_display.q |
| Runtime | 24_runtime.q |
| System commands | system_cmds.q |
| Text file I/O | 25_textio.q |
| Combinatorial keyword and type cases | 90_enumerated.q |
| Flat storage | fileio_flat.q |
| Splayed storage | fileio_splayed.q |
| Namespaces | namespaces.q |
| Views | views.q |
| IPC loopback | ipc_client.q |
| K glyphs | k01_glyphs.k |
| K adverbs | k02_adverbs.k |
| Join edge cases | test_joins.q |
| Larger-data correctness | test_large_vectors.q |
| Parallel execution | test_parallel.q |
| Malformed inputs and recovery | test_robustness.q |
| Restart and log replay | test_restart.q |
| Partitioned storage | test_partitions.q |
| Server callbacks and timers | test_callbacks.q |
| IPC typed payloads | test_ipc_values.q |
| IPC framing and malformed messages | test_ipc_frames.json |
| Segmented storage | test_segments.q |
Current suite SHA-256: a2b94a124fa74e72068d6230b0c8559eb620a93c2ad5e91d19db0888c3bde00a.
See automation for execution and publication settings.
Hacker News (1)
1 commits
q
81.7%
Python
15.8%
HiveQL
2.1%