summaryrefslogtreecommitdiffstats
path: root/src/printf.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:16:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:16:44 +0000
commit62a67b10ff9f9eea6a4695649fb8252d2a4bc74d (patch)
tree7b54cadc082d323cda5fd24248e85b7d2ea664a3 /src/printf.c
parentAdding debian version 3.45.3-1. (diff)
downloadsqlite3-62a67b10ff9f9eea6a4695649fb8252d2a4bc74d.tar.xz
sqlite3-62a67b10ff9f9eea6a4695649fb8252d2a4bc74d.zip
Merging upstream version 3.46.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--src/printf.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/printf.c b/src/printf.c
index 2e09431..c0dcc5d 100644
--- a/src/printf.c
+++ b/src/printf.c
@@ -534,13 +534,14 @@ void sqlite3_str_vappendf(
}
exp = s.iDP-1;
- if( xtype==etGENERIC && precision>0 ) precision--;
/*
** If the field type is etGENERIC, then convert to either etEXP
** or etFLOAT, as appropriate.
*/
if( xtype==etGENERIC ){
+ assert( precision>0 );
+ precision--;
flag_rtz = !flag_alternateform;
if( exp<-4 || exp>precision ){
xtype = etEXP;
@@ -856,9 +857,13 @@ void sqlite3_str_vappendf(
sqlite3_str_appendall(pAccum, pItem->zAlias);
}else{
Select *pSel = pItem->pSelect;
- assert( pSel!=0 );
+ assert( pSel!=0 ); /* Because of tag-20240424-1 */
if( pSel->selFlags & SF_NestedFrom ){
sqlite3_str_appendf(pAccum, "(join-%u)", pSel->selId);
+ }else if( pSel->selFlags & SF_MultiValue ){
+ assert( !pItem->fg.isTabFunc && !pItem->fg.isIndexedBy );
+ sqlite3_str_appendf(pAccum, "%u-ROW VALUES CLAUSE",
+ pItem->u1.nRow);
}else{
sqlite3_str_appendf(pAccum, "(subquery-%u)", pSel->selId);
}