+1754
-1487
lines changedFilter options
+1754
-1487
lines changed Original file line number Diff line number Diff line change
@@ -27,6 +27,8 @@ public override ResultTable ExecuteQuery(QueryRequest request)
27
27
28
28
var result = query.TryPaginate(request.Pagination, request.SystemTime);
29
29
30
+
result = result.SelectManySubQueries();
31
+
30
32
if (inMemoryOrders != null)
31
33
{
32
34
result = result.OrderBy(inMemoryOrders);
@@ -44,7 +46,9 @@ public override async Task<ResultTable> ExecuteQueryAsync(QueryRequest request,
44
46
45
47
var result = await query.TryPaginateAsync(request.Pagination, request.SystemTime, token);
46
48
47
-
if(inMemoryOrders != null)
49
+
result = result.SelectManySubQueries();
50
+
51
+
if (inMemoryOrders != null)
48
52
{
49
53
result = result.OrderBy(inMemoryOrders);
50
54
}
@@ -92,29 +96,48 @@ private DQueryable<T> GetDQueryable(QueryRequest request, out List<Order>? inMem
92
96
if (!request.Columns.Where(c => c is _EntityColumn).Any())
93
97
request.Columns.Insert(0, new _EntityColumn(EntityColumnFactory().BuildColumnDescription(), QueryName));
94
98
95
-
var query = Query
96
-
.ToDQueryable(GetQueryDescription())
97
-
.SelectMany(request.Multiplications())
98
-
.Where(request.Filters);
99
-
100
-
if (request.Pagination is Pagination.All)
99
+
if (request.MultiplicationsInSubQueries())
101
100
{
102
-
var allColumns = request.Columns.Select(a => a.Token)
103
-
.Concat(request.Orders.Select(a => a.Token))
104
-
.Distinct()
105
-
.Select(t => new Column(t, null)).ToList();
101
+
var columnAndOrderTokens = request.Columns.Select(a => a.Token)
102
+
.Concat(request.Orders.Select(a => a.Token))
103
+
.Distinct()
104
+
.ToHashSet();
106
105
107
-
inMemoryOrders = request.Orders.ToList();
106
+
inMemoryOrders = request.Orders;
107
+
108
+
var query = Query
109
+
.ToDQueryable(GetQueryDescription())
110
+
.Where(request.Filters)
111
+
.SelectWithSubQueries(columnAndOrderTokens);
108
112
109
-
return query.Select(allColumns);
113
+
return query;
110
114
}
111
115
else
112
116
{
113
-
inMemoryOrders = null;
117
+
var query = Query
118
+
.ToDQueryable(GetQueryDescription())
119
+
.SelectMany(request.Multiplications())
120
+
.Where(request.Filters);
121
+
122
+
if (request.Pagination is Pagination.All)
123
+
{
124
+
var allColumns = request.Columns.Select(a => a.Token)
125
+
.Concat(request.Orders.Select(a => a.Token))
126
+
.Distinct()
127
+
.Select(t => new Column(t, null)).ToList();
128
+
129
+
inMemoryOrders = request.Orders.ToList();
114
130
115
-
return query
116
-
.OrderBy(request.Orders)
117
-
.Select(request.Columns);
131
+
return query.Select(allColumns);
132
+
}
133
+
else
134
+
{
135
+
inMemoryOrders = null;
136
+
137
+
return query
138
+
.OrderBy(request.Orders)
139
+
.Select(request.Columns);
140
+
}
118
141
}
119
142
}
120
143
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4