Example #1
0
        public bool VisitExprCrossedTable(ExprCrossedTable expr, TCtx arg)
        {
            var res = this.Visit(expr, "CrossedTable", arg, out var argOut) && this.Accept("Left", expr.Left, argOut) && this.Accept("Right", expr.Right, argOut);

            this._visitor.EndVisitExpr(expr, arg);
            return(res);
        }
Example #2
0
 public bool VisitExprCrossedTable(ExprCrossedTable exprCrossedTable, IExpr?parent)
 {
     exprCrossedTable.Left.Accept(this, exprCrossedTable);
     this.Builder.Append(" CROSS JOIN ");
     exprCrossedTable.Right.Accept(this, exprCrossedTable);
     return(true);
 }
Example #3
0
        public static ExprQuerySpecification WithCrossJoin(this ExprQuerySpecification querySpecification, IExprTableSource tableSource)
        {
            if (querySpecification.From == null)
            {
                throw new SqExpressException("Query Specification \"From\" cannot be null");
            }

            var newJoin = new ExprCrossedTable(querySpecification.From, tableSource);

            return(querySpecification.WithFrom(newJoin));
        }
Example #4
0
 public static ExprCrossedTable WithRight(this ExprCrossedTable original, IExprTableSource newRight)
 => new ExprCrossedTable(left: original.Left, right: newRight);