Propel offers a wide range of data types to efficiently store and process various kinds of data. Here’s a comprehensive list of ClickHouse data types:

Integer types

Signed and unsigned integers of different sizes:

  • Unsigned: UInt8, UInt16, UInt32, UInt64, UInt128, UInt256.
  • Signed: Int8, Int16, Int32, Int64, Int128, Int256.

Floating-point numbers

  • Float32: Single precision floating-point number.
  • Float64: Double precision floating-point number.
  • Decimal(P, S): Fixed-point number with precision P and scale S.

Boolean

  • Bool: Represents true or false values.

Strings

  • String: Variable-length string.
  • FixedString(N): Fixed-length string of N bytes.

Dates and times

  • Date: Stores dates (year, month, day).
  • Date32: Extended date type with a wider range.
  • DateTime: Stores date and time.
  • DateTime64(precision): High-precision date and time.

JSON

  • JSON: Stores and processes JSON documents.

UUID

  • UUID: Universally Unique Identifier.

Low Cardinality Types

  • Enum8 and Enum16: For a small set of string values.
  • LowCardinality(T): Optimized storage for columns with up to 10,000 unique values.

Arrays

  • Array(T): An array of elements of type T.

Maps

  • Map(key_type, value_type): Key-value pairs.

Aggregation function types

  • SimpleAggregateFunction(name, type): Stores intermediate state of simple aggregation functions.
  • AggregateFunction(name, types...): Stores intermediate state of complex aggregation functions.

Nested data structures

  • Nested(Name1 Type1, Name2 Type2, ...): Table-like structure within a column

Tuples

  • Tuple(T1, T2, ...): A collection of elements, each with its own type.

Nullable

  • Nullable(T): Allows NULL values for type T.

IP addresses

  • IPv4: Efficiently stores IPv4 addresses.
  • IPv6: Efficiently stores IPv6 addresses.

Geo types

  • Point: Represents a point on a plane.
  • Ring: Represents a simple polygon.
  • Polygon: Represents a polygon with holes.
  • MultiPolygon: Represents a collection of polygons.

Special data types

  • Expression: Stores an expression to be evaluated.
  • Set: Represents a set of elements.
  • Nothing: Type with no values.
  • Interval: Represents a time interval.