This is an automated email from the ASF dual-hosted git repository.
asf-ci-deploy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite-site.git
The following commit(s) were added to refs/heads/main by this push:
new e9cd84ddd Website deployed from
calcite@52f8d60c8926e600d14260d5ba5baa7322c7a8a3
e9cd84ddd is described below
commit e9cd84ddd2096230d179939a1d82c65d8a84e351
Author: mihaibudiu <[email protected]>
AuthorDate: Wed Aug 19 20:22:11 2026 +0000
Website deployed from calcite@52f8d60c8926e600d14260d5ba5baa7322c7a8a3
---
docs/history.html | 18 ++++++++++++++++++
docs/reference.html | 5 +++--
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/docs/history.html b/docs/history.html
index 6163d0b17..65ee679d6 100644
--- a/docs/history.html
+++ b/docs/history.html
@@ -137,6 +137,24 @@ Class loading from model files has been disabled by
default. Any attempt to load
classes from model files will lead to `SecurityException` unless an appropriate
pattern is set in `calcite.model.classes.allowed` system property.
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7727">CALCITE-7727</a>]
+Comparing a `UUID` with a character or binary value now converts that value to
a
+`UUID`, the same direction as comparing a string with a number or a datetime.
+Previously the `UUID` was converted to the other operand's type. A value that
does not
+denote a `UUID` is now an error rather than a comparison that silently fails.
+
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7727">CALCITE-7727</a>]
+Converting a string to a `UUID` now follows PostgreSQL: 32 hexadecimal digits
of
+either case, optionally enclosed in braces, optionally separated by a hyphen
+after any complete group of four digits. Forms such as
+`123e4567e89b12d3a456426655440000` and `{123e4567-e89b-12d3-a456-426655440000}`
+are now accepted. Malformed strings are now rejected instead of being converted
+to a different `UUID`; `java.util.UUID.fromString`, used previously, does not
+check the width of each group, and turned `1-2-3-4-5` into
+`00000001-0002-0003-0004-000000000005`. Converting a binary to a `UUID` now
+requires exactly 16 bytes; a longer value used to be truncated. Blanks are not
+trimmed.
+
#### New features
{: #new-features-1-43-0}
diff --git a/docs/reference.html b/docs/reference.html
index e658eb2c7..9bbf8aa74 100644
--- a/docs/reference.html
+++ b/docs/reference.html
@@ -1390,7 +1390,7 @@ name will have been converted to upper case also.</p>
<tr>
<td style="text-align: left">UUID</td>
<td style="text-align: left">An 128-bit UUID</td>
- <td style="text-align: left">Example: UUID
‘123e4567-e89b-12d3-a456-426655440000’</td>
+ <td style="text-align: left">Example: UUID
‘123e4567-e89b-12d3-a456-426655440000’. A string converts to a <code
class="language-plaintext highlighter-rouge">UUID</code> if it holds 32
hexadecimal digits of either case, optionally enclosed in braces, optionally
separated by a hyphen after any complete group of four digits; a binary
converts if it is exactly 16 bytes. Anything else is an error. Blanks are not
trimmed.</td>
</tr>
<tr>
<td style="text-align: left">INTERVAL timeUnit [ TO timeUnit ]</td>
@@ -3281,7 +3281,8 @@ string operand to data type of the other numeric
operand;</li>
<li>Binary comparison (<code class="language-plaintext
highlighter-rouge">=</code>, <code class="language-plaintext
highlighter-rouge"><</code>, <code class="language-plaintext
highlighter-rouge"><=</code>, <code class="language-plaintext
highlighter-rouge"><></code>, <code class="language-plaintext
highlighter-rouge">></code>, <code class="language-plaintext
highlighter-rouge">>=</code>):
if operands are <code class="language-plaintext
highlighter-rouge">STRING</code> and <code class="language-plaintext
highlighter-rouge">TIMESTAMP</code>, promote to <code class="language-plaintext
highlighter-rouge">TIMESTAMP</code>;
make <code class="language-plaintext highlighter-rouge">1 = true</code> and
<code class="language-plaintext highlighter-rouge">0 = false</code> always
evaluate to <code class="language-plaintext highlighter-rouge">TRUE</code>;
-if there is numeric type operand, find common type for both operands.</li>
+if there is numeric type operand, find common type for both operands;
+if operands are <code class="language-plaintext highlighter-rouge">UUID</code>
and <code class="language-plaintext highlighter-rouge">CHARACTER</code> or
<code class="language-plaintext highlighter-rouge">BINARY</code>, promote to
<code class="language-plaintext highlighter-rouge">UUID</code>.</li>
<li>
<code class="language-plaintext highlighter-rouge">IN</code> sub-query:
compare type of LHS and RHS, and find the common type;
if it is struct type, find wider type for every field;</li>