aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/expr.c2
-rw-r--r--src/sqliteInt.h3
-rw-r--r--src/where.c3
3 files changed, 8 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c
index c2e399f11..1a743ee5c 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -4074,6 +4074,7 @@ static SQLITE_NOINLINE int sqlite3IndexedExprLookup(
sqlite3VdbeAddOp3(v, OP_IfNullRow, p->iIdxCur, addr+3, target);
VdbeCoverage(v);
sqlite3VdbeAddOp3(v, OP_Column, p->iIdxCur, p->iIdxCol, target);
+ VdbeComment((v, "%s expr-column %d", p->zIdxName, p->iIdxCol));
sqlite3VdbeGoto(v, 0);
p = pParse->pIdxExpr;
pParse->pIdxExpr = 0;
@@ -4082,6 +4083,7 @@ static SQLITE_NOINLINE int sqlite3IndexedExprLookup(
sqlite3VdbeJumpHere(v, addr+2);
}else{
sqlite3VdbeAddOp3(v, OP_Column, p->iIdxCur, p->iIdxCol, target);
+ VdbeComment((v, "%s expr-column %d", p->zIdxName, p->iIdxCol));
}
return target;
}
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 0e02db8cc..a437cc0d2 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -3583,6 +3583,9 @@ struct IndexedExpr {
int iIdxCol; /* The index column that contains value of pExpr */
u8 bMaybeNullRow; /* True if we need an OP_IfNullRow check */
IndexedExpr *pIENext; /* Next in a list of all indexed expressions */
+#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS
+ const char *zIdxName; /* Name of index, used only for bytecode comments */
+#endif
};
/*
diff --git a/src/where.c b/src/where.c
index 39bbf7d64..dccf49387 100644
--- a/src/where.c
+++ b/src/where.c
@@ -5434,6 +5434,9 @@ static SQLITE_NOINLINE void whereAddIndexedExpr(
p->iIdxCur = iIdxCur;
p->iIdxCol = i;
p->bMaybeNullRow = (pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ))!=0;
+#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS
+ p->zIdxName = pIdx->zName;
+#endif
pParse->pIdxExpr = p;
if( p->pIENext==0 ){
sqlite3ParserAddCleanup(pParse, whereIndexedExprCleanup, pParse);