private static void LoadViewOutputColumnsX(TestSchema schema, TestView vw, CreateViewStatement stmt_CreateFunction) { ProcedureGenerator.LoadViewOutputColumns(schema, vw.Body, (col) => { vw.AddViewColumn(col.OutputColumnName, col.ColumnType.ColumnDbType, col.ColumnType.AllowNull, col.OutputColumnName); }); }
private static void LoadViewOutputColumns(TestSchema schema, TestView function_source, CreateViewStatement stmt_CreateView) { BatchOutputColumnTypeResolver batchResolver = new BatchOutputColumnTypeResolver(schema, stmt_CreateView, function_source); StatementOutputColumnTypeResolverV2 resolver = new StatementOutputColumnTypeResolverV2(batchResolver, stmt_CreateView.SelectStatement); QuerySpecification first = TopQuerySpecification(stmt_CreateView.SelectStatement.QueryExpression); foreach (SelectElement se in first.SelectElements) { if (se is SelectScalarExpression scalarExpr) { OutputColumnDescriptor col = resolver.ResolveSelectScalarExpression(scalarExpr); function_source.AddViewColumn(col.OutputColumnName, col.ColumnType.ColumnDbType, col.ColumnType.AllowNull, col.OutputColumnName); } else { throw new NotImplementedException(se.WhatIsThis()); } } }