Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
LookupNode.cs
Go to the documentation of this file.
3
4namespace System.Data;
5
6internal sealed class LookupNode : ExpressionNode
7{
8 private readonly string _relationName;
9
10 private readonly string _columnName;
11
13
15
22
23 internal override void Bind(DataTable table, List<DataColumn> list)
24 {
26 _column = null;
27 _relation = null;
28 if (table == null)
29 {
31 }
33 if (_relationName == null)
34 {
35 if (parentRelations.Count > 1)
36 {
38 }
40 }
41 else
42 {
44 }
45 if (_relation == null)
46 {
48 }
51 if (_column == null)
52 {
54 }
55 int i;
56 for (i = 0; i < list.Count; i++)
57 {
59 if (_column == dataColumn)
60 {
61 break;
62 }
63 }
64 if (i >= list.Count)
65 {
67 }
69 }
70
71 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
72 internal override object Eval()
73 {
75 }
76
77 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
78 internal override object Eval(DataRow row, DataRowVersion version)
79 {
80 if (_column == null || _relation == null)
81 {
83 }
84 DataRow parentRow = row.GetParentRow(_relation, version);
85 if (parentRow == null)
86 {
87 return DBNull.Value;
88 }
89 return parentRow[_column, parentRow.HasVersion(version) ? version : DataRowVersion.Current];
90 }
91
92 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
93 internal override object Eval(int[] recordNos)
94 {
96 }
97
98 internal override bool IsConstant()
99 {
100 return false;
101 }
102
103 internal override bool IsTableConstant()
104 {
105 return false;
106 }
107
108 internal override bool HasLocalAggregate()
109 {
110 return false;
111 }
112
113 internal override bool HasRemoteAggregate()
114 {
115 return false;
116 }
117
118 internal override bool DependsOn(DataColumn column)
119 {
120 if (_column == column)
121 {
122 return true;
123 }
124 return false;
125 }
126
127 internal override ExpressionNode Optimize()
128 {
129 return this;
130 }
131}
void Add(TKey key, TValue value)
static readonly DBNull Value
Definition DBNull.cs:8
override void Bind(DataTable table, List< DataColumn > list)
virtual DataTable ParentTable
DataRelationCollection ParentRelations
Definition DataTable.cs:572
static Exception UnresolvedRelation(string name, string expr)
static Exception ExpressionUnbound(string expr)
static Exception UnboundName(string name)
static Exception ComputeNotAggregate(string expr)
static EvaluateException BindFailure(string relationName)
static Exception EvalNoContext()
void BindTable(DataTable table)
readonly string _relationName
Definition LookupNode.cs:8
override bool DependsOn(DataColumn column)
override object Eval(int[] recordNos)
Definition LookupNode.cs:93
override object Eval()
Definition LookupNode.cs:72
override ExpressionNode Optimize()
override object Eval(DataRow row, DataRowVersion version)
Definition LookupNode.cs:78
override bool IsTableConstant()
readonly string _columnName
Definition LookupNode.cs:10
override bool HasRemoteAggregate()
override bool HasLocalAggregate()
DataRelation _relation
Definition LookupNode.cs:14
override void Bind(DataTable table, List< DataColumn > list)
Definition LookupNode.cs:23
override bool IsConstant()
Definition LookupNode.cs:98
LookupNode(DataTable table, string columnName, string relationName)
Definition LookupNode.cs:16