1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

Fix the ".dump" command in the CLI so that it is not affected by

mode settings like --fpfmt, --ifmt, or --textjsonb.
[bugs:/info/2026-10-18T20:39:22Z|/info/2026-10-18T20:39:22Z]

FossilOrigin-Name: a9d8123e27fa71bf7d29ec4cc7aa997f5e94de3c5b48907ccb7242795e44144c
This commit is contained in:
drh
2026-10-19 12:02:08 +00:00
parent 58f8fe5547
commit 10586997d9
4 changed files with 54 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
C Do\snot\srun\sthe\sOR\soptimization\son\sthe\sleft\soperand\sof\sa\sLEFT\sJOIN.\n[bugs:/info/2026-10-18T16:10:55Z|Bug\s2026-10-18T16:10:55Z].
D 2026-10-18T23:45:59.905
C Fix\sthe\s".dump"\scommand\sin\sthe\sCLI\sso\sthat\sit\sis\snot\saffected\sby\nmode\ssettings\slike\s--fpfmt,\s--ifmt,\sor\s--textjsonb.\n[bugs:/info/2026-10-18T20:39:22Z|/info/2026-10-18T20:39:22Z]
D 2026-10-19T12:02:08.747
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -803,7 +803,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c 0e0990f60c93db38c735d85e5d1741130e72dd0670aec204b5a39118b53c8044
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c 1367ef94822d7f9179c119906315f4a1ef1765aa04c0e08db0cd66a58e2d191d
F src/shell.c.in 3e11598ebd82077fb525874046250117502e665ac75b6e9912acf29a8514ffd7
F src/shell.c.in 7b2b927ade38b5ac1553eeeba3e22d42da87ba585c00d5277b8595090ac96c59
F src/sqlite.h.in 648fdc66f52433fc0f6cf9564ac924cde544eca9605bbac36aa22d8c944f11ed
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 5e113c4c0442f2f1b3345d44cbe4b82fad45f2fc0c35f0ed4eef27fb8f1cb394
@@ -1529,7 +1529,7 @@ F test/mmapcorrupt.test 470fb44fe92e99c1d23701d156f8c17865f5b027063c9119dcfdb842
F test/mmapfault.test d4c9eff9cd8c2dc14bc43e71e042f175b0a26fe3
F test/mmapleak.test 7542cafa4771abba531d072ea905f474a2875a153337a04f327f0a9319cdb72c
F test/mmapwarm.test 2272005969cd17a910077bd5082f70bc1fefad9a875afec7fc9af483898ecaf3
F test/modeA.sql 85875b8d676a3f4f7cb320f1a3d2b87e739dd9f3958902689a37a675affa125c
F test/modeA.sql ef3227057969c2bc22f9ac741f37b0fad4166c184f010a17a660623aa89fc7a9
F test/multiplex.test d74c034e52805f6de8cc5432cef8c9eb774bb64ec29b83a22effc8ca4dac1f08
F test/multiplex2.test 580ca5817c7edbe4cc68fa150609c9473393003a
F test/multiplex3.test fac575e0b1b852025575a6a8357701d80933e98b5d2fe6d35ddaa68f92f6a1f7
@@ -2287,8 +2287,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P 845190e3f2ede1f64d7e26ec9391d3551080c1d787599d49bad402c3734d81aa
R 097ca74841620a107f4b676054a6633b
P b4974127526b290149447849bf9c24c9ea01678755a58af3843c9e2c73c417d2
R 173f8968dabb00bebdb6a472f81cd6fe
U drh
Z 9ef3372a867dded1c7f0a5b2abcca5f3
Z 79a8816ac565f6a1aed056d06beacd35
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
b4974127526b290149447849bf9c24c9ea01678755a58af3843c9e2c73c417d2
a9d8123e27fa71bf7d29ec4cc7aa997f5e94de3c5b48907ccb7242795e44144c

View File

@@ -4292,6 +4292,9 @@ static int dump_callback(void *pArg, int nArg, char **azArg, char **azNotUsed){
p->mode.spec.eBlob = QRF_BLOB_Sql;
p->mode.spec.bTitles = QRF_No;
p->mode.spec.nCharLimit = 0;
p->mode.spec.bTextJsonb = QRF_No;
p->mode.spec.zIFmt = 0;
p->mode.spec.zFpFmt = 0;
rc = shell_exec(p, sSelect.zTxt, 0);
if( (rc&0xff)==SQLITE_CORRUPT ){
cli_puts("/****** CORRUPTION ERROR *******/\n", p->out);
@@ -10614,6 +10617,8 @@ static int do_meta_command(const char *zLine, ShellState *p){
p->shellFlgs = savedShellFlags;
modeFree(&p->mode);
p->mode = saved_mode;
if( p->mode.spec.zFpFmt ) p->mode.spec.zFpFmt = p->mode.zFpFmt;
if( p->mode.spec.zIFmt ) p->mode.spec.zIFmt = p->mode.zIFmt;
rc = p->nErr>0;
}else

View File

@@ -670,3 +670,44 @@ SELECT '' AS '';
│ │
╰──╯
END
# Bug 2026-10-18T20:39:22Z
#
# .dump should not be affected by the --fpfmt, --ifmt, and --textjsonb
# settings of .mode
#
.open :memory:
.testcase 1400
CREATE TABLE t1(a,b,c);
INSERT INTO t1 VALUES(1234.5678, 16, jsonb('{"a":1}'));
INSERT INTO t1 VALUES(0.5, 1234567, x'0102');
.mode list --fpfmt %.2f --ifmt %x --textjsonb on
.dump
.check <<END
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1(a,b,c);
INSERT INTO t1 VALUES(1234.5678,16,x'4c17611331');
INSERT INTO t1 VALUES(0.5,1234567,x'0102');
COMMIT;
END
.testcase 1410
.mode list --ifmt %,d
.dump
.check <<END
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1(a,b,c);
INSERT INTO t1 VALUES(1234.5678,16,x'4c17611331');
INSERT INTO t1 VALUES(0.5,1234567,x'0102');
COMMIT;
END
.testcase 1420
SELECT a, b FROM t1;
.check <<END
1234.57|16
0.50|1,234,567
END
.testcase 1430
.mode
.check ".mode list --fpfmt %.2f --ifmt %,d --limits on --textjsonb on"