The GitHub Actions job "Validate and test" on 
pekko-persistence-r2dbc.git/oracle-dialect has failed.
Run started by GitHub user ptrdom (triggered by ptrdom).

Head commit for run:
4e23f91018ac4dc35ba4f75e8d353c1c750d940e / Domantas Petrauskas 
<[email protected]>
core: address Oracle review comments

Motivation:
Review of #532 found that backtracking durable state queries, empty
entity types and empty metadata payloads fail or return wrong results
on Oracle, that concurrent first snapshot saves can fail, and that the
Oracle connection adapter changed how user statements bind byte arrays
and read NULL. The Oracle CI jobs failed on DbTimeZoneSpec from #537.

Modification:
- Read revision as java.lang.Long in the durable state backtracking
  row mapper.
- Match the entity type with DECODE in the Oracle slice and bucket
  queries, through a new entityTypeCondition in QueryDao and
  SnapshotDao, so an empty entity type, stored as NULL, is found.
- Apply the empty values in the DAO row mappers (EmptyValues,
  getPayloadOrEmpty) instead of mapping columns by name in
  OracleConnections, which now only converts Instant. Detect event
  metadata by meta_ser_id.
- Bind BLOBs only for the snapshot MERGE, through new
  bindSnapshotPayload and bindMetadataPayload hooks, and run the MERGE
  again once on ORA-00001.
- Reject JSON payload column types for Oracle at startup.
- Use VARCHAR2(255 CHAR) in the Oracle DDL.
- Default QueryDao.sliceCondition to slice BETWEEN and remove the
  eventsBySlicesRangeSql copy in OracleQueryDao.
- Make oracle-r2dbc a provided,test dependency, update the action
  versions of the Oracle CI job, and make DbTimeZoneSpec pending for
  Oracle.

Result:
Oracle queries and reads handle empty values, user statements are not
affected by the plugin's conversions, and the Oracle CI jobs pass the
time zone spec.

Tests:
- sbt -Dpekko.persistence.r2dbc.dialect=oracle core/test (Oracle 23ai
  Free): 400 succeeded, 1 failed (3 s write timeout in
  EventsBySliceStartingFromSnapshotSpec, passed on rerun), 94 pending
- sbt -Dpekko.persistence.r2dbc.dialect=yugabyte core/test: 459
  succeeded, 2 failed and 2 suites aborted on 3 s write timeouts or a
  serialization conflict; the specs passed on rerun
- sbt -Dpekko.persistence.r2dbc.dialect=h2 core/test: 394 succeeded,
  0 failed, 100 pending
- the new empty entity type, concurrent snapshot save and backtracking
  tests fail with the corresponding fix reverted
- sbt scala3 Test/compile, scalafmtCheckAll, headerCheckAll,
  core/javafmtCheckAll, +mimaReportBinaryIssues, docs/paradox: passed

References:
Refs #532, Refs #531

Report URL: 
https://github.com/apache/pekko-persistence-r2dbc/actions/runs/42197511313

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to