1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Enhance the TreeView logic to show information about Expr.op2 for

FUNCTION and COLUMN nodes.

FossilOrigin-Name: aceeaf9e28767a0880a16872867a1f57bff163acd0f10d19d5688068077590fa
This commit is contained in:
drh
2019-10-31 12:30:38 +00:00
parent 20cee7d0bb
commit d493353e99
3 changed files with 26 additions and 8 deletions

View File

@@ -423,7 +423,14 @@ void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 moreToFollow){
case TK_COLUMN: {
if( pExpr->iTable<0 ){
/* This only happens when coding check constraints */
sqlite3TreeViewLine(pView, "COLUMN(%d)%s", pExpr->iColumn, zFlgs);
char zOp2[16];
if( pExpr->op2 ){
sqlite3_snprintf(sizeof(zOp2),zOp2," op2=0x%02x",pExpr->op2);
}else{
zOp2[0] = 0;
}
sqlite3TreeViewLine(pView, "COLUMN(%d)%s%s",
pExpr->iColumn, zFlgs, zOp2);
}else{
sqlite3TreeViewLine(pView, "{%d:%d}%s",
pExpr->iTable, pExpr->iColumn, zFlgs);
@@ -566,6 +573,17 @@ void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 moreToFollow){
if( pExpr->op==TK_AGG_FUNCTION ){
sqlite3TreeViewLine(pView, "AGG_FUNCTION%d %Q%s",
pExpr->op2, pExpr->u.zToken, zFlgs);
}else if( pExpr->op2!=0 ){
const char *zOp2;
char zBuf[8];
sqlite3_snprintf(sizeof(zBuf),zBuf,"0x%02x",pExpr->op2);
zOp2 = zBuf;
if( pExpr->op2==NC_IsCheck ) zOp2 = "NC_IsCheck";
if( pExpr->op2==NC_IdxExpr ) zOp2 = "NC_IdxExpr";
if( pExpr->op2==NC_PartIdx ) zOp2 = "NC_PartIdx";
if( pExpr->op2==NC_GenCol ) zOp2 = "NC_GenCol";
sqlite3TreeViewLine(pView, "FUNCTION %Q%s op2=%s",
pExpr->u.zToken, zFlgs, zOp2);
}else{
sqlite3TreeViewLine(pView, "FUNCTION %Q%s", pExpr->u.zToken, zFlgs);
}