private ResultInfoList GetResultInfoList( Dictionary <string, IEnumerable <Tuple <string, bool> > > tableColumnNamesList , ResultInfoAST.PrimaryKeyCompletion primaryKeyCompletion = ResultInfoAST.PrimaryKeyCompletion.None) { var stmt = this.GetStmt(); // SELECT文以外は処理の対象外である if (stmt.Type != StmtType.Select) { return(new ResultInfoList()); } // ResultInfoASTに渡すためのテーブル列情報を作成する var tableColumns = new Dictionary <string, IEnumerable <TableResultInfo> >(); foreach (var tableColumnNames in tableColumnNamesList) { var tableName = tableColumnNames.Key; var tableResultInfoList = new List <TableResultInfo>(); foreach (var tableColumnName in tableColumnNames.Value) { var isPrimaryKey = tableColumnName.Item2; var tableResultInfo = new TableResultInfo(tableName, tableColumnName.Item1, !isPrimaryKey, isPrimaryKey); tableResultInfoList.Add(tableResultInfo); } tableColumns.Add(tableName, tableResultInfoList); } // SELECT句の解析を行う var resultInfoAST = new ResultInfoAST((SelectStmt)stmt, tableColumns, primaryKeyCompletion); return(resultInfoAST.GetResultInfoList()); }
public TableResultInfo Clone() { var ret = new TableResultInfo(this.ServerName , this.DataBaseName , this.SchemaName , this.TableName , this.ColumnAliasName , this.IsNullable , this.KeyType == KeyType.Table); //, this.IsUnique); ret.TableAliasName = this.TableAliasName; ret.IsReferenced = this.IsReferenced; ret.SourceTable = this.SourceTable; return(ret); }
virtual public void VisitBefore(TableResultInfo resultInfo) { }
virtual public void VisitAfter(TableResultInfo resultInfo) { }