Commit Graph

50 Commits

Author SHA1 Message Date
drh c2b9896e50 Enforce the --charlimit constraint in QRF.
FossilOrigin-Name: c25f8fdedd8d68e3551a445e24e1c60e105e18f9cf8f1badcbb77a58974f3381
2025-11-14 21:40:20 +00:00
drh a7b9a10707 Fix harmless compiler warnings. Incorporate "USAGE:" comments on dot-command
implementations into the CLI ".help" command output.

FossilOrigin-Name: 046bfab4a01e8a7cc58d1bdf0756c90ba354562d79e5453c08202daf648e76a6
2025-11-14 14:59:43 +00:00
drh d5ee8aa625 Fix various bugs and compiler warnings. All tests now passing on linux, mac,
and windows.  More testing needed, though.

FossilOrigin-Name: 2220cb70c2f1ee30dcdf917a20feacdfcb3789433d0645fea626fd4c5cf0d099
2025-11-14 13:07:45 +00:00
drh b9a471a745 More details on the format of the QRF_STYLE_Json and QRF_STYLE_JOBject.
FossilOrigin-Name: 2b22321df9c2f51e4b0ab9e4da859c58bb3f194ad69c22b9d32b35831740f9dd
2025-11-12 19:03:05 +00:00
drh 3b847a4040 Rename QRF_STYLE_JsonLine to QRF_STYLE_JObject. Add new convenience modes
to the CLI and generally refactor and improve the ".mode" command.  Some
tests are failing, mostly due to changes in error message output and similar.

FossilOrigin-Name: 4c8109682e3a224fd8e015e73a9c1c7b6d56ad747d7ca7bc387bb92e1c98f731
2025-11-12 12:44:02 +00:00
drh b43e8920d8 Minor refactoring of some field names in the sqlite3_qrf_spec object, to try
to make the names more intuitive, memorable, and succinct.

FossilOrigin-Name: 3450bc7eecb717abedbaeb56dc824e14eb35ed30322fe3dd3b4b1cbd5fd14c60
2025-11-11 18:07:42 +00:00
drh 71b65c5055 Revamp the internal data structures that the CLI uses for tracking and
managing the display mode.  This is an incremental check-in.  The code
compiles and runs, but not all tests are passing.

FossilOrigin-Name: 8cc581e53c2ab15bd311e082048b7c57b03a754d25c0b4beead08a3362ac1c7a
2025-11-10 23:40:40 +00:00
drh 0c4c0dbc7d Keep explicit NULL values in QRF_STYLE_Json output.
FossilOrigin-Name: cb07f3d441b0b2a3ebdfaa9456891a9c8e33fa07b967532a9edfaf6ff3163cb0
2025-11-10 22:05:42 +00:00
drh 09f16c5ab6 Add the bTextNull field to sqlite3_qrf_spec. Use QRF to implement "tcl"
mode in the CLI.

FossilOrigin-Name: 2ba92320db3c16c3c91e29ea935ae92da546261f25846d242bd2dd27e0b7e032
2025-11-10 12:32:04 +00:00
drh 7f28c6d64e Enforce mxRowHeight in columnar layouts. Code clean-up. Minimum column with
is 2 if there is wrapping, in case there are double-wide characters.

FossilOrigin-Name: 0ee8fc00af4c82da0d597c65dd3d8590c71ea78d8f4a29653bbb21668c6c530d
2025-11-09 17:25:23 +00:00
drh c1aac60386 Fixes for harmless static analyzer warnings.
FossilOrigin-Name: 37bd136ae842c8f8110c10b0834c804a8af133ce0caff492f37bd567a56ac6c6
2025-11-09 00:37:29 +00:00
drh edc34bf866 Name changes. QRF_TEXT_Off becomes QRF_TEXT_Plain. mxTotalWidth becomes
nScreenWidth.

FossilOrigin-Name: 871567e377e976e0bb191d466019d1d4abe126f2da1880f1e25cd92b06a666d1
2025-11-08 22:46:29 +00:00
drh bfa8c7d370 Improvements to QRF_STYLE_Line. Make it responsive to mxTotalWidth and
mxRowHeight.  Indent subsequent lines appropriately.  Add corresponding
test cases.

FossilOrigin-Name: 23ddc38cf19845a385c8b33002805c3c864ab9b2e36c3d609794444b06d20c89
2025-11-08 18:31:57 +00:00
drh 44aea46a07 Fix minor issues with alignment and quoting. All legacy tests are now
passing.

FossilOrigin-Name: 712b890531d351cf19d57d8cc6dced5cdd2c394d69fd1ace98298d79ddca269a
2025-11-08 17:08:19 +00:00
drh 96e47e16e7 Miscellaneous fixes to the new alignment configurations.
FossilOrigin-Name: 787fb4c2ac80db6552bc7a740c3c3c63c0c8414cb4e7db80d367b4b5512519d0
2025-11-08 15:25:07 +00:00
drh 22d6a48ba7 Separate column width specification from cell alignment.
FossilOrigin-Name: 5dadfd7f41764ddfed39bb49bbde3a54d8f282bb494c9c2abbba37d0995a7f8e
2025-11-08 14:04:29 +00:00
drh ca111b06f3 Minor changes to fix a few legacy test cases. Snapshot prior to yet another
refactor.

