Better comment to describe the confusing operand reversal for infix
functions. (CVS 3325)

FossilOrigin-Name: 30dfb9bf2131370fe57e000495f5c292d392a010
diff --git a/src/expr.c b/src/expr.c
index 1f8346a..5ba7cde 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -12,7 +12,7 @@
 ** This file contains routines used for analyzing expressions and
 ** for generating VDBE code that evaluates expressions in SQLite.
 **
-** $Id: expr.c,v 1.264 2006/07/08 18:35:00 drh Exp $
+** $Id: expr.c,v 1.265 2006/07/08 18:41:37 drh Exp $
 */
 #include "sqliteInt.h"
 #include <ctype.h>
@@ -1675,16 +1675,21 @@
       assert( pDef!=0 );
       nExpr = sqlite3ExprCodeExprList(pParse, pList);
 #ifndef SQLITE_OMIT_VIRTUALTABLE
+      /* Possibly overload the function if the first argument is
+      ** a virtual table column.
+      **
+      ** For infix functions (LIKE, GLOB, REGEXP, and MATCH) use the
+      ** second argument, not the first, as the argument to test to
+      ** see if it is a column in a virtual table.  This is done because
+      ** the left operand of infix functions (the operand we want to
+      ** control overloading) ends up as the second argument to the
+      ** function.  The expression "A glob B" is equivalent to 
+      ** "glob(B,A).  We want to use the A in "A glob B" to test
+      ** for function overloading.  But we use the B term in "glob(B,A)".
+      */
       if( nExpr>=2 && (pExpr->flags & EP_InfixFunc) ){
-        /* For infix functions GLOB, LIKE, REGEXP, and MATCH, check
-        ** the second argument to the function which is operand to
-        ** left of the function name.  Users normally consider the
-        ** left operand to be the first argument, even though it is
-        ** really the second argument to the underlying function. */
         pDef = sqlite3VtabOverloadFunction(pDef, nExpr, pList->a[1].pExpr);
       }else if( nExpr>0 ){
-        /* For normal functions, go by the first argument - the first
-        ** argument after the "(" that follows the function name */
         pDef = sqlite3VtabOverloadFunction(pDef, nExpr, pList->a[0].pExpr);
       }
 #endif