• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

loresoft / SchemaSaurus / 25437460438

06 May 2026 01:13PM UTC coverage: 87.024% (-0.09%) from 87.11%
25437460438

push

github

pwelter34
Replace SchemaQualifiedName with QualifiedName

1076 of 1424 branches covered (75.56%)

Branch coverage included in aggregate %.

71 of 95 new or added lines in 34 files covered. (74.74%)

5691 of 6352 relevant lines covered (89.59%)

223.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/SchemaSaurus.Metadata/TableValuedFunction.cs
1
using System.Diagnostics;
2

3
using SchemaSaurus.Metadata.Converters;
4

5
namespace SchemaSaurus.Metadata;
6

7
/// <summary>
8
/// Represents a table-valued user-defined function in the database.
9
/// </summary>
10
/// <remarks>
11
/// Table-valued functions return a result set (one or more columns) and can be used in
12
/// the <c>FROM</c> clause of a query. For functions that return a single scalar value,
13
/// see <see cref="ScalarFunction"/>.
14
/// </remarks>
15
[Equatable]
16
[DebuggerDisplay("{QualifiedName}")]
17
public sealed partial class TableValuedFunction : IAnnotatable, IQualifiedName
18
{
19
    /// <summary>
20
    /// Schema-qualified name of the function.
21
    /// </summary>
22
    [JsonPropertyName("qualifiedName")]
23
    public required SchemaQualifiedName QualifiedName { get; init; }
24

25
    /// <summary>
26
    /// Gets the unqualified name component of the object.
27
    /// </summary>
28
    [JsonIgnore]
29
    [IgnoreEquality]
NEW
30
    public string Name => QualifiedName.Name;
×
31

32
    /// <summary>
33
    /// Gets the schema component of the qualified name, if available.
34
    /// </summary>
35
    [JsonIgnore]
36
    [IgnoreEquality]
NEW
37
    public string? Schema => QualifiedName.Schema;
×
38

39
    /// <summary>
40
    /// Ordered list of input parameters, sorted by <see cref="Parameter.Ordinal"/>.
41
    /// </summary>
42
    /// <remarks>
43
    /// Defaults to an empty list when the function accepts no parameters.
44
    /// </remarks>
45
    [SequenceEquality]
46
    [JsonPropertyName("parameters")]
47
    public IReadOnlyList<Parameter> Parameters { get; init; } = [];
48

49
    /// <summary>
50
    /// Descriptors of the columns in the result set returned by the function.
51
    /// </summary>
52
    /// <remarks>
53
    /// May be empty for multi-statement table-valued functions whose columns are not
54
    /// statically declared in the catalog. Defaults to an empty list.
55
    /// </remarks>
56
    [SequenceEquality]
57
    [JsonPropertyName("returnColumns")]
58
    public IReadOnlyList<ReturnColumn> ReturnColumns { get; init; } = [];
59

60
    /// <summary>
61
    /// SQL definition of the function.
62
    /// </summary>
63
    /// <remarks>
64
    /// <see langword="null"/> when the caller lacks the necessary permissions to read
65
    /// the definition, or when the database does not expose function bodies.
66
    /// </remarks>
67
    [JsonPropertyName("definition")]
68
    public string? Definition { get; init; }
69

70
    /// <summary>
71
    /// Human-readable description or comment for the function.
72
    /// <see langword="null"/> when no description has been set.
73
    /// </summary>
74
    [JsonPropertyName("description")]
75
    public string? Description { get; init; }
76

77
    /// <inheritdoc />
78
    [DictionaryEquality]
79
    [JsonPropertyName("annotations")]
80
    [JsonConverter(typeof(ReadOnlyDictionaryConverter<string, object?>))]
81
    public IReadOnlyDictionary<string, object?> Annotations { get; init; } = new Dictionary<string, object?>();
82
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc