Skip to content

Add RowBinary format for SELECT operations #216

Open
@slvrtrn

Description

Work in progress: #257

If you have any feedback on the following, please don't hesitate to comment.

Streaming will be supported out of the box by design.

Target supported ClickHouse data types with SELECT operations for the initial release; certain types are already completed in the branch:

  • Boolean
  • (U)Int8-32 as number
  • (U)Int64-256 as a native BigInt
  • Float32, Float64 as a number
  • String as a string
  • Nullable, LowCardinality
  • Date, Date32 as either a JS Date, a string, or UNIX seconds as a number/BigInt by default (needs the decision to be consistent with DateTime family types), with a custom mapper support.
  • DateTime, DateTime64 - with a custom mapper support. DateTime could be either an ISO format string or BigInt UNIX seconds. DateTime64 should be either a string or UNIX nanoseconds as a BigInt.
  • Enum - needs a decision. Maybe as a string by default, with a custom mapper (index) -> T
  • UUID as a string
  • FixedString(N) as a string
  • IPv4/v6 as a string
  • Decimal as string by default, support custom mapper
  • Array(T) - should use custom mappers provided for the value type
  • Map(K, V) - should use custom mappers provided for K and V types
  • Tuple(T1, T2, ...) - should use custom mappers provided for T* types
  • Geo types - likely, should use [number, number] for Point as the base for the remaining Geo types.

The types that may be included as well, depending on the format complexity:

Related issues:

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions