Skip to content

v0.21.0

Choose a tag to compare

@kenshaw kenshaw released this 29 Oct 18:29
· 6 commits to main since this release

This release adds two drivers, maxcompute and tablestore, for two hosted services of Alibaba Cloud. Both are new, so no consumer must change anything.

maxcompute (W47)

  • The driver name is maxcompute. The DSN is maxcompute://<id>:<secret>@service.<region>.maxcompute.aliyun.com/<project>, with an optional ?region=. A key that starts with odps. sets a setting of the server.
  • The driver signs each request with version 4 and reads the result as CSV.
  • Before each query, the driver runs EXPLAIN OUTPUT to learn the exact type of each column. A DATETIME or a TIMESTAMP is a time.Time in the zone of the project.
  • The driver sends no parameters to the server. It writes each argument into the text of the statement. It has no transactions.
  • The server cuts a result at 10,000 rows without an error, and the driver returns the rows as they arrive.
  • The caller sets script mode, because the driver never parses a query to find several statements.

tablestore (W48)

  • The driver name is tablestore. The DSN is tablestore://<id>:<secret>@<instance>.<region>.ots.aliyuncs.com/<instance>.
  • The driver sends SQL over the mapping tables of Tablestore. It writes the protobuf and FlatBuffers messages in this repository and adds no package.
  • A DATETIME is a dbimp.LocalDateTime. The server reads and writes its text in the zone Asia/Shanghai. The driver reads the text in that zone.
  • The driver sends one statement for each request, with no parameters and no transactions.
  • The driver keeps the whole answer in memory.

Recorder and documents

  • The recorder in dbimptest/cmd/record can sign requests for both services, send a binary body, and send a request again after a reset or a handshake timeout.
  • The documents docs/MAXCOMPUTE.md and docs/TABLESTORE.md, the decisions D218 to D224, the type matrix, the targets and the progress table describe both drivers. D220, D221 and D224 are still proposed.

Workflow

  • The integration jobs leave out both drivers, because dbrun starts no server for a hosted service. The integration tests passed by hand on a live project and a live instance.
  • The jobs drill-1.21.2 and drill-1.22.0 fail in CI. They failed before this release, and v0.21.1 fixes them. This release changes no code of either driver.