8000 Return Null rather than a wrong value for a calculated column whose result type is unknown by dominion525 · Pull Request #169 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Re 8000 turn Null rather than a wrong value for a calculated column whose result type is unknown - #169

Merged
dominion525 merged 1 commit into
mainfrom
fix/calculated-unknown-type
Oct 26, 2026
Merged

dominion525 merged 1 commit into
mainfrom
fix/calculated-unknown-type

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • When the map given to TableRows::new, read_table_rows_with or read_row_at had no result type for a calculated column, its wrapper (16 zero bytes, a length, the value) was read as the placeholder type of the column, giving wrong values such as Text("\0\0…"), Double(0.0) and Numeric("268435456"). calculated_column_types returns an empty map when it cannot read the properties, so read_table_rows could give them too.
  • Such a column is now Null; the signatures are unchanged.
  • A new test reads calcFieldTestV2010.accdb with an empty map: the calculated columns are Null and the others are as read_table_rows gives them; it fails on the old code. The CSV export of the 2,105 tables of the test data is the same as before.

🤖 Generated with Claude Code

…esult type is unknown

- Make a calculated column whose result type is not in the map Null, instead of reading its wrapper (16 zero bytes, a length, the value) as the placeholder type
- Say in the doc of read_table_rows_with that such a column is Null
- Test that the calculated columns read with an empty map are Null and the other columns are unchanged

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

Coverage

For b29ebbb.

Filename                       Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
jetdb-cli/src/export.rs            118                11    90.68%           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              911                40    95.61%          82                 4    95.12%         579                29    94.99%           0                 0         -
jetdb-cli/src/prop.rs              332                20    93.98%          38                 2    94.74%         194                 9    95.36%           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             3917               103    97.37%         257                 4    98.44%        2064                29    98.59%           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                   867                24    97.23%          73                 0   100.00%         492                 6    98.78%           0                 0         -
jetdb/src/data.rs                 4753                89    98.13%         297                 3    98.99%        2680                50    98.13%           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                 3212               128    96.01%         238                10    95.80%        1730                49    97.17%           0                 0         -
jetdb/src/form2000.rs              800                20    97.50%          62                 1    98.39%         425                 4    99.06%           0                 0         -
jetdb/src/format.rs                616                 2    99.68%          45                 0   100.00%         388                 2    99.48%           0                 0         -
jetdb/src/lib.rs                    10                 3    70.00%           1                 0   100.00%           7                 2    71.43%           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                 296                 0   100.00%          28                 0   100.00%         190                 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             491                 0   100.00%          51                 0   100.00%         285                 0   100.00%           0                 0         -
jetdb/src/vba.rs                   949                57    93.99%          82                11    86.59%         540                21    96.11%           0                 0         -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                            37849              1139    96.99%        2764                74    97.32%       21601               493    97.72%           0                 0         -

@dominion525
dominion525 merged commit 11d1af0 into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the fix/calculated-unknown-type branch October 26, 2026 17:03
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