public bool ResolveColumnReference(RangeVariable rangeVar) { if ((this.TableName == null) || rangeVar.IsVariable) { Expression columnExpression = rangeVar.GetColumnExpression(this.ColumnName); if (columnExpression != null) { base.OpType = columnExpression.OpType; base.nodes = columnExpression.nodes; base.DataType = columnExpression.DataType; return(true); } if (rangeVar.Variables != null) { string columnName = (this.TableName != null) ? string.Format("{0}.{1}", this.TableName, this.ColumnName) : this.ColumnName; int i = rangeVar.FindColumn(columnName); if (i == -1) { return(false); } if (rangeVar.GetColumn(i).GetParameterMode() == 4) { return(false); } base.OpType = rangeVar.IsVariable ? 6 : 7; this.SetAttributesAsColumn(rangeVar, i); return(true); } } if (rangeVar.ResolvesTableName(this)) { int i = rangeVar.FindColumn(this.ColumnName); if (i != -1) { this.SetAttributesAsColumn(rangeVar, i); return(true); } } return(false); }
private bool ResolvesDuplicateColumnReference(RangeVariable rangeVar) { if (this.TableName == null) { if (rangeVar.GetColumnExpression(this.ColumnName) != null) { return(false); } if (rangeVar.Variables != null) { int i = rangeVar.FindColumn(this.ColumnName); if (i == -1) { return(false); } return(rangeVar.GetColumn(i).GetParameterMode() != 4); } } if (!rangeVar.ResolvesTableName(this)) { return(false); } return(rangeVar.FindColumn(this.ColumnName) != -1); }