Skip to content

Commit adbedad

Browse files
Merge remote-tracking branch 'upstream/main' into variables
2 parents 35ad6e7 + 054eda6 commit adbedad

94 files changed

Lines changed: 2982 additions & 2291 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build/create_release_notes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import sys
3030

3131
class Version:
32-
minor_header = re.compile(r'^## (\d+\.\d)$') # match all version headers, including major or minor headers
32+
minor_header = re.compile(r'^## (\d+\.\d+)$') # match all version headers, including major or minor headers
3333
precise_header = re.compile(r'^### (\d+\.\d+\.\d+\.\d+)$') # match precise version headers
3434

3535
def __init__(self, version: str):

docs/sphinx/source/ReleaseNotes.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,42 @@ This document contains a log of changes to the FoundationDB Record Layer. It aim
55

66
As the [versioning guide](Versioning.md) details, it cannot always be determined solely by looking at the version numbers whether one Record Layer version contains all changes included in another. In particular, bug fixes and backwards-compatible changes might be back-ported to or introduced as patches against older versions. To track when a patch version has been included in the main release train, some releases will say as a note that they contain all changes from a specific patch.
77

8-
## 4.10
8+
## 4.12
9+
10+
### 4.12.5.0
11+
12+
<h4> New Features </h4>
13+
14+
* Name struct columns from parenthesised-star expressions after their source - [PR #4182](https://github.com/FoundationDB/fdb-record-layer/pull/4182)
15+
* Fix bug when SplitSelectExtractIndependentQuantifiersRule selects from an exploded primitive array - [PR #4007](https://github.com/FoundationDB/fdb-record-layer/pull/4007)
16+
<h4> Bug Fixes </h4>
17+
18+
* Fix `RecordQueryRecursiveLevelUnionPlan#computeHashCodeWithoutChildren()` - [PR #4189](https://github.com/FoundationDB/fdb-record-layer/pull/4189)
19+
* Make `RelationalExpression#equalsWithoutChildren()` compare the result values where necessary - [PR #4185](https://github.com/FoundationDB/fdb-record-layer/pull/4185)
20+
21+
<details>
22+
<summary>
23+
24+
<h4> Build/Test/Documentation/Style Improvements (click to expand) </h4>
25+
26+
</summary>
27+
28+
* Allow ErrorCode enum names in yamsql error directives - [PR #4200](https://github.com/FoundationDB/fdb-record-layer/pull/4200)
29+
30+
</details>
31+
32+
33+
**[Full Changelog (4.12.4.0...4.12.5.0)](https://github.com/FoundationDB/fdb-record-layer/compare/4.12.4.0...4.12.5.0)**
34+
35+
#### Mixed Mode Test Results
36+
37+
Mixed mode testing run against the following previous versions:
38+
39+
`4.10.16.0`, ✅`4.10.17.0`, ✅`4.10.18.0`, ✅`4.10.19.0`, ✅`4.10.20.0`, ✅`4.11.1.0`, ✅`4.12.1.0`, ✅`4.12.2.0`, ✅`4.12.3.0`, ✅`4.12.4.0`
40+
41+
[See full test run](https://github.com/FoundationDB/fdb-record-layer/actions/runs/26464186416)
42+
43+
944

1045
### 4.12.4.0
1146

@@ -178,6 +213,8 @@ Mixed mode testing run against the following previous versions:
178213

179214

180215

216+
## 4.11
217+
181218
### 4.11.1.0
182219

183220
<h4> Breaking Changes </h4>
@@ -225,6 +262,8 @@ Mixed mode testing run against the following previous versions:
225262

226263

227264

265+
## 4.10
266+
228267
### 4.10.20.0
229268

230269
<h4> New Features </h4>

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/expressions/SelectExpression.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ public Value getResultValue() {
128128

129129
@Nonnull
130130
public List<? extends Value> getResultValues() {
131-
return Values.deconstructRecord(getResultValue());
131+
final var resultValue = getResultValue();
132+
return resultValue.getResultType().isRecord() ? Values.deconstructRecord(getResultValue()) : ImmutableList.of(resultValue);
132133
}
133134

134135
@Nonnull

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/rules/InComparisonToExplodeRule.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ public void onMatch(@Nonnull final ExplorationCascadesRuleCall call) {
194194
}
195195

196196
transformedQuantifiers.addAll(bindings.getAll(innerQuantifierMatcher));
197-
198197
call.yieldExploratoryExpression(new SelectExpression(selectExpression.getResultValue(),
199198
transformedQuantifiers.build(),
200199
transformedPredicates.build()));

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/rules/PredicatePushDownRule.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@ public void onMatch(@Nonnull final ExplorationCascadesRuleCall call) {
194194
final var bindings = call.getBindings();
195195

196196
final var selectExpression = bindings.get(root);
197-
197+
if (!selectExpression.getResultValue().getResultType().isRecord()) {
198+
return;
199+
}
198200
//
199201
// This is the quantifier we are going to push predicates along.
200202
//

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/rules/SplitSelectExtractIndependentQuantifiersRule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public void onMatch(@Nonnull final ExplorationCascadesRuleCall call) {
8787
final var bindings = call.getBindings();
8888

8989
final var selectExpression = bindings.get(root);
90+
9091
final Collection<? extends Quantifier.ForEach> explodeQuantifiers = bindings.get(explodeQuantifiersMatcher);
9192
if (explodeQuantifiers.isEmpty()) {
9293
return;

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/plans/RecordQueryDeletePlan.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,10 @@ public boolean equalsWithoutChildren(@Nonnull final RelationalExpression other,
165165
if (this == other) {
166166
return true;
167167
}
168-
return getClass() == other.getClass();
168+
if (getClass() != other.getClass()) {
169+
return false;
170+
}
171+
return semanticEqualsForResults(other, equivalences);
169172
}
170173

171174
@Override

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/plans/RecordQueryFetchFromPartialRecordPlan.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,9 @@ public boolean equalsWithoutChildren(@Nonnull final RelationalExpression otherEx
229229
if (getClass() != otherExpression.getClass()) {
230230
return false;
231231
}
232-
232+
if (!semanticEqualsForResults(otherExpression, equivalences)) {
233+
return false;
234+
}
233235
final var otherFetchPlan = (RecordQueryFetchFromPartialRecordPlan)otherExpression;
234236
return fetchIndexRecords == otherFetchPlan.fetchIndexRecords;
235237
}

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/plans/RecordQueryFilterPlan.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ public boolean equalsWithoutChildren(@Nonnull RelationalExpression otherExpressi
153153
if (getClass() != otherExpression.getClass()) {
154154
return false;
155155
}
156+
if (!semanticEqualsForResults(otherExpression, equivalencesMap)) {
157+
return false;
158+
}
156159
final RecordQueryFilterPlan otherPlan = (RecordQueryFilterPlan)otherExpression;
157160
return conjunctedFilter.equals(otherPlan.getConjunctedFilter());
158161
}

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/plans/RecordQueryInJoinPlan.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ public boolean equalsWithoutChildren(@Nonnull RelationalExpression otherExpressi
209209
if (getClass() != otherExpression.getClass()) {
210210
return false;
211211
}
212+
if (!semanticEqualsForResults(otherExpression, equivalencesMap)) {
213+
return false;
214+
}
212215
final RecordQueryInJoinPlan other = (RecordQueryInJoinPlan)otherExpression;
213216
return inSource.equals(other.inSource);
214217
}

0 commit comments

Comments
 (0)