FossilOrigin-Name: b429e7882fd630a490350efa38bfce8686d6727f324a60191337a59d5436828b
2025-11-08 10:48:55 +00:00
drh e8cd0ee61f Make sure columnar outputs always invoke qrfWrite().
FossilOrigin-Name: 21084041196dd6908bb810d8fce80b7f6d5b12ebe474bf62b85128540ad020eb
2025-11-08 03:44:05 +00:00
drh 6eb5f5d9a7 Rewrite the table layout in QRF. Easier to maintain now. Still a few
shell test failures, but much better after this rewrite.

FossilOrigin-Name: 25838d282c5f7a922988245f373edfe8adbe28e929abce83afcda2b08472e685
2025-11-08 03:20:47 +00:00
drh d2424338b0 Incremental check-in. QRF is working, but there are many test failures
in the shell test modules.

FossilOrigin-Name: de7fc9afc43d4bd5f5995832cd698633e0e7213c190fa044856c9f82512161f9
2025-11-07 17:48:14 +00:00
drh a6b4039050 Begin the process of integrating QRF into the CLI. Adjust makefiles.
Include the QRF code in shell.c.  But QRF is not yet used by the CLI.

FossilOrigin-Name: 7596fc32b371e5e657e830c2e80e61b0947320a7359833e915a888a438c2e935
2025-11-07 14:31:17 +00:00
drh eedf226700 Update documentation to clarify that mxTotalWidth and mxLength are not
yet implemented.

FossilOrigin-Name: c25806fc5491554f1cd55174c6cf98b509d619e3011b8e26abdf05b24133a6e8
2025-11-07 13:23:29 +00:00
drh 84c03d6c36 Rename "mxWidth" to "mxColWidth". Add "mxTotalWidth" and "mxLength"
settings and hook them up to the TCL interface, but those settings are
not yet implemented.

FossilOrigin-Name: 3f327e8fbc295b43c79118f8f49f8d2e20c2f3ac96e3b7f996720dab858d8199
2025-11-07 13:11:16 +00:00
drh 10747754d4 Add the JsonLine output style.
FossilOrigin-Name: 7dfba841cfc515ac28401c4eb90ec24e04fd52cddaeae41be3cfa6967dac0eac
2025-11-07 12:12:02 +00:00
drh 04586681af Put the style constants in alphabetic order. Improvements to
documentation.

FossilOrigin-Name: d5e891426f8b2a0c3326bf868f2d811c44a1f7e619f42b273c7445ab443d618c
2025-11-06 23:34:30 +00:00
drh 099f7f052b Revamp so that Explain and Eqp styles force the statement into the
the appropriate explain-mode for the rendering and restore it afterwards.
Add the new scanstatus styles: Stats, StatsEst, and StatsVm.

FossilOrigin-Name: 128f1149076ef00c567405ea2112be0ae665b12e81672ae5494d82af11633af5
2025-11-06 19:22:34 +00:00
drh 1f3efba202 Changes to try to improve EXPLAIN capabilities. This is a snapshot
prior to an attempt to make sweeping changes in that area of the
interface.

FossilOrigin-Name: e7367d8089d43a06933f919c33c6edb15ee9bedf52d9a2d9ea989654077d998f
2025-11-06 17:28:34 +00:00
drh 2e660d30f5 Further testing and bug fixing.
FossilOrigin-Name: d6b1bac15a692a69f3707fca721b57b3b283edb3850efa34ba42b02c3669fc71
2025-11-05 22:33:47 +00:00
drh 33cc175e51 The TCL interface for QRF is now feature complete (at least until I think
of new features to add).  There is still a lot of testing, bug-fixing,
and documentation to be done, however.

FossilOrigin-Name: 633fe4fe584ae14ed6ced1ae137bf96a434a012423d70f0f93876737b0ca075c
2025-11-05 18:27:18 +00:00
drh b230147671 A few simple test cases added.
FossilOrigin-Name: 7200372ed2424d1ac4c88644e0b17a224539f170b9111ced9c88774edbd75261
2025-11-05 16:29:06 +00:00
drh a354a15717 New style setting QRF_STYLE_Auto which chooses box, explain, or EQP depending
on the statement to be rendered.  Improvements to memory management.
Updates to the documentation.

FossilOrigin-Name: 468ba188f034b23398e1f07b915cf7c8b337dcf7f56a13511947c5322ae98722
2025-11-05 15:44:11 +00:00
drh 0296bab9fd The new "format" method in the TCL interface is now partially functional.
FossilOrigin-Name: ace1ebda08740bb248c009cc4a6c99da318a2bba3e43ef20bd0c365c5021705f
2025-11-05 14:07:16 +00:00
drh 9ff8a73ba4 New build product "tclsqlite-ex.c" is the tclsqlite.c file with QRF added.
This is now used whereever tclsqlite.c was used.  Hence QRF is now in the
testfixture and in the tclextension.  The sqlite3 method is "format".  That
method is currently just a non-functional stub.

