8000 Read the fixed-size values that columns of every kind store in the same way in one place by dominion525 · Pull Request #142 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Read the fixed-size values t 10000 hat columns of every kind store in the same way in one place - #142

Merged
dominion525 merged 2 commits into
mainfrom
refactor/values
Oct 26, 2026
Merged

dominion525 merged 2 commits into
mainfrom
refactor/values

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • read_fixed_value, read_variable_value and read_calculated_value each read Byte, Int, Long, BigInt, Float, Double, Money, Timestamp and Guid values with the same arm for each type, checking the length and reading little-endian bytes. They now share stored_value, and each keeps only the arms that differ: the binary of a DateTimeExtended that cannot be read (its 42 bytes, or the whole variable-length value), the text and long values of variable-length columns, and the Boolean, the DECIMAL form of Numeric and the types that calculated values are not read in.
  • read_column_value reads a calculated column, read_variable_value a Memo or OLE value, and calculated_result_types the result type of each column, in functions of their own; parse_ext_datetime tells the layout of a DateTimeExtended and its digits in functions of their own.
  • The first commit tests the fixed-size types stored as variable-length, which no test read, and calculated values too short or of other types. They pass before and after.
  • The CSV of the 1,152 tables of the 120 databases of the test data, system tables included, is the same before and after, character for character.
  • Functions above the thresholds: 29 → 23. Tests: 1115 → 1119.
Function Before (CC / Cog / SLOC) After, the function of the largest CC
read_fixed_value 33 / 53 / 133 9 / 6 / 19
read_variable_value 38 / 14 / 83 6 / 2 / 19
read_calculated_value 34 / 16 / 81 9 / 2 / 24
read_column_value 12 / 21 / 46 8 / 9 / 35
parse_ext_datetime 17 / 7 / 26 7 / 2 / 11
calculated_result_types 11 / 10 / 25 9 / 2 / 13

🤖 Generated with Claude Code

dominion525 and others added 2 commits October 26, 2026 18:13
…lculated values too short or of other types

- Test each fixed-size type read as variable-length data, and one byte short as Null, and a DateTimeExtended that cannot be read and a Boolean
- Test calculated Byte and Float values, payloads one byte short, and the types or forms a calculated value is not read in

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…me way in one place

- Read a fixed-size value as an ordinary column stores it with stored_value, which read_fixed_value, read_variable_value and read_calculated_value share, each keeping only the arms that differ
- Read a Memo or OLE value, a DateTimeExtended, a calculated column and the result type of a calculated column in functions of their own
- Tell the layout of a DateTimeExtended and its digits in functions of their own

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

Coverage

For 86b9aaf.

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                 4639                96    97.93%         284                 3    98.94%        2641                56    97.88%           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%        
A629
   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                            37158              1134    96.95%        2706                75    97.23%       21227               488    97.70%           0                 0         -

@dominion525
dominion525 merged commit 0719e9d into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the refactor/values branch October 26, 2026 11:44
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