public QNameManager.QName[] GetResultColumnNames() { if (this.ResultTable == null) { return(this._leftQueryExpression.GetResultColumnNames()); } HashMappedList <string, ColumnSchema> columnList = ((TableDerived)this.ResultTable).ColumnList; QNameManager.QName[] nameArray2 = new QNameManager.QName[columnList.Size()]; for (int i = 0; i < nameArray2.Length; i++) { nameArray2[i] = columnList.Get(i).GetName(); } return(nameArray2); }
private void SetVariables() { if (this.Variables.Length == 0) { this.RangeVariables = (base.Parent == null) ? base.Root.GetParameterRangeVariables() : base.Parent.RangeVariables; } else { HashMappedList <string, ColumnSchema> variables = new HashMappedList <string, ColumnSchema>(); if ((base.Parent != null) && (base.Parent.ScopeVariables != null)) { for (int j = 0; j < base.Parent.ScopeVariables.Size(); j++) { variables.Add(base.Parent.ScopeVariables.GetKey(j), base.Parent.ScopeVariables.Get(j)); } } for (int i = 0; i < this.Variables.Length; i++) { string name = this.Variables[i].GetName().Name; if (!variables.Add(name, this.Variables[i])) { throw Error.GetError(0x15e6, name); } if (base.Root.GetParameterIndex(name) != -1) { throw Error.GetError(0x15e6, name); } } this.ScopeVariables = variables; RangeVariable variable = new RangeVariable(variables, true); if (!base.Root.IsTrigger()) { this.RangeVariables = new RangeVariable[] { base.Root.GetParameterRangeVariables()[0], variable }; } else { this.RangeVariables = new RangeVariable[base.Root.GetParameterRangeVariables().Length + 1]; Array.Copy(base.Root.GetParameterRangeVariables(), this.RangeVariables, (int)(this.RangeVariables.Length - 1)); this.RangeVariables[this.RangeVariables.Length - 1] = variable; } base.Root.VariableCount = variables.Size(); } }
public TableDerived(Database database, QNameManager.QName name, int type, SqlType[] columnTypes, byte[] columnNullability, HashMappedList <string, ColumnSchema> columnList, QueryExpression queryExpression, SubQuery subQuery) : this(database, name, type, queryExpression, subQuery) { base.ColTypes = columnTypes; base.ColumnList = columnList; base.ColumnCount = columnList.Size(); base.PrimaryKeyCols = new int[0]; base.PrimaryKeyTypes = SqlType.EmptyArray; base.PrimaryKeyColsSequence = new int[0]; base.ColDefaults = new Expression[base.ColumnCount]; base.ColNotNull = new bool[base.ColumnCount]; for (int i = 0; i < base.ColNotNull.Length; i++) { base.ColNotNull[i] = columnNullability[i] == 0; } base.DefaultColumnMap = new int[base.ColumnCount]; ArrayUtil.FillSequence(base.DefaultColumnMap); base.BestIndexForColumn = new int[base.ColTypes.Length]; ArrayUtil.FillArray(base.BestIndexForColumn, -1); base.CreatePrimaryIndex(base.PrimaryKeyCols, base.PrimaryKeyTypes, null); }