A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/signumsoftware/framework/commit/b4922d08f89e731c5d3b5201e8ef14008c638928 below:

add automatic SubQueries for performance in DQM · signumsoftware/framework@b4922d0 · GitHub

File tree Expand file treeCollapse file tree 8 files changed

+1754

-1487

lines changed

Filter options

Expand file treeCollapse file tree 8 files changed

+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