schemasafe / troy

Type-safe and Schema-safe Scala wrapper for Cassandra driver
Apache License 2.0
151 stars 14 forks source link

[WIP] CQL 3.3 status #127

Open tabdulradi opened 7 years ago

tabdulradi commented 7 years ago

This is a meta-issue, to track supported CQL features.

P = Parser (AST and parser), does it event parse?
S = Schema Engine, does troy understand it
M = Does it work with the macro (integration tests)

✅ = Implemented and automated test exists (with link to PR)
⚠️ = We have a task for this (with a link to the issue)
❌ = Not going to be implemented (with link to explanation and workaround)

Note: This is still underprogress, items that doesn't any signs next to it, means we didn't update the document yet.

Basics

Feature P S
Case insensitive and double quotes ⚠️ #128 ⚠️
Escaping Characters : Single Quote ✅ #91
Escaping Characters: Dollar Sign ⚠️ #130 ⚠️
Comments ⚠️ #122 ⚠️
Keywords ✅ #133

Data types

Feature P S M
Primitives
Blob
UUIDs
Timestamp
Tuple ⚠️ ⚠️ ⚠️
UDT ⚠️ #9 ⚠️ ⚠️
list
set
map
frozen ⚠️ ⚠️ ⚠️

Functions

Feature P S M
Blob ✅ #125 ⚠️
UUIDs ✅ #125 ⚠️
Token ✅ #125 ⚠️
Writetime ✅ #125 ⚠️
TTL ✅ #125 ⚠️
Aggregations ✅ #125 ⚠️ #134
UDF ✅ #125 ⚠️
UDA ✅ #125 ⚠️

Statements

Data Manipulation (Queries)

Feature P S M
SELECT
INSERT
UPDATE
DELETE

Data Definition (Schema)

Feature P S M
ALTER KEYSPACE
ALTER MATERIALIZED VIEW
ALTER ROLE
ALTER TABLE
ALTER TYPE
ALTER USER
BATCH
CREATE AGGREGATE
CREATE CUSTOM INDEX (SASI)
CREATE INDEX
CREATE FUNCTION
CREATE KEYSPACE
CREATE MATERIALIZED VIEW
CREATE TABLE
CREATE TRIGGER
CREATE TYPE
CREATE ROLE
CREATE USER
DROP AGGREGATE
DROP FUNCTION
DROP INDEX
DROP KEYSPACE
DROP MATERIALIZED VIEW
DROP ROLE
DROP TABLE
DROP TRIGGER
DROP TYPE
DROP USER
GRANT
LIST PERMISSIONS
LIST ROLES
LIST USERS
REVOKE
TRUNCATE
USE
OmniaGM commented 7 years ago

Data Manipulation (Queries)

Feature P S M
INSERT
UPDATE
DELETE

SELECT

Options P S M
* ✅ #52 ✅ #52 ✅ #52
DISTINCT partition ✅ #65 ✅ #65 ✅ #65
aggregate(arguments) ⚠️ #134 and #137 ⚠️ #134 and #137 ⚠️ #134 and #137
function(arguments) ⚠️ #40 ⚠️ ⚠️
JSON formate
AS alias_name
partition_value =
partition_value IN
clustering_filters relation
clustering_filters operator
clustering_filters term
clustering_filters term-tuple
clustering_filters TOKEN