Include inline functions as table-valued functions in Object Explorer (#594)

This commit is contained in:
Matt Irvine
2018-03-21 15:48:20 -07:00
committed by GitHub
parent 30c4b97f2a
commit 3937ebef38
3 changed files with 16 additions and 2 deletions

View File

@@ -324,6 +324,7 @@
<Filters > <Filters >
<Filter Property="FunctionType" Type="Enum"> <Filter Property="FunctionType" Type="Enum">
<Value>UserDefinedFunctionType.Table</Value> <Value>UserDefinedFunctionType.Table</Value>
<Value>UserDefinedFunctionType.Inline</Value>
</Filter> </Filter>
<Filter Property="IsSystemObject" Value="0" Type="bool" /> <Filter Property="IsSystemObject" Value="0" Type="bool" />
</Filters> </Filters>
@@ -332,6 +333,7 @@
<Filters > <Filters >
<Filter Property="FunctionType" Type="Enum"> <Filter Property="FunctionType" Type="Enum">
<Value>UserDefinedFunctionType.Table</Value> <Value>UserDefinedFunctionType.Table</Value>
<Value>UserDefinedFunctionType.Inline</Value>
</Filter> </Filter>
<Filter Property="IsSystemObject" Value="1" Type="bool" /> <Filter Property="IsSystemObject" Value="1" Type="bool" />
</Filters> </Filters>

View File

@@ -2723,7 +2723,8 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
Type = typeof(Enum), Type = typeof(Enum),
Values = new List<object> Values = new List<object>
{ {
{ UserDefinedFunctionType.Table } { UserDefinedFunctionType.Table },
{ UserDefinedFunctionType.Inline }
} }
}); });
filters.Add(new NodeFilter filters.Add(new NodeFilter
@@ -2769,7 +2770,8 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
Type = typeof(Enum), Type = typeof(Enum),
Values = new List<object> Values = new List<object>
{ {
{ UserDefinedFunctionType.Table } { UserDefinedFunctionType.Table },
{ UserDefinedFunctionType.Inline }
} }
}); });
filters.Add(new NodeFilter filters.Add(new NodeFilter

View File

@@ -71,6 +71,16 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ObjectExplorer
Assert.False(querier.ValidFor.HasFlag(ValidForFlag.SqlDw)); Assert.False(querier.ValidFor.HasFlag(ValidForFlag.SqlDw));
} }
[Fact]
public void TableValuedFunctionsIncludeInlineFunctions()
{
var tableFactory = new TableValuedFunctionsChildFactory();
var filters = tableFactory.Filters;
Assert.True(filters.ToList().Any(filter => {
return filter.Values.Contains(UserDefinedFunctionType.Table) && filter.Values.Contains(UserDefinedFunctionType.Inline);
}));
}
private SmoQuerier GetSmoQuerier(Type querierType) private SmoQuerier GetSmoQuerier(Type querierType)
{ {
// Given the extension type loader is set to find SmoCollectionQuerier objects // Given the extension type loader is set to find SmoCollectionQuerier objects