8000 Read MSysQueries and build the FROM clause in steps of their own, with each table of codes written once by dominion525 · Pull Request #138 · dominion525/jetdb · GitHub
[go: up one dir, main page]

Skip to content

Read MSysQueries and build the FROM clause in steps of their own, with each table of codes written once - #138

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

dominion525 merged 1 commit into
mainfrom
refactor/queries

Conversation

@dominion525
Copy link
Copy Markdown
Owner

Summary

  • read_queries_in read each row of MSysQueries into a RawRow of the same six values as a QueryRow and an order, which build_query_defs copied value by value into a QueryRow. A RawRow keeps its QueryRow, and a row, its expression, the groups of rows, the names of the queries and the type of a query are read in functions of their own.
  • The type of a query is found in QueryType::ALL by its Flag, as ObjectType is found, and the names of the types of parameters are kept in a table.
  • build_from_tables builds the FROM clause from the sources of the tables, the parts of each join, the sources that hold its tables and the sources taken out for it, in functions of their own. The first sources that hold the two tables are found with position, which gives what the loop gave.
  • A TableSource writes its join from its keyword and its ON clause, append_select_body adds each clause with push_clause, and the Flag of a row is checked with row_has_flag, rather than the same check in five places, two of them the same closure.
  • The SQL of the 172 saved queries of the test data is the same before and after, character for character.
  • Functions above the thresholds: 64 → 55. Tests: 1115, as before. query_to_sql is kept as the match over the types of queries.
Function Before (CC / Cog / SLOC) After, the function of the largest CC
build_from_tables 30 / 45 / 124 8 / 1 / 24
read_queries_in 28 / 14 / 80 9 / 0 / 21
build_query_defs 12 / 5 / 43 7 / 1 / 12
sql_append 13 / 3 / 50 8 / 3 / 37
sql_crosstab 12 / 6 / 42 8 / 6 / 31
TableSource::to_sql 11 / 11 / 43 5 / 1 / 8
param_type_name 15 / 1 / 18 3 / 0 / 6
QueryType::from_flag 11 / 1 / 14 2 / 0 / 3
append_select_body 9 / 9 / 52 4 / 4 / 30

🤖 Generated with Claude Code

…h each table of codes written once

- Keep a QueryRow in a RawRow rather than copy its six values, and read a row, its expression, the groups of rows and the names of the queries in functions of their own
- Find the type of a query in QueryType::ALL by its Flag, as ObjectType is found, and keep the names of the types of parameters in a table
- Build the FROM clause from the sources of the tables, the parts of each join, the sources that hold its tables and the sources taken out for it, in functions of their own, and find the sources with position
- Write the join of a TableSource from its keyword and its ON clause, add each clause of a SELECT with push_clause, and check the Flag of a row with row_has_flag, rather than the same check in five places

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

Coverage

For 03f4401.

Filename                       Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
jetdb-cli/src/export.rs            108                11    89.81%           5                 0   100.00%          66                 6    90.91%           0                 0         -
jetdb-cli/src/form.rs              254                24    90.55%          19                 5    73.68%         152                 9    94.08%           0                 0         -
jetdb-cli/src/macro_cmd.rs         151                11    92.72%          11                 2    81.82%          81                 5    93.83%           0                 0         -
jetdb-cli/src/main.rs              864                38    95.60%          70                 2    97.14%         549                25    95.45%           0                 0         -
jetdb-cli/src/prop.rs              308                15    95.13%          33                 2    93.94%         186                10    94.62%           0                 0         -
jetdb-cli/src/query.rs              80                 4    95.00%           5                 0   100.00%          51                 1    98.04%           0                 0         -
jetdb-cli/src/vba.rs                74                 4    94.59%           5                 0   100.00%          47                 1    97.87%           0                 0         -
jetdb-wasm/src/lib.rs             3871                95    97.55%         252                 4    98.41%        2031                22    98.92%           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                 4560               179    96.07%         257                 3    98.83%        2564               110    95.71%           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              2777                 8    99.71%         199                 2    98.99%        1503                 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                   634                65    89.75%          54                16    70.37%         361                60    83.38%           0                 0         -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                            37054              1228    96.69%        2639                77    97.08%       21163               585    97.24%           0                 0         -

@dominion525
dominion525 merged commit e76cdcb into main Oct 26, 2026
11 checks passed
@dominion525
dominion525 deleted the refactor/queries branch October 26, 2026 04:37
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