Skip to main content

Arrays and Lists

Typr provides full support for array and list types across databases that support them.

Database Support​

DatabaseArray SyntaxElement Types
PostgreSQLtext[], int4[]All scalar types
DuckDBLIST(varchar), LIST(integer)All scalar types
MariaDB-No array support
OracleVARRAY, Nested TableVia collection types
SQL Server-No array support
DB2-No array support

PostgreSQL Arrays​

PostgreSQL arrays are mapped to Java/Kotlin/Scala arrays:

EmployeeRow
    Optional<List<String>> skills,
Optional<List<String>> certifications,

Arrays work seamlessly:

  • text[] β†’ List<String>
  • int4[] β†’ List<Integer> / List<Int>
  • boolean[] β†’ List<Boolean>

DuckDB Lists​

DuckDB uses LIST types which map similarly to Java arrays:

EmployeeRow
    Optional<List<String>> skills,
Optional<List<String>> certifications,
Optional<List<Boolean>> weeklyAvailability,

DuckDB also supports nested types like:

  • STRUCT types β†’ Generated as record/data class
  • MAP types β†’ See Map Types

Limitations​

Multidimensional arrays: PostgreSQL supports multidimensional arrays, but Typr currently generates single-dimension arrays. Nested arrays may be added in the future.

NULL elements: Arrays can contain NULL elements. Use Optional inside the array or check for nulls when processing.