Created
August 6, 2015 14:19
-
-
Save Pchelolo/91ebb7adcc75c11e024f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Indexes | |
- Index should be non-empty array | |
- Index cannot have duplicate attributes | |
- Index must have at least one 'hash' attribute | |
- All indexed attributes must exist in a schema | |
- Static indexes cannot be created on a table with no range indexes | |
# Revision policy | |
- Only keys 'type', 'grace_ttl' and 'count' are allowed | |
- Type can be 'all' and 'latest' | |
- Grace_ttl must be a number and can't be less then minGcGrace | |
- Count must be a number and must be between minKeep and maxKeep | |
# Schema | |
- Schema must have at least one attribute | |
- Attribute types must be valid | |
- Compression option must have valid algorithm and block size | |
- Durablity option must have valid value | |
# Get projection | |
- A projection must be a String or Array | |
- All projection attributes must exist in a table/index schema | |
# Conditions | |
- Every attribute in the predicate must be 'hash' or 'range' indexed (optional for WHERE bit no for IF) | |
- Each individual condition operator must be valid | |
- Non-eq operators allowed only on 'range' indexed columns | |
- There can't be more than one non-eq predicates. | |
# Order | |
- Order must be either 'asc' or 'desc' | |
- Order attributes must be in a 'range' index of a table | |
# Get request | |
- Table schema must exist | |
- If the query uses a secondary index, it must exist | |
- Projection, condition and order parts are also verified | |
# Put request | |
- A table schema must exist | |
- All primary key attributes must be provided | |
- IF condition verified |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
But that was one of the points where cassandra/sqlite are different, so it was one of the main reasons to build the validator.. But if you are strictly concerned about performance we could leave this out