1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright (C) 2026 Gabriel Shea
// Licensed under either of the Apache License, Version 2.0 or the MIT
// license, at your option.
//! **A value an engine may hold as a large object**: how a load compares one,
//! and the unit a length is counted in.
//!
//! Some engines hold a text column with no length — or bytes, or a document —
//! as a large object (`CLOB`, `NCLOB`, `BLOB`), and such a value is not an
//! ordinary value there: it cannot be grouped or compared directly, and its
//! length may be counted in units other than characters. Razeri asks the
//! dialect about each column with the type the load holds it in
//! ([`HeldAs`]), through
//! [`ExpressionRenderer::render_comparable`](crate::ExpressionRenderer::render_comparable)
//! and [`ExpressionRenderer::text_length_unit`](crate::ExpressionRenderer::text_length_unit).
/// **Where a load holds a column when it compares or measures it.**
/// **The unit an engine's text length counts in.**