8000 Split the cracking of rows and the reading of long values into the steps they read in by dominion525 · Pull Request #143 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Split the cracking of rows and the reading of long values in 8000 to the steps they read in - #143

Merged
dominion525 merged 1 commit into
mainfrom
refactor/rows
Oct 26, 2026
Merged

dominion525 merged 1 commit into
mainfrom
refactor/rows

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • read_lval_data reads an inline long value, one on a single page and one on a chain of pages in functions of their own, chosen by a match on the type of the long value. A check of an inline value that is never true (its start is never past its end) is dropped.
  • crack_row_jet4 reads its offset table in a function of its own. crack_row_jet3 finds where its offset table starts and how many jumps it uses, and reads its offsets, in functions of their own; the handling of the 256-byte boundary is moved as it is, with its comments. The errors of rows that cannot be cracked are made with row_error.
  • TableRows::peek reads the page of the next row and what is at it in a method of its own.
  • The CSV of the 1,152 tables of the 120 databases of the test data, system tables and the Access 97 databases included, is the same before and after, character for character.
  • Functions above the thresholds: 23 → 19. Tests: 1119, as before. The 19 that are left are the matches over types and kinds, the match over the XML events, the match over the subcommands of the CLI, the straight reads of a column entry, the check of the TypeScript types, and two whose length is their content (expected values and comments).
Function Before (CC / Cog / SLOC) After, the function of the largest CC
read_lval_data 20 / 24 / 62 8 / 1 / 11
crack_row_jet3 11 / 13 / 96 5 / 5 / 49
crack_row_jet4 5 / 6 / 53 3 / 2 / 29
peek 10 / 3 / 28 7 / 2 / 23

🤖 Generated with Claude Code

…eps they read in

- Read an inline 
8000
long value, one on a single page and one on a chain of pages in functions of their own, chosen by a match on the type of the long value, and drop a check of an inline value that is never true
- Read the offset table of a Jet4 row, and where the offset table of a Jet3 row starts and how many jumps it uses, keeping the handling of the 256-byte boundary as it is, and its offsets, in functions of their own
- Make the errors of rows that cannot be cracked with row_error
- Read the page of the next row and what is at it in a method of its own

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Coverage

For 28a2455.

Filename                       Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
jetdb-cli/src/export.rs            113                11    90.27%           6                 0   100.00%          65                 6    90.77%           0                 0         -
jetdb-cli/src/form.rs              239                19    92.05%          24                 5    79.17%         151                 6    96.03%           0                 0         -
jetdb-cli/src/macro_cmd.rs         117                10    91.45%           7                 2    71.43%          62                 4    93.55%           0                 0         -
jetdb-cli/src/main.rs              910                39    95.71%          82                 4    95.12%         578                28    95.16%           0                 0         -
jetdb-cli/src/prop.rs              322                18    94.41%          37                 2    94.59%         185                 7    96.22%           0                 0         -
jetdb-cli/src/query.rs              65                 3    95.38%           5                 0   100.00%          32                 0   100.00%           0                 0         -
jetdb-cli/src/vba.rs                59                 3    94.92%           5                 0   100.00%          28                 0   100.00%           0                 0         -
jetdb-wasm/src/lib.rs             3901                96    97.54%         257                 4    98.44%        2058                22    98.93%           0                 0         -
jetdb/src/catalog.rs               509                14    97.25%          46                 0   100.00%         299                 3    99.00%           0                 0         -
jetdb/src/complex.rs               924                32    96.54%          73                 0   100.00%         605                15    97.52%           0                 0         -
jetdb/src/crypto.rs               2300               112    95.13%         127                10    92.13%        1315                60    95.44%           0                 0         -
jetdb/src/csv.rs                   857                24    97.20%          72                 0   100.00%         486                 6    98.77%           0                 0         -
jetdb/src/data.rs                 4662                91    98.05%         293                 3    98.98%        2647                51    98.07%           0                 0         -
jetdb/src/ddl/access.rs             70                 0   100.00%           7                 0   100.00%          46                 0   100.00%           0                 0         -
jetdb/src/ddl/mod.rs              2771                 8    99.71%         208                 2    99.04%        1501                 6    99.60%           0                 0         -
jetdb/src/ddl/mysql.rs              70                 0   100.00%           7                 0   100.00%          46                 0   100.00%           0                 0         -
jetdb/src/ddl/postgres.rs           71                 0   100.00%           7                 0   100.00%          46                 0   100.00%           0                 0         -
jetdb/src/ddl/sqlite.rs             69                 0   100.00%           7                 0   100.00%          48                 0   100.00%           0                 0         -
jetdb/src/encoding.rs              284                 0   100.00%          30                 0   100.00%         153                 0   100.00%           0                 0         -
jetdb/src/file.rs                 1915                65    96.61%         117                 0   100.00%         983                18    98.17%           0                 0         -
jetdb/src/form.rs                 3123               128    95.90%         230                10    95.65%        1684                48    97.15%           0                 0         -
jetdb/src/form2000.rs              762                21    97.24%          56                 1    98.21%         402                 4    99.00%           0                 0         -
jetdb/src/format.rs                616                 2    99.68%          45                 0   100.00%         388                 2    99.48%           0                 0         -
jetdb/src/lib.rs                     3                 0   100.00%           1                 0   100.00%           3                 0   100.00%           0                 0         -
jetdb/src/macro_action.rs          299                19    93.65%          27                 3    88.89%         165                24    85.45%           0                 0         -
jetdb/src/macro_def.rs            2440                88    96.39%         196                 9    95.41%        1596                36    97.74%           0                 0         -
jetdb/src/macro_text.rs            804                24    97.01%          54                 2    96.30%         451                20    95.57%           0                 0         -
jetdb/src/map.rs                   416                13    96.88%          27                 0   100.00%         221                 5    97.74%           0                 0         -
jetdb/src/money.rs                 281                 0   100.00%          26                 0   100.00%         186                 0   100.00%           0                 0         -
jetdb/src/prop.rs                 1375                18    98.69%          90                 0   100.00%         695                10    98.56%           0                 0         -
jetdb/src/query.rs                2514                62    97.53%         200                 1    99.50%        1550                18    98.84%           0                 0         -
jetdb/src/relationship.rs          249                26    89.56%          22                 0   100.00%         177                10    94.35%           0                 0         -
jetdb/src/save_as_text.rs          574                27    95.30%          52                 3    94.23%         341                27    92.08%           0                 0         -
jetdb/src/storage.rs               764                32    95.81%          57                 0   100.00%         434                 6    98.62%           0                 0         -
jetdb/src/table.rs                1679                67    96.01%         109                 2    98.17%        1017                18    98.23%           0                 0         -
jetdb/src/timestamp.rs             405                 0   100.00%          44                 0   100.00%         235                 0   100.00%           0                 0         -
jetdb/src/vba.rs                   649                57    91.22%          62                12    80.65%         354                23    93.50%           0                 0         -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                            37181              1129    96.96%        2715                75    97.24%       21233               483    97.73%           0                 0         -

@dominion525
dominion525 merged commit 4e633b9 into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the refactor/rows branch October 26, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0