diff options
author | dan <Dan Kennedy> | 2024-05-24 18:31:39 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2024-05-24 18:31:39 +0000 |
commit | 89b04f37864a3dcd30e2e2a6766eac5de3b51baa (patch) | |
tree | 7a7f86e2d1851f670b3376908002b4bcb8b79a3b /src/expr.c | |
parent | 31079226f78a3011b9de6c310c2df3ce727fe883 (diff) | |
download | sqlite-89b04f37864a3dcd30e2e2a6766eac5de3b51baa.tar.gz sqlite-89b04f37864a3dcd30e2e2a6766eac5de3b51baa.zip |
Ensure that queries like "SELECT indeterministic(a) FROM tbl GROUP BY 1" invoke the indeterministic function only once for each row of tbl.
FossilOrigin-Name: 4555d66547e28cb110e1012b145bcf3aafb5d4bde05e9d27bcb4ca33837b28f5
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c index 7cd50e660..4bab38363 100644 --- a/src/expr.c +++ b/src/expr.c @@ -4243,7 +4243,7 @@ void sqlite3ExprCodeMove(Parse *pParse, int iFrom, int iTo, int nReg){ ** register iReg. The caller must ensure that iReg already contains ** the correct value for the expression. */ -static void exprToRegister(Expr *pExpr, int iReg){ +void sqlite3ExprToRegister(Expr *pExpr, int iReg){ Expr *p = sqlite3ExprSkipCollateAndLikely(pExpr); if( NEVER(p==0) ) return; p->op2 = p->op; @@ -5252,7 +5252,7 @@ expr_code_doover: break; } testcase( pX->op==TK_COLUMN ); - exprToRegister(pDel, exprCodeVector(pParse, pDel, ®Free1)); + sqlite3ExprToRegister(pDel, exprCodeVector(pParse, pDel, ®Free1)); testcase( regFree1==0 ); memset(&opCompare, 0, sizeof(opCompare)); opCompare.op = TK_EQ; @@ -5602,7 +5602,7 @@ static void exprCodeBetween( compRight.op = TK_LE; compRight.pLeft = pDel; compRight.pRight = pExpr->x.pList->a[1].pExpr; - exprToRegister(pDel, exprCodeVector(pParse, pDel, ®Free1)); + sqlite3ExprToRegister(pDel, exprCodeVector(pParse, pDel, ®Free1)); if( xJump ){ xJump(pParse, &exprAnd, dest, jumpIfNull); }else{ |