FossilOrigin-Name: e08d21fe1365176f268f1dcca4048fb5ff043356e5817c8622b4ed9a1a5a58cf
2025-11-05 12:37:42 +00:00
drh 03e6242802 Striving for better names for fields in the spec structure.
FossilOrigin-Name: 9644e2a8db4d97a85aa7660a1536894ab971abca52fb32f946c01de30eb40de3
2025-10-29 13:03:35 +00:00
drh 630b111cd3 Documentation tweaks. Change the name of the eQuote setting to eText for
consistency.

FossilOrigin-Name: 612326750155ff15c9a73fde938aa035490cdd95b364452c1e6b19b521508dfe
2025-10-29 11:19:04 +00:00
drh a73fb2b233 Add support for the bTxtJsonb flag in sqlite3_qrf_spec, which if true causes
JSONB blobs to be displayed as JSON text.

FossilOrigin-Name: 3fcf9ecb039a903cefcf4eeaf43974de0cbd48d899dc189b8f70c3745addc11a
2025-10-28 22:25:24 +00:00
drh ccae8e0c47 Fix a harmless compiler warning.
FossilOrigin-Name: d00c549126ca96b061e537dfabb93b02824e3a9b8fa0c9135a96cf060262206e
2025-10-28 19:37:18 +00:00
drh c64739e017 Change the documentation name to README.md so that it displays
automatically when browsing the source directory.

FossilOrigin-Name: 0cda773e7665caafa46acbded0cf430d04e08e21d3c1333c1964e7f7fa200290
2025-10-23 23:07:02 +00:00
drh a75737f931 Bring the documentation into sync with the current implementation.
FossilOrigin-Name: b14e05759aed1cc3ea9fbb10d9241e95f8482bb77973f2f7eda8b849a7c3ea5d
2025-10-23 23:03:14 +00:00
drh c873460fd1 Add support for QUOTE and EXPLAIN modes.
FossilOrigin-Name: c4d612a5720eace463ee8b1d7484eddd9701b8f2155479077a1410532e8d3e4e
2025-10-23 20:13:57 +00:00
drh 52d1e3aef3 Add support for EQP mode.
FossilOrigin-Name: 61b2011d8ec2bfe98595ac9ccae5ed0037444757a800706d0ecbc279014fd3fb
2025-10-23 18:57:15 +00:00
drh cc1a3d3d85 Add CSV mode.
FossilOrigin-Name: bf0fec0d4961bd4df3ff874bf8d32b28df48a1739e107ffb0b7bf57affe5f0b6
2025-10-23 17:09:03 +00:00
drh 09efb92900 Implement LINE mode.
FossilOrigin-Name: b4c4ba0ad53c6685410700aa332ebec75c9e32848f881b31bc257f86f7befe2c
2025-10-23 16:57:57 +00:00
drh b3a3a4c006 Add HTML and INSERT modes.
FossilOrigin-Name: 6d695ecdfdc5dca78b430263fc298bb6c8182a2406dc79b70f159abd37463f1e
2025-10-23 16:40:29 +00:00
drh fa56585242 Implement JSON mode.
FossilOrigin-Name: c3b6339162a4feb6de9828d613bf2c5a43f2b0e5dead9cf5c24cf78ac821b305
2025-10-23 16:22:01 +00:00
drh a678784c4c Assigned widths and alignments on columns.
FossilOrigin-Name: f6359f2fa776ef04449660a3452fdf7ee943523bf3290f3c0e15693962bca1db
2025-10-22 21:24:17 +00:00
drh e40b5d9867 Column modes are now working.
FossilOrigin-Name: ed1c8a62ff6985845a2b664f12752f97404b0449e4290d8604a215406590290c
2025-10-22 21:00:52 +00:00
drh f32be465e8 Code in place to do column formats. Compiles, but does not work.
This is an incremental check-in.

FossilOrigin-Name: a05e021354ff5868f75ac01d384c3aaaedb7c483dd8f9533f6ab9fbb66b5f077
2025-10-22 18:09:54 +00:00
drh 3c11df7e92 Merge va_list misuse fix.
FossilOrigin-Name: e33ca68fee5bb6c5195f5a8fef231dcf08433806f5f44b855c2c670d37df6ac7
2025-10-22 12:59:34 +00:00
drh 41b5ded8d0 Refactor: Name change to "query result formatter" or "QRF". Simplify names.
put all the code into its own subdirectory of ext/

FossilOrigin-Name: 8646a2ee224819cf459989aa03bd1b9e1a77fc1f8bee8fd45dba778c63467d61
2025-10-22 12:33:59 +00:00