Skip to content

[doc](datatype) Document native UUID type and functions - #4131

Merged
HappenLee merged 2 commits into
apache:masterfrom
jacktengg:uuid
Sep 15, 2026
Merged

HappenLee merged 2 commits into
apache:masterfrom
jacktengg:uuid

Conversation

@jacktengg

@jacktengg jacktengg commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Versions

  • dev
  • 4.x
  • 3.x
  • 2.1 or older (not covered by version/language sync gate)

Languages

  • Chinese
  • English

Docs Checklist

  • Checked by AI
  • Test Cases Built
  • Updated required version and language counterparts, or explained why not
  • If only one language changed, confirmed whether source/translation counterparts need sync

@jacktengg

Copy link
Copy Markdown
Contributor Author

Local pipeline review — ✅ PASS

schema: doris-repo-review/v1
status: PASS
pr: apache/doris-website#4131
commit: 77642cad03cfa1b081b64b1ab05687e2328fd900
base: 62f924204ae749d467acc5e59460a83142a8baa7
reviewed_at: 2026-09-11T14:57+08:00
reviewer: jacktengg
model: gpt-6-astra
effort: xhigh
findings: {blocker: 0, major: 0, minor: 3, nit: 0}
rounds: 1
converged: true

Notes for maintainers

  • Minor: correct 28-bit to 128-bit in the English type overview.
  • Minor: ARRAY now advertises UUID support; add development-version UUID to the ARRAYS_OVERLAP and COUNTEQUAL parameter inventories in both current locales.
  • Minor: remove the optional-fallback sentence from TO_UUID_OR_NULL and TO_UUID_OR_ZERO in both locales; these notes contradict their unary signatures. Keep it for TO_UUID_OR_DEFAULT.
  • Static review covered all 160 changed files, including English/Chinese consistency, current-only version scope, navigation, examples and implementation paths. No builds or tests were run.
  • Implementation evidence is pinned to apache/doris#67627 at 4e23d25; that PR was still open when inspected, so coordinate publication with its implementation.

Reviewed locally with the doris-repo-review pipeline. Repository policy may accept this receipt for the matching commit; it is not a human Apache approval.

@jacktengg

Copy link
Copy Markdown
Contributor Author

Local pipeline review — ✅ PASS

schema: doris-repo-review/v1
status: PASS
pr: apache/doris-website#4131
commit: 5ad443a4880797662790e6858621405504371354
base: 62f924204ae749d467acc5e59460a83142a8baa7
reviewed_at: 2026-09-11T16:44+08:00
reviewer: jacktengg
model: gpt-6-astra
effort: xhigh
findings: {blocker: 0, major: 0, minor: 1, nit: 0}
rounds: 1
converged: true

Notes for maintainers

  • docs/sql-manual/basic-element/sql-data-types/conversion/uuid-conversion.md:138 and its Chinese counterpart: VARIANT-to-UUID uses non-strict scalar conversion regardless of enable_strict_cast; correct the strict-mode dependency wording (Minor).
  • All three earlier Minor findings are fixed; all 153 changed files are covered, and the verdict converged in round 1.

Reviewed locally with the doris-repo-review pipeline. Repository policy may accept this receipt for the matching commit; it is not a human Apache approval.

…ocols

Follow apache/doris commit 67c2516, which switches the native UUID type to a
16-byte big-endian binary representation at the Arrow, Arrow Flight, Python
UDF, Parquet, and ORC boundaries.

- Arrow IPC and Flight SQL carry the standard `arrow.uuid` extension over
  `fixed_size_binary(16)`, including nested UUID elements.
- Python UDF/UDAF/UDTF receive and return `uuid.UUID` objects (`None` for
  NULL) instead of text.
- OUTFILE/EXPORT writes UUID leaves as FIXED_LEN_BYTE_ARRAY(16) with the UUID
  logical annotation in Parquet, and as BINARY with `doris.logical_type=uuid`
  in ORC, where Doris readers restore the native type.
