> ## Documentation Index
> Fetch the complete documentation index at: https://www.propeldata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data types

> ClickHouse data types in Propel

<div />

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.
