Skip to content

feat: Support fixed-length Array<T, N> property type#507

Draft
zhanglei1949 wants to merge 1 commit into
alibaba:mainfrom
zhanglei1949:zl/feat-array
Draft

feat: Support fixed-length Array<T, N> property type#507
zhanglei1949 wants to merge 1 commit into
alibaba:mainfrom
zhanglei1949:zl/feat-array

Conversation

@zhanglei1949

Copy link
Copy Markdown
Member

Summary

  • Add native fixed-length array property type (INT32[3], DOUBLE[128], etc.) for vertices and edges
  • Implement ArrayColumn storage backed by a flat child column for efficient columnar access
  • Wire through the full query pipeline: type system, schema, compiler, execution values, serialization, and Python bindings

Closes #506

Changes

  • Type system: DataTypeId::kArray, DataType::Array(), ArrayType helpers, ArrayExtraTypeInfo
  • Storage: New ArrayColumn class — row i, element j stored at child[i*N + j]
  • Execution: Value::ARRAY, ArrayValue, comparison operators for arrays
  • Compiler: gopt type conversion, vector cast functions updated
  • Serialization: protobuf and YAML schema support for array types
  • Python: Array values returned as Python lists via existing bindings
  • Tests: Integration tests covering INT32, INT64, FLOAT, DOUBLE arrays; create, query, update operations

Test plan

  • python3 -m pytest tests/test_db_array.py — array create, query, update, multi-row
  • Existing test suite passes (no regressions to list/struct handling)
  • Schema round-trip: create DB with array properties, close, reopen, query

🤖 Generated with Claude Code

@zhanglei1949 zhanglei1949 marked this pull request as draft June 9, 2026 03:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Support fixed-length Array<T, N> property type

1 participant