> ## Documentation Index
> Fetch the complete documentation index at: https://docs.risingwave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Identifiers

## Naming restrictions

* The first character of an identifier must be an ASCII letter (e.g., `a`-`z` and `A`-`Z`) or an underscore (`_`).
* The remaining characters of an identifier must be ASCII letters (e.g., `a`-`z` and `A`-`Z`), underscores (`_`), ASCII digits (`0`-`9`), or dollar signs (`$`).
* Non-ASCII characters in unquoted identifiers are not allowed.
* You can circumvent any above rules by double-quoting the identifier (e.g., `"5_source"`). All characters inside a quoted identifier are taken literally, except double-quotes must be escaped by writing two adjacent double-quotes, as in (e.g., `"two""quotes"`).
* In an **expression**, certain names are interpreted as builtins rather than column names. For example:
  Names interpreted as builtins

```sql theme={null}
SELECT user; -- This is the builtin `user`.
SELECT user, avatar FROM t; -- This is also the builtin `user`, rather than a column from the table `t`.
```

Several such names require special attention, including **`user`, `current_timestamp`, `current_schema`, `current_role`, `current_user`,** and **`session_user`**. To avoid such issues, you can either avoid naming a column with these words, or qualify it with the table name (as shown in the example below) when such ambiguity happens.
Solution to avoid naming conflicts

```sql theme={null}
SELECT t.user, avatar FROM t; -- Qualify it with `t.` to select the column rather than the builtin.
```

## Case sensitivity

Identifiers are case-insensitive. It means `wave`, `WAVE`, and `wAve` are the same identifier in RisingWave. This can cause issues when column names come from data sources that do support case-sensitive names, such as Avro-formatted sources or CSV headers.

To avoid conflicts, double-quote all field names (e.g., `"field_name"`) when working with case-sensitive sources.

RisingWave processes unquoted identifiers as in lower cases. If you create a table named `WAVE`, it will display as `wave` when you choose to list all tables. You can reference it by `wave`, `WAVE`, or a combination of upper- and lower cases in SQL statements.
