cockroachdb / cockroachdb/cockroach
Unexpected syntex error when use COLLATE in the definition of the default value of a column
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
**Describe the problem**
Please describe the issue you observed, and any steps we can take to reproduce it:
**To Reproduce**
Hi,
The following statement triggers an unexpected syntex error:
```
CREATE TABLE t0(c0 BOOLEAN DEFAULT (((('') COLLATE ca)) BETWEEN ('') AND ('')));
ERROR: relation "t0" (1502): at or near "collate": syntax error
SQLSTATE: 42601
DETAIL: source SQL:
SET ROW ('':::STRING COLLATE ca BETWEEN '' COLLATE ca AND '' COLLATE ca)
^
HINT: try \h SET SESSION
ERROR: relation "t0" (1502): at or near "collate": syntax error
SQLSTATE: 42601
DETAIL: source SQL:
SET ROW ('':::STRING COLLATE ca BETWEEN '' COLLATE ca AND '' COLLATE ca)
^
HINT: try \h SET SESSION
Failed running "sql"
```
However, this expression can execute successfully in a normal select:
```
SELECT (((('') COLLATE ca)) BETWEEN ('') AND (''));
SET
?column?
t
```
**Expected behavior**
A clear and concise description of what you expected to happen.
**Additional data / screenshots**
If the problem is SQL-related, include a copy of the SQL query and the schema
of the supporting tables.
If a node in your cluster encountered a fatal error, supply the contents of the
log directories (at minimum of the affected node(s), but preferably all nodes).
Note that log files can contain confidential information. Please continue
creating this issue, but contact support@cockroachlabs.com to submit the log
files in private.
If applicable, add screenshots to help explain your problem.
**Environment:**
- CockroachDB version [CockroachDB CCL v25.1.6 (x86_64-pc-linux-gnu, built 2025/05/09 15:48:03, go1.22.8 X:nocoverageredesign)]
- Server OS: [Ubuntu 24.04]
- Client app [`cockroach sql`, JDBC]
**Additional context**
What was the impact?
Add any other context about the problem here.
Jira issue: CRDB-54034
Contributor guide
Assessment
This issue has not been assessed yet.