int iStart = sqlite3_str_length(pOut);
switch( p->spec.eText ){
case QRF_TEXT_Sql: {
- sqlite3_str_appendf(pOut, "%Q", zTxt);
+ if( p->spec.eEsc==QRF_ESC_Off ){
+ sqlite3_str_appendf(pOut, "%Q", zTxt);
+ }else{
+ sqlite3_str_appendf(pOut, "%#Q", zTxt);
+ }
break;
}
case QRF_TEXT_Csv: {
static void qrfLoadAlignment(qrfColData *pData, Qrf *p){
sqlite3_int64 i;
memset(pData->aAlign, p->spec.eDfltAlign, pData->nCol);
- for(i=0; i<pData->nCol && i<p->spec.nAlign; i++){
- unsigned char ax = p->spec.aAlign[i];
- if( (ax & QRF_ALIGN_HMASK)!=0 ){
- pData->aAlign[i] = (ax & QRF_ALIGN_HMASK) |
- (pData->aAlign[i] & QRF_ALIGN_VMASK);
+ for(i=0; i<pData->nCol; i++){
+ if( i<p->spec.nAlign ){
+ unsigned char ax = p->spec.aAlign[i];
+ if( (ax & QRF_ALIGN_HMASK)!=0 ){
+ pData->aAlign[i] = (ax & QRF_ALIGN_HMASK) |
+ (pData->aAlign[i] & QRF_ALIGN_VMASK);
+ }
+ }else if( i<p->spec.nWidth ){
+ if( p->spec.aWidth[i]<0 ){
+ pData->aAlign[i] = QRF_ALIGN_Right |
+ (pData->aAlign[i] & QRF_ALIGN_VMASK);
+ }
+ }else{
+ break;
}
}
}
}
/* Compute the width and alignment of every column */
- if( p->spec.bColumnNames==QRF_Yes ){
- memset(data.aAlign, p->spec.eTitleAlign, nColumn);
- }else{
+ if( p->spec.bColumnNames==QRF_No ){
qrfLoadAlignment(&data, p);
+ }else if( p->spec.eTitleAlign==QRF_Auto ){
+ memset(data.aAlign, QRF_ALIGN_Center, nColumn);
+ }else{
+ memset(data.aAlign, p->spec.eTitleAlign, nColumn);
}
for(i=0; i<nColumn; i++){
default: { /* QRF_STYLE_List */
if( p->nRow==0 && p->spec.bColumnNames==QRF_Yes ){
int saved_eText = p->spec.eText;
- if( p->spec.eText!=QRF_TEXT_Csv ) p->spec.eText = QRF_TEXT_Off;
+ p->spec.eText = p->spec.eTitle;
for(i=0; i<p->nCol; i++){
const char *zCName = sqlite3_column_name(p->pStmt, i);
if( i>0 ) sqlite3_str_appendall(p->pOut, p->spec.zColumnSep);
-C Miscellaneous\sfixes\sto\sthe\snew\salignment\sconfigurations.
-D 2025-11-08T15:25:07.110
+C Fix\sminor\sissues\swith\salignment\sand\squoting.\s\sAll\slegacy\stests\sare\snow\npassing.
+D 2025-11-08T17:08:19.763
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F ext/misc/zipfile.c 09e6e3a3ff40a99677de3c0bc6569bd5f4709b1844ac3d1c1452a456c5a62f1c
F ext/misc/zorder.c bddff2e1b9661a90c95c2a9a9c7ecd8908afab5763256294dd12d609d4664eee
F ext/qrf/README.md 7c32e08e1cc5bb704f243a641ddfaf2f00152bbeb62c3a621efcf9371e6b156b
-F ext/qrf/qrf.c 0592756f5b4d072790c3ff052a56b40dd4fbcd3c1420f4c60cfd4f457a329f1b
+F ext/qrf/qrf.c 6586b0b3d06a19b025cca9d2058ae16c2bd2acf9808511fc607c196480fd283b
F ext/qrf/qrf.h 3917767fdd7547bded156327f2b6bf3e1dbf6c7ea787f67f31453815986fe780
F ext/rbu/rbu.c 801450b24eaf14440d8fd20385aacc751d5c9d6123398df41b1b5aa804bf4ce8
F ext/rbu/rbu1.test 25870dd7db7eb5597e2b4d6e29e7a7e095abf332660f67d89959552ce8f8f255
F src/resolve.c 5616fbcf3b833c7c705b24371828215ad0925d0c0073216c4f153348d5753f0a
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c ba9cd07ffa3277883c1986085f6ddc4320f4d35d5f212ab58df79a7ecc1a576a
-F src/shell.c.in 2a8ff6f666823459a9e65dc28c6f9825ec3625d77865c2d8db3e419a355baa3e
+F src/shell.c.in d355f1254c435152c65a3df76d117342bfe3ef84a94c05be84d1e246c2c8d5d2
F src/sqlite.h.in 43f60117ce68847b9d4e7fa43c2ac42bb324185e66b924d3114b24d4037fc263
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 7f236ca1b175ffe03316d974ef57df79b3938466c28d2f95caef5e08c57f3a52
F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb
F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc
F test/pushdown.test 46a626ef1c0ca79b85296ff2e078b9da20a50e9b804b38f441590c3987580ddd
-F test/qrf01.test 6053b4680c9d939dd210d2536fa77d3e54ede9f44c2884db261a79612fa28399
+F test/qrf01.test 91d586648b8c847684a2849a77975a036115c51d6a2dfb543d9f27c5921578a1
F test/qrf02.test 39b4afdc000bedccdafc0aecf17638df67a67aaa2d2942865ae6abcc48ba0e92
F test/queryonly.test 5f653159e0f552f0552d43259890c1089391dcca
F test/quick.test 1681febc928d686362d50057c642f77a02c62e57
F test/shared_err.test 32634e404a3317eeb94abc7a099c556a346fdb8fb3858dbe222a4cbb8926a939
F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304
F test/shell1.test 5b72afb03752278e18c7faeda7329e6118a04e07a4203837bea9d66866d2cd0b
-F test/shell2.test ab23f01ea2347e4b72bb2399af7ee82aa00f9c059141749f7c4064abca5ad728
+F test/shell2.test d8da6a06dcce1d8f04f776f918d4d57c28ddc28c54f3a44f95429794892e3a91
F test/shell3.test 603b448e917537cf77be0f265c05c6f63bc677c63a533c8e96aae923b56f4a0e
F test/shell4.test 03593fa7908a55f255916ffeda707cdf55680c777736e3da62b1d78cde0d684d
F test/shell5.test 683f9b5df61192426d030874a04adcb15b5f14c5f3062e2637d4378a3e7224f8
F test/shell7.test 43fd8e511c533bab5232e95c7b4be93b243451709e89582600d4b6e67693d5c3
F test/shell8.test 641cf21a99c59404c24e3062923734951c4099a6b6b6520de00cf7a1249ee871
F test/shell9.test 8742a5b390cdcef6369f5aa223e415aa4255a4129ef249b177887dc635a87209
-F test/shellA.test 4ecff8b7b2c0122ba8174abfbcc4b0f59e44d80f2a911068f8cd4cfc6661032d
+F test/shellA.test 601e9efaa2604a0e92b8dc0093cbc08d482d7175d2a6c617c70e1acef98ffb4d
F test/shmlock.test 9f1f729a7fe2c46c88b156af819ac9b72c0714ac6f7246638a73c5752b5fd13c
F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3
F test/show_speedtest1_rtree.tcl 32e6c5f073d7426148a6936a0408f4b5b169aba5
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 5dadfd7f41764ddfed39bb49bbde3a54d8f282bb494c9c2abbba37d0995a7f8e
-R b5ca6911301d259c44cb06229f6e8f82
+P 787fb4c2ac80db6552bc7a740c3c3c63c0c8414cb4e7db80d367b4b5512519d0
+R 2c11f8dfd3215a866ba4691d29f4b62f
U drh
-Z 62a882cb37c25b41ad74b0d2277aeced
+Z 63b56e985be7fc0017e9304d5e94721c
# Remove this line to create a well-formed Fossil manifest.
-787fb4c2ac80db6552bc7a740c3c3c63c0c8414cb4e7db80d367b4b5512519d0
+712b890531d351cf19d57d8cc6dced5cdd2c394d69fd1ace98298d79ddca269a
spec.zTableName = pArg->zDestTable;
spec.bWordWrap = pArg->cmOpts.bWordWrap!=0 ? QRF_SW_On : QRF_SW_Off;
spec.mxColWidth = pArg->cmOpts.iWrap;
+ if( pArg->cmOpts.bQuote ){
+ spec.eText = QRF_TEXT_Sql;
+ }
switch( pArg->eEscMode ){
case SHELL_ESC_ASCII: spec.eEsc = QRF_ESC_Ascii; break;
case SHELL_ESC_SYMBOL: spec.eEsc = QRF_ESC_Symbol; break;
bind_prepared_stmt(pArg, pStmt);
if( eStyle<100 ){
spec.eStyle = eStyle;
- sqlite3_format_query_result(pStmt, &spec, 0);
+ sqlite3_format_query_result(pStmt, &spec, pzErrMsg);
}else{
exec_prepared_stmt(pArg, pStmt);
}
}
do_test 1.112 {
set result "\n[db format -style list -columnnames on -text sql -null NULL \
- {SELECT * FROM t1}]"
+ -title off {SELECT * FROM t1}]"
} {
a|b|c
1|2.5|'three'
do_test 1.131 {
set result "\n[db format -style quote -columnnames on {SELECT * FROM t1}]"
} {
-a,b,c
+'a','b','c'
1,2.5,'three'
x'424c4f42',NULL,'Ἀμήν'
}
UPDATE OR REPLACE t5 SET a = 4 WHERE a = 1;
}
-} {1 {Runtime error near line 9: too many levels of trigger recursion}}
+} {1 {Error near line 9: too many levels of trigger recursion}}
} {
1,'line with '' single quote'
2,unistr('\u001b[31mVT-100 codes\u001b[0m')
-6,'new
-line'
+6,unistr('new\u000aline')
7,unistr('carriage\u000dreturn')
8,'last line'
}
│ a │ x │
├───┼───────────────────────────────────────────┤
│ 1 │ 'line with '' single quote' │
-├───┼───────────────────────────────────────────┤
│ 2 │ unistr('\u001b[31mVT-100 codes\u001b[0m') │
-├───┼───────────────────────────────────────────┤
-│ 6 │ 'new │
-│ │ line' │
-├───┼───────────────────────────────────────────┤
+│ 6 │ unistr('new\u000aline') │
│ 7 │ unistr('carriage\u000dreturn') │
-├───┼───────────────────────────────────────────┤
│ 8 │ 'last line' │
└───┴───────────────────────────────────────────┘
}