- MySQL, CSV/JSON/Hive Text, Iceberg, and Java UDF mappings stay unchanged.

Update the Chinese mirrors accordingly.

@HappenLee HappenLee left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@HappenLee
HappenLee merged commit 4ce4190 into apache:master Sep 15, 2026
3 checks passed
jacktengg added a commit to apache/doris that referenced this pull request Sep 29, 2026
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:
Document: 
apache/doris-website#4131
apache/doris-website#4166

Doris does not have a native UUID SQL and storage type, so UUID values
must be stored as strings and cannot use a fixed-width representation or
UUID-aware generation and version functions. Add a native 128-bit UUID
type across FE, BE, IDL, storage, serialization, expressions, runtime
filters, external and JNI bridges, and schema metadata. Accept canonical
and compact hexadecimal input, normalize output to lowercase canonical
form, preserve unsigned canonical ordering, and add native UUID v4 and
v7 generation and version inspection while keeping the existing
string-returning uuid() behavior compatible.

### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [x] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [x] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->

---------

Co-authored-by: Dongyang Li <[email protected]>
jacktengg added a commit to jacktengg/incubator-doris that referenced this pull request Oct 9, 2026
Issue Number: close #xxx

Related PR: #xxx

Problem Summary:
Document:
apache/doris-website#4131
apache/doris-website#4166

Doris does not have a native UUID SQL and storage type, so UUID values
must be stored as strings and cannot use a fixed-width representation or
UUID-aware generation and version functions. Add a native 128-bit UUID
type across FE, BE, IDL, storage, serialization, expressions, runtime
filters, external and JNI bridges, and schema metadata. Accept canonical
and compact hexadecimal input, normalize output to lowercase canonical
form, preserve unsigned canonical ordering, and add native UUID v4 and
v7 generation and version inspection while keeping the existing
string-returning uuid() behavior compatible.

None

- Test <!-- At least one of them must be included. -->
    - [x] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [x] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->

---------

Co-authored-by: Dongyang Li <[email protected]>
jacktengg added a commit to jacktengg/incubator-doris that referenced this pull request Oct 14, 2026
Issue Number: close #xxx

Related PR: #xxx

Problem Summary:
Document:
apache/doris-website#4131
apache/doris-website#4166

Doris does not have a native UUID SQL and storage type, so UUID values
must be stored as strings and cannot use a fixed-width representation or
UUID-aware generation and version functions. Add a native 128-bit UUID
type across FE, BE, IDL, storage, serialization, expressions, runtime
filters, external and JNI bridges, and schema metadata. Accept canonical
and compact hexadecimal input, normalize output to lowercase canonical
form, preserve unsigned canonical ordering, and add native UUID v4 and
v7 generation and version inspection while keeping the existing
string-returning uuid() behavior compatible.

None

- Test <!-- At least one of them must be included. -->
    - [x] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [x] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->

---------

Co-authored-by: Dongyang Li <[email protected]>
jacktengg added a commit to jacktengg/incubator-doris that referenced this pull request Oct 15, 2026
Issue Number: close #xxx

Related PR: #xxx

Problem Summary:
Document:
apache/doris-website#4131
apache/doris-website#4166

Doris does not have a native UUID SQL and storage type, so UUID values
must be stored as strings and cannot use a fixed-width representation or
UUID-aware generation and version functions. Add a native 128-bit UUID
type across FE, BE, IDL, storage, serialization, expressions, runtime
filters, external and JNI bridges, and schema metadata. Accept canonical
and compact hexadecimal input, normalize output to lowercase canonical
form, preserve unsigned canonical ordering, and add native UUID v4 and
v7 generation and version inspection while keeping the existing
string-returning uuid() behavior compatible.

None

- Test <!-- At least one of them must be included. -->
    - [x] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [x] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->

---------

Co-authored-by: Dongyang Li <[email protected]>

This branch was previously deployed

1 inactive deployment
Production — 98fc3a8c Deployed Sep 14, 2026 by jacktengg via Build Check #8333
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants