MeridianMERIDIAN

ULID

Universally Unique Lexicographically Sortable Identifier. 26-character Crockford Base32 string encoding a 48-bit timestamp and 80 bits of randomness.

ULID

technology.identifier.ulid

Universally Unique Lexicographically Sortable Identifier. 26-character Crockford Base32 string encoding a 48-bit timestamp and 80 bits of randomness.

Domain
technology
Category
identifier
Casts to
VARCHAR
Scope
Universal

Try it

CLI
$ finetype infer -i "01ARZ3NDEKTSV4RRFFQ69G5FAV"
→ technology.identifier.ulid

DuckDB

Detect
SELECT finetype('01ARZ3NDEKTSV4RRFFQ69G5FAV');
-- → 'technology.identifier.ulid'
Cast expression
CAST({col} AS VARCHAR)
Safe cast pipeline
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'technology.identifier.ulid';

Struct Expansion

Expression
timestamp_ms: EPOCH_MS(({col}::ULID)::BIGINT)

JSON Schema

finetype schema technology.identifier.ulid
{
  "$id": "https://meridian.online/schemas/technology.identifier.ulid",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Universally Unique Lexicographically Sortable Identifier. 26-character Crockford Base32 string encoding a 48-bit timestamp and 80 bits of randomness.",
  "examples": [
    "01ARZ3NDEKTSV4RRFFQ69G5FAV",
    "01H5J3XZQK0000000000000000",
    "01FWHE4G8R2SXHM3F07YR3FW0T"
  ],
  "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$",
  "title": "ULID",
  "type": "string",
  "x-finetype-broad-type": "VARCHAR",
  "x-finetype-transform": "CAST({col} AS VARCHAR)",
  "x-finetype-transform-ext": "TRY_CAST({col} AS ULID)"
}

Examples

01ARZ3NDEKTSV4RRFFQ69G5FAV01H5J3XZQK000000000000000001FWHE4G8R2SXHM3F07YR3FW0T

Type Registry