8000 Quote a CSV field of any type that contains the delimiter by dominion525 · Pull Request #175 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Quote a CSV field of any type that contains the delimiter - #175

Merged
dominion525 merged 1 commit into
mainfrom
fix/csv-quote-numbers-and-dates
Oct 26, 2026
Merged

dominion525 merged 1 commit into
mainfrom
fix/csv-quote-numbers-and-dates

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • CSV fields of numbers, dates, Yes/No and binary values were not quoted when they contained the delimiter, which shifted the columns: 2021-06-14 12:45:00 with -d ' ', a date with -D "%d,%m,%Y", decimals with -d ., a negative number with -d -, hex with -d a.
  • Every field is now quoted when it contains the delimiter, a quote or a line break, by the same check as text fields; text, GUIDs and extended dates are still always quoted.
  • Fields that need no quotes are unchanged: the default export of the 2,105 tables of the test data is the same as before, and with other delimiters only quotes were added. The values inside a multivalued field stay unquoted.

🤖 Generated with Claude Code

- Quote the fields of numbers, dates, Yes/No and binary values when they contain the delimiter, a quote or a line break, as text fields are, since they shifted the columns
- Make plain_value the text of a field of every type, and quote it with csv_escape
- Test -d with a space, a dot, a minus, a and R, and a date format with a comma

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dominion525
dominion525 force-pushed the fix/csv-quote-numbers-and-dates branch from a46bedb to ee76e94 Compare October 26, 2026 17:39
@github-actions
Copy link
Copy Markdown

Coverage

For ee76e94.

Filename                       Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
jetdb-cli/src/export.rs            127                10    92.13%           6                 0   100.00%          67                 4    94.03%           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         121                11    90.91%           7                 2    71.43%          63                 4    93.65%           0                 0         -
jetdb-cli/src/main.rs              909                30    96.70%          82                 3    96.34%         582                21    96.39%           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                   974                16    98.36%          77                 0   100.00%         557                 4    99.28%           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                 3299               131    96.03%         247                11    95.55%        1776                50    97.18%           0                 0         -
jetdb/src/form2000.rs              934                20    97.86%          73                 1    98.63%         497                 4    99.20%           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                65    96.13%         109                 2    98.17%        1017                17    98.33%           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                            38188              1122    97.06%        2788                74    97.35%       21790               481    97.79%           0                 0         -

@dominion525
dominion525 merged commit 603cefe into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the fix/csv-quote-numbers-and-dates branch October 26, 2026 18:10
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