EddytorDocs & API
07 · Tables A→ZB · Plan the table

Choose column types & nullability

Pick Arrow column types and nullable flags that fit master data - IDs as text, money as Decimal.

Eddytor columns use the Apache Arrow type system. Choosing well up front saves painful migrations later - especially for IDs and money.

Supported types

Type names are case-insensitive, and the aliases in parentheses are accepted:

CategoryTypes (aliases)
TextUtf8 (String, Text), LargeUtf8 (LargeString)
IntegerInt8, Int16, Int32 (Int, Integer), Int64 (Long, BigInt)
FloatFloat16, Float32 (Float), Float64 (Double)
DecimalDecimal(precision,scale) (Decimal128(…)) - precision 138, scale 0–precision; scale defaults to 0, and a bare Decimal means Decimal(38,10)
BooleanBoolean (Bool)
Date/timeDate32 (Date), Date64, Timestamp (DateTime), Time32 (Time), Time64, Duration
BinaryBinary (Bytes), LargeBinary

Master-data rules of thumb

Heads up

Use Utf8 for IDs unless you're certain they're always numeric - text preserves leading zeros (007 stays 007). Use Decimal for money - e.g. Decimal(20,4) - so amounts stay exact. Floating-point (Float32/Float64) can't represent values like 0.10 precisely.
  • IDs, codes, postal codes → Utf8.
  • Prices, amounts → Decimal(p,s), e.g. Decimal(20,4).
  • Counts → Int64.
  • Flags → Boolean.
  • Dates → Date32; instants → Timestamp.

Column names are case-sensitive - match your source-system conventions and be consistent.

Nullability & keys

  • Mark at least one column is_primary_key: true - create_table requires it.
  • Set nullable: false on columns that must always have a value (IDs, names).
  • Enabling a PK or uniqueness validates existing data first and is rejected if it finds NULLs or duplicates - so decide these at creation when the table is empty.

You can evolve later - add columns (existing rows get NULL) and tune settings - but types and keys are cheapest to get right now.

Next

On this page