private void parseInsertStmt(TInsertSqlStatement insert) { if (insert.TargetTable.TableName != null) { string tableName = insert.TargetTable.TableName.TableString; string tableSchema = insert.TargetTable.TableName.SchemaString; string databaseName = insert.TargetTable.TableName.DatabaseString; TableMetaData tableMetaData = new TableMetaData(vendor, strict); tableMetaData.Name = tableName; tableMetaData.SchemaName = tableSchema; if (isNotEmpty(databaseName)) { tableMetaData.CatalogName = databaseName; } else { tableMetaData.CatalogName = database; } tableMetaData.View = false; if (!tableColumns.ContainsKey(tableMetaData)) { tableColumns[tableMetaData] = new List <ColumnMetaData>(); } else { IList <TableMetaData> tables = new List <TableMetaData>(tableColumns.Keys); tableMetaData = (TableMetaData)tables[tables.IndexOf(tableMetaData)]; tableMetaData.View = false; } if (insert.SubQuery != null) { ColumnImpact impact = new ColumnImpact(insert.SubQuery.ToString(), insert.dbvendor, tableColumns, strict); impact.ignoreTopSelect(true); impact.Debug = false; impact.ShowUIInfo = true; impact.TraceErrorMessage = false; impact.impactSQL(); ColumnImpactModel columnImpactModel = impact.generateModel(); parseSubQueryColumnDefinition(insert, insert.SubQuery, tableMetaData, columnImpactModel); } } }
private void parseCreateView(TCreateViewSqlStatement createView) { if (createView.ViewName != null) { string tableName = createView.ViewName.TableString; string tableSchema = createView.ViewName.SchemaString; string databaseName = createView.ViewName.DatabaseString; TableMetaData viewMetaData = new TableMetaData(vendor, strict); viewMetaData.Name = tableName; viewMetaData.SchemaName = tableSchema; if (isNotEmpty(databaseName)) { viewMetaData.CatalogName = databaseName; } else { viewMetaData.CatalogName = database; } viewMetaData.View = true; if (!tableColumns.ContainsKey(viewMetaData)) { tableColumns[viewMetaData] = new List <ColumnMetaData>(); } else { IList <TableMetaData> tables = new List <TableMetaData>(tableColumns.Keys); viewMetaData = (TableMetaData)tables[tables.IndexOf(viewMetaData)]; viewMetaData.View = true; } if (createView.Subquery != null) { ColumnImpact impact = new ColumnImpact(createView.Subquery.ToString(), createView.dbvendor, tableColumns, strict); impact.ignoreTopSelect(true); impact.Debug = false; impact.ShowUIInfo = true; impact.TraceErrorMessage = false; impact.impactSQL(); ColumnImpactModel columnImpactModel = impact.generateModel(); parseSubQueryColumnDefinition(createView, createView.Subquery, viewMetaData, columnImpactModel); } } }