private void ConvertExpressionConstantsNotation(SQLExpressionItem expression)
        {
            Debug.Assert(expression != null);

            List <AstNodeBase> astNodes = new List <AstNodeBase>();

            // get all children (and grand[grand...]children) AST nodes as a flat list
            expression.GetMyChildrenRecursive(astNodes);

            // add expression node itself to AST nodes list
            // (to check is the given expression is constant itself)
            astNodes.Add(expression);

            // remove all items from the list except TSQLExpressionConstant
            for (int i = astNodes.Count - 1; i >= 0; i--)
            {
                if (!(astNodes[i] is SQLExpressionConstant))
                {
                    astNodes.RemoveAt(i);
                }
            }

            // for each item in the list
            for (int i = 0; i < astNodes.Count; i++)
            {
                ConvertConstantNotation((SQLExpressionConstant)astNodes[i]);
            }
        }