Closed armiol closed 10 months ago
@alexander-yevsyukov PTAL.
Merging #1533 (e4ca6ea) into master (349fc83) will decrease coverage by
0.08%
. The diff coverage is96.98%
.
@alexander-yevsyukov it has been a long time since this PR was first approved. Many things have changed since then. PTAL again.
@alexander-yevsyukov while reviewing the ... .storage
package, I have also addressed some minor documentation issues, killed some unused methods, and commented on warnings.
And considering @SPI
-ness, I have added an explicit test for RecordWithColumns
API.
@alexander-yevsyukov PTAL.
This PR addresses some inconsistencies in both Storage API and its base/abstract implementation, so that descendant port libraries, such as Spine RDBMS could migrate their features to Spine 2.x with less hassle.
Major breaking change (breaking for SPI users, that is) is merging
EntityRecordSpec
andMessageRecordSpec
into a singleRecordSpec
type. It has been done for several reasons.EntityRecord
s consistently on top ofEntityRecord
itself. Previously, the column values inEntityRecordWithColumns
— which were picked fromEntity
state directly — could differ from those values actually stored inEntityRecord
.RecordWithColumns
instances purely with the relevantMessage
instance along with its spec. Previously,Entity
-relatedRecordWithColumns
could only be assembled with anEntity
instance.Other changes include:
public
.RecordQuery
instances now preserves the type of the column, by which values query aims to filter the dataset.AggregateStorage.historyBackward()
has been made eager instead of lazy, as previously. This is needed to ensure the access to the history under the circumstances of maintaining the connection to the database.InboxStorage
).FieldMaskApplier
has been made@Internal
-lypublic
, as its functionality is required in descendant libraries to prevent any code duplication.