Reserved Words

  • reference
    +
    SQL++ defines an extensive list of keywords that are reserved words. You cannot use these keywords as identifiers unless you escape them. All of the SQL++ keywords are case-insensitive.

    Some keywords are not currently implemented but are reserved for future use.

    Using Reserved Words as Identifiers

    SQL++ allows escaped identifiers to overlap with keywords. To use a reserved word as an identifier, you must escape it by enclosing the reserved word inside backticks (``). For example, if your JSON document contains a field named index, you can use it in your queries by escaping it like this:

    {
        "age": "42",
        "index": 27,
        "name": "Elvis"
    }
    CREATE INDEX myindex ON default(`index`) USING GSI;

    SQL++ Reserved Words

    The following keywords are reserved and cannot be used as unescaped identifiers.

    The word AI is not a reserved word, even though you can use it in combination with the USING keyword as part of the USING AI statement. You do not have to escape the word AI inside backticks when using it by itself as an identifier.

    Symbols

    _INDEX_CONDITION
    _INDEX_KEY

    A

    ADVISE
    ALL
    ALTER
    ANALYZE
    AND
    ANY
    ARRAY
    AS
    ASC
    AT

    B

    BEGIN
    BETWEEN
    BINARY
    BOOLEAN
    BREAK
    BUCKET
    BUILD
    BY

    C

    CACHE
    CALL
    CASE
    CAST
    CLUSTER
    COLLATE
    COLLECTION
    COMMIT
    COMMITTED
    CONNECT
    CONTINUE
    CORRELATED
    COVER
    CREATE
    CURRENT
    CYCLE

    D

    DATABASE
    DATASET
    DATASTORE
    DECLARE
    DECREMENT
    DEFAULT
    DELETE
    DERIVED
    DESC
    DESCRIBE
    DISTINCT
    DO
    DROP

    E

    EACH
    ELEMENT
    ELSE
    END
    ESCAPE
    EVERY
    EXCEPT
    EXCLUDE
    EXECUTE
    EXISTS
    EXPLAIN

    F

    FALSE
    FETCH
    FILTER
    FIRST
    FLATTEN
    FLATTEN_KEYS
    FLUSH
    FOLLOWING
    FOR
    FORCE
    FROM
    FTS
    FUNCTION

    G

    H

    HASH
    HAVING

    I

    IF
    IGNORE
    ILIKE
    IN
    INCLUDE
    INCREMENT
    INDEX
    INFER
    INLINE
    INNER
    INSERT
    INTERSECT
    INTO
    IS
    ISOLATION

    K

    KEY
    KEYS
    KEYSPACE
    KNOWN

    L

    LANGUAGE
    LAST
    LATERAL
    LEFT
    LET
    LETTING
    LEVEL
    LIKE
    LIMIT
    LSM

    M

    MAP
    MAPPING
    MATCHED
    MATERIALIZED
    MAXVALUE
    MERGE
    MINUS
    MINVALUE
    MISSING

    N

    NAMESPACE
    NAMESPACE_ID
    NEST
    NEXT
    NEXTVAL
    NL
    NO
    NOT
    NOT_A_TOKEN
    NTH_VALUE
    NULL
    NULLS
    NUMBER

    O

    OBJECT
    OFFSET
    ON
    OPTION
    OPTIONS
    OR
    ORDER
    OTHERS
    OUTER
    OVER

    P

    PARSE
    PARTITION
    PASSWORD
    PATH
    POOL
    PRECEDING
    PREPARE
    PREV
    PREVIOUS
    PREVVAL
    PRIMARY
    PRIVATE
    PRIVILEGE
    PROBE
    PROCEDURE
    PUBLIC

    R

    RANGE
    RAW
    READ
    REALM
    RECURSIVE
    REDUCE
    RENAME
    REPLACE
    RESPECT
    RESTART
    RESTRICT
    RETURN
    RETURNING
    REVOKE
    RIGHT
    ROLE
    ROLES
    ROLLBACK
    ROW
    ROWS

    S

    SATISFIES
    SAVEPOINT
    SCHEMA
    SCOPE
    SELECT
    SELF
    SEQUENCE
    SEMI
    SET
    SHOW
    SOME
    START
    STATISTICS
    STRING
    SYSTEM

    T

    THEN
    TIES
    TO
    TRAN
    TRANSACTION
    TRIGGER
    TRUE
    TRUNCATE

    U

    UNBOUNDED
    UNDER
    UNION
    UNIQUE
    UNKNOWN
    UNNEST
    UNSET
    UPDATE
    UPSERT
    USE
    USER
    USERS
    USING

    V

    VALIDATE
    VALUE
    VALUED
    VALUES
    VECTOR
    VIA
    VIEW

    W

    WHEN
    WHERE
    WHILE
    WINDOW
    WITH
    WITHIN
    WORK

    X

    XOR