부록
부록 (Appendices)
CQL 언어에 대한 부록이에요. 예약 키워드 목록, 예약 타입, 그리고 Compact Storage 제거에 대해 다뤄요.
출처: Appendices
본문
부록 A: CQL 키워드
CQL은 예약(reserved) 키워드와 비예약(non-reserved) 키워드를 구분해요. 예약 키워드는 식별자로 사용할 수 없고 언어에 진정으로 예약되어 있어요(단, 예약 키워드를 큰따옴표로 감싸 식별자로 사용할 수 있어요). 반면 비예약 키워드는 특정 문맥에서만 특별한 의미를 가지며, 그 외에는 식별자로 사용할 수 있어요. 이 비예약 키워드의 존재 이유는 편의성뿐이에요. 어떤 키워드는 파서가 키워드로 사용되는지 쉽게 결정할 수 있을 때 비예약으로 유지해요.
| 키워드 | 예약? |
|---|---|
ADD |
yes |
AGGREGATE |
no |
ALL |
no |
ALLOW |
yes |
ALTER |
yes |
AND |
yes |
APPLY |
yes |
AS |
no |
ASC |
yes |
ASCII |
no |
AUTHORIZE |
yes |
BATCH |
yes |
BEGIN |
yes |
BIGINT |
no |
BLOB |
no |
BOOLEAN |
no |
BY |
yes |
CALLED |
no |
CLUSTERING |
no |
COLUMNFAMILY |
yes |
COMPACT |
no |
CONTAINS |
no |
COUNT |
no |
COUNTER |
no |
CREATE |
yes |
CUSTOM |
no |
DATE |
no |
DECIMAL |
no |
DELETE |
yes |
DESC |
yes |
DESCRIBE |
yes |
DISTINCT |
no |
DOUBLE |
no |
DROP |
yes |
ENTRIES |
yes |
EXECUTE |
yes |
EXISTS |
no |
FILTERING |
no |
FINALFUNC |
no |
FLOAT |
no |
FROM |
yes |
FROZEN |
no |
FULL |
yes |
FUNCTION |
no |
FUNCTIONS |
no |
GRANT |
yes |
IF |
yes |
IN |
yes |
INDEX |
yes |
INET |
no |
INFINITY |
yes |
INITCOND |
no |
INPUT |
no |
INSERT |
yes |
INT |
no |
INTO |
yes |
JSON |
no |
KEY |
no |
KEYS |
no |
KEYSPACE |
yes |
KEYSPACES |
no |
LANGUAGE |
no |
LIMIT |
yes |
LIST |
no |
LOGIN |
no |
MAP |
no |
MASKED |
no |
MODIFY |
yes |
NAN |
yes |
NOLOGIN |
no |
NORECURSIVE |
yes |
NOSUPERUSER |
no |
NOT |
yes |
NULL |
yes |
OF |
yes |
ON |
yes |
OPTIONS |
no |
OR |
yes |
ORDER |
yes |
PASSWORD |
no |
PERMISSION |
no |
PERMISSIONS |
no |
PRIMARY |
yes |
RENAME |
yes |
REPLACE |
yes |
RETURNS |
no |
REVOKE |
yes |
ROLE |
no |
ROLES |
no |
SCHEMA |
yes |
SELECT |
yes |
SELECT_MASKED |
no |
SET |
yes |
SFUNC |
no |
SMALLINT |
no |
STATIC |
no |
STORAGE |
no |
STYPE |
no |
SUPERUSER |
no |
TABLE |
yes |
TEXT |
no |
TIME |
no |
TIMESTAMP |
no |
TIMEUUID |
no |
TINYINT |
no |
TO |
yes |
TOKEN |
yes |
TRIGGER |
no |
TRUNCATE |
yes |
TTL |
no |
TUPLE |
no |
TYPE |
no |
UNLOGGED |
yes |
UNMASK |
no |
UPDATE |
yes |
USE |
yes |
USER |
no |
USERS |
no |
USING |
yes |
UUID |
no |
VALUES |
no |
VARCHAR |
no |
VARINT |
no |
WHERE |
yes |
WITH |
yes |
WRITETIME |
no |
MAXWRITETIME |
no |
부록 B: CQL 예약 타입
다음 타입 이름은 현재 CQL에서 사용되지 않지만 잠재적인 향후 사용을 위해 예약되어 있어요. 사용자 정의 타입은 예약 타입 이름을 자신의 이름으로 사용할 수 없어요.
| 타입 |
|---|
bitstring |
byte |
complex |
enum |
interval |
macaddr |
부록 C: Compact Storage 제거
버전 4.0부터 Thrift와 COMPACT STORAGE는 더 이상 지원되지 않아요.
ALTER … DROP COMPACT STORAGE 문은 Compact Table을 CQL 호환으로 만들어 Thrift/Compact Table의 내부 구조를 노출해요.
- 클러스터링 컬럼이 없는 CQL 생성 Compact Table은
UTF8Type의 추가 클러스터링 컬럼column1을 노출해요. - 일반 컬럼이 없는 CQL 생성 Compact Table은
BytesType의 일반 컬럼value를 노출해요. - CQL 생성 Compact Table의 경우 원래
regular로 정의된 모든 컬럼은static이 돼요. - 클러스터링이 있지만 일반 컬럼이 없는 CQL 생성 Compact Table은 빈 값 컬럼(
EmptyType)을 가져요. - SuperColumn Table(Thrift로만 생성 가능)은 빈 이름을 가진 컴팩트 값 맵을 노출해요.
- Thrift 생성 Compact Table은 Thrift 정의에 해당하는 타입을 가져요.