Last active
October 26, 2017 23:28
-
-
Save DavidWells/7ae8455dfdac446d38ddb19f5d4bf980 to your computer and use it in GitHub Desktop.
List of reserved dynamoDB keys
This file contains hidden or 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
module.exports = [ | |
"ABORT", | |
"ABSOLUTE", | |
"ACTION", | |
"ADD", | |
"AFTER", | |
"AGENT", | |
"AGGREGATE", | |
"ALL", | |
"ALLOCATE", | |
"ALTER", | |
"ANALYZE", | |
"AND", | |
"ANY", | |
"ARCHIVE", | |
"ARE", | |
"ARRAY", | |
"AS", | |
"ASC", | |
"ASCII", | |
"ASENSITIVE", | |
"ASSERTION", | |
"ASYMMETRIC", | |
"AT", | |
"ATOMIC", | |
"ATTACH", | |
"ATTRIBUTE", | |
"AUTH", | |
"AUTHORIZATION", | |
"AUTHORIZE", | |
"AUTO", | |
"AVG", | |
"BACK", | |
"BACKUP", | |
"BASE", | |
"BATCH", | |
"BEFORE", | |
"BEGIN", | |
"BETWEEN", | |
"BIGINT", | |
"BINARY", | |
"BIT", | |
"BLOB", | |
"BLOCK", | |
"BOOLEAN", | |
"BOTH", | |
"BREADTH", | |
"BUCKET", | |
"BULK", | |
"BY", | |
"BYTE", | |
"CALL", | |
"CALLED", | |
"CALLING", | |
"CAPACITY", | |
"CASCADE", | |
"CASCADED", | |
"CASE", | |
"CAST", | |
"CATALOG", | |
"CHAR", | |
"CHARACTER", | |
"CHECK", | |
"CLASS", | |
"CLOB", | |
"CLOSE", | |
"CLUSTER", | |
"CLUSTERED", | |
"CLUSTERING", | |
"CLUSTERS", | |
"COALESCE", | |
"COLLATE", | |
"COLLATION", | |
"COLLECTION", | |
"COLUMN", | |
"COLUMNS", | |
"COMBINE", | |
"COMMENT", | |
"COMMIT", | |
"COMPACT", | |
"COMPILE", | |
"COMPRESS", | |
"CONDITION", | |
"CONFLICT", | |
"CONNECT", | |
"CONNECTION", | |
"CONSISTENCY", | |
"CONSISTENT", | |
"CONSTRAINT", | |
"CONSTRAINTS", | |
"CONSTRUCTOR", | |
"CONSUMED", | |
"CONTINUE", | |
"CONVERT", | |
"COPY", | |
"CORRESPONDING", | |
"COUNT", | |
"COUNTER", | |
"CREATE", | |
"CROSS", | |
"CUBE", | |
"CURRENT", | |
"CURSOR", | |
"CYCLE", | |
"DATA", | |
"DATABASE", | |
"DATE", | |
"DATETIME", | |
"DAY", | |
"DEALLOCATE", | |
"DEC", | |
"DECIMAL", | |
"DECLARE", | |
"DEFAULT", | |
"DEFERRABLE", | |
"DEFERRED", | |
"DEFINE", | |
"DEFINED", | |
"DEFINITION", | |
"DELETE", | |
"DELIMITED", | |
"DEPTH", | |
"DEREF", | |
"DESC", | |
"DESCRIBE", | |
"DESCRIPTOR", | |
"DETACH", | |
"DETERMINISTIC", | |
"DIAGNOSTICS", | |
"DIRECTORIES", | |
"DISABLE", | |
"DISCONNECT", | |
"DISTINCT", | |
"DISTRIBUTE", | |
"DO", | |
"DOMAIN", | |
"DOUBLE", | |
"DROP", | |
"DUMP", | |
"DURATION", | |
"DYNAMIC", | |
"EACH", | |
"ELEMENT", | |
"ELSE", | |
"ELSEIF", | |
"EMPTY", | |
"ENABLE", | |
"END", | |
"EQUAL", | |
"EQUALS", | |
"ERROR", | |
"ESCAPE", | |
"ESCAPED", | |
"EVAL", | |
"EVALUATE", | |
"EXCEEDED", | |
"EXCEPT", | |
"EXCEPTION", | |
"EXCEPTIONS", | |
"EXCLUSIVE", | |
"EXEC", | |
"EXECUTE", | |
"EXISTS", | |
"EXIT", | |
"EXPLAIN", | |
"EXPLODE", | |
"EXPORT", | |
"EXPRESSION", | |
"EXTENDED", | |
"EXTERNAL", | |
"EXTRACT", | |
"FAIL", | |
"FALSE", | |
"FAMILY", | |
"FETCH", | |
"FIELDS", | |
"FILE", | |
"FILTER", | |
"FILTERING", | |
"FINAL", | |
"FINISH", | |
"FIRST", | |
"FIXED", | |
"FLATTERN", | |
"FLOAT", | |
"FOR", | |
"FORCE", | |
"FOREIGN", | |
"FORMAT", | |
"FORWARD", | |
"FOUND", | |
"FREE", | |
"FROM", | |
"FULL", | |
"FUNCTION", | |
"FUNCTIONS", | |
"GENERAL", | |
"GENERATE", | |
"GET", | |
"GLOB", | |
"GLOBAL", | |
"GO", | |
"GOTO", | |
"GRANT", | |
"GREATER", | |
"GROUP", | |
"GROUPING", | |
"HANDLER", | |
"HASH", | |
"HAVE", | |
"HAVING", | |
"HEAP", | |
"HIDDEN", | |
"HOLD", | |
"HOUR", | |
"IDENTIFIED", | |
"IDENTITY", | |
"IF", | |
"IGNORE", | |
"IMMEDIATE", | |
"IMPORT", | |
"IN", | |
"INCLUDING", | |
"INCLUSIVE", | |
"INCREMENT", | |
"INCREMENTAL", | |
"INDEX", | |
"INDEXED", | |
"INDEXES", | |
"INDICATOR", | |
"INFINITE", | |
"INITIALLY", | |
"INLINE", | |
"INNER", | |
"INNTER", | |
"INOUT", | |
"INPUT", | |
"INSENSITIVE", | |
"INSERT", | |
"INSTEAD", | |
"INT", | |
"INTEGER", | |
"INTERSECT", | |
"INTERVAL", | |
"INTO", | |
"INVALIDATE", | |
"IS", | |
"ISOLATION", | |
"ITEM", | |
"ITEMS", | |
"ITERATE", | |
"JOIN", | |
"KEY", | |
"KEYS", | |
"LAG", | |
"LANGUAGE", | |
"LARGE", | |
"LAST", | |
"LATERAL", | |
"LEAD", | |
"LEADING", | |
"LEAVE", | |
"LEFT", | |
"LENGTH", | |
"LESS", | |
"LEVEL", | |
"LIKE", | |
"LIMIT", | |
"LIMITED", | |
"LINES", | |
"LIST", | |
"LOAD", | |
"LOCAL", | |
"LOCALTIME", | |
"LOCALTIMESTAMP", | |
"LOCATION", | |
"LOCATOR", | |
"LOCK", | |
"LOCKS", | |
"LOG", | |
"LOGED", | |
"LONG", | |
"LOOP", | |
"LOWER", | |
"MAP", | |
"MATCH", | |
"MATERIALIZED", | |
"MAX", | |
"MAXLEN", | |
"MEMBER", | |
"MERGE", | |
"METHOD", | |
"METRICS", | |
"MIN", | |
"MINUS", | |
"MINUTE", | |
"MISSING", | |
"MOD", | |
"MODE", | |
"MODIFIES", | |
"MODIFY", | |
"MODULE", | |
"MONTH", | |
"MULTI", | |
"MULTISET", | |
"NAME", | |
"NAMES", | |
"NATIONAL", | |
"NATURAL", | |
"NCHAR", | |
"NCLOB", | |
"NEW", | |
"NEXT", | |
"NO", | |
"NONE", | |
"NOT", | |
"NULL", | |
"NULLIF", | |
"NUMBER", | |
"NUMERIC", | |
"OBJECT", | |
"OF", | |
"OFFLINE", | |
"OFFSET", | |
"OLD", | |
"ON", | |
"ONLINE", | |
"ONLY", | |
"OPAQUE", | |
"OPEN", | |
"OPERATOR", | |
"OPTION", | |
"OR", | |
"ORDER", | |
"ORDINALITY", | |
"OTHER", | |
"OTHERS", | |
"OUT", | |
"OUTER", | |
"OUTPUT", | |
"OVER", | |
"OVERLAPS", | |
"OVERRIDE", | |
"OWNER", | |
"PAD", | |
"PARALLEL", | |
"PARAMETER", | |
"PARAMETERS", | |
"PARTIAL", | |
"PARTITION", | |
"PARTITIONED", | |
"PARTITIONS", | |
"PATH", | |
"PERCENT", | |
"PERCENTILE", | |
"PERMISSION", | |
"PERMISSIONS", | |
"PIPE", | |
"PIPELINED", | |
"PLAN", | |
"POOL", | |
"POSITION", | |
"PRECISION", | |
"PREPARE", | |
"PRESERVE", | |
"PRIMARY", | |
"PRIOR", | |
"PRIVATE", | |
"PRIVILEGES", | |
"PROCEDURE", | |
"PROCESSED", | |
"PROJECT", | |
"PROJECTION", | |
"PROPERTY", | |
"PROVISIONING", | |
"PUBLIC", | |
"PUT", | |
"QUERY", | |
"QUIT", | |
"QUORUM", | |
"RAISE", | |
"RANDOM", | |
"RANGE", | |
"RANK", | |
"RAW", | |
"READ", | |
"READS", | |
"REAL", | |
"REBUILD", | |
"RECORD", | |
"RECURSIVE", | |
"REDUCE", | |
"REF", | |
"REFERENCE", | |
"REFERENCES", | |
"REFERENCING", | |
"REGEXP", | |
"REGION", | |
"REINDEX", | |
"RELATIVE", | |
"RELEASE", | |
"REMAINDER", | |
"RENAME", | |
"REPEAT", | |
"REPLACE", | |
"REQUEST", | |
"RESET", | |
"RESIGNAL", | |
"RESOURCE", | |
"RESPONSE", | |
"RESTORE", | |
"RESTRICT", | |
"RESULT", | |
"RETURN", | |
"RETURNING", | |
"RETURNS", | |
"REVERSE", | |
"REVOKE", | |
"RIGHT", | |
"ROLE", | |
"ROLES", | |
"ROLLBACK", | |
"ROLLUP", | |
"ROUTINE", | |
"ROW", | |
"ROWS", | |
"RULE", | |
"RULES", | |
"SAMPLE", | |
"SATISFIES", | |
"SAVE", | |
"SAVEPOINT", | |
"SCAN", | |
"SCHEMA", | |
"SCOPE", | |
"SCROLL", | |
"SEARCH", | |
"SECOND", | |
"SECTION", | |
"SEGMENT", | |
"SEGMENTS", | |
"SELECT", | |
"SELF", | |
"SEMI", | |
"SENSITIVE", | |
"SEPARATE", | |
"SEQUENCE", | |
"SERIALIZABLE", | |
"SESSION", | |
"SET", | |
"SETS", | |
"SHARD", | |
"SHARE", | |
"SHARED", | |
"SHORT", | |
"SHOW", | |
"SIGNAL", | |
"SIMILAR", | |
"SIZE", | |
"SKEWED", | |
"SMALLINT", | |
"SNAPSHOT", | |
"SOME", | |
"SOURCE", | |
"SPACE", | |
"SPACES", | |
"SPARSE", | |
"SPECIFIC", | |
"SPECIFICTYPE", | |
"SPLIT", | |
"SQL", | |
"SQLCODE", | |
"SQLERROR", | |
"SQLEXCEPTION", | |
"SQLSTATE", | |
"SQLWARNING", | |
"START", | |
"STATE", | |
"STATIC", | |
"STATUS", | |
"STORAGE", | |
"STORE", | |
"STORED", | |
"STREAM", | |
"STRING", | |
"STRUCT", | |
"STYLE", | |
"SUB", | |
"SUBMULTISET", | |
"SUBPARTITION", | |
"SUBSTRING", | |
"SUBTYPE", | |
"SUM", | |
"SUPER", | |
"SYMMETRIC", | |
"SYNONYM", | |
"SYSTEM", | |
"TABLE", | |
"TABLESAMPLE", | |
"TEMP", | |
"TEMPORARY", | |
"TERMINATED", | |
"TEXT", | |
"THAN", | |
"THEN", | |
"THROUGHPUT", | |
"TIME", | |
"TIMESTAMP", | |
"TIMEZONE", | |
"TINYINT", | |
"TO", | |
"TOKEN", | |
"TOTAL", | |
"TOUCH", | |
"TRAILING", | |
"TRANSACTION", | |
"TRANSFORM", | |
"TRANSLATE", | |
"TRANSLATION", | |
"TREAT", | |
"TRIGGER", | |
"TRIM", | |
"TRUE", | |
"TRUNCATE", | |
"TTL", | |
"TUPLE", | |
"TYPE", | |
"UNDER", | |
"UNDO", | |
"UNION", | |
"UNIQUE", | |
"UNIT", | |
"UNKNOWN", | |
"UNLOGGED", | |
"UNNEST", | |
"UNPROCESSED", | |
"UNSIGNED", | |
"UNTIL", | |
"UPDATE", | |
"UPPER", | |
"URL", | |
"USAGE", | |
"USE", | |
"USER", | |
"USERS", | |
"USING", | |
"UUID", | |
"VACUUM", | |
"VALUE", | |
"VALUED", | |
"VALUES", | |
"VARCHAR", | |
"VARIABLE", | |
"VARIANCE", | |
"VARINT", | |
"VARYING", | |
"VIEW", | |
"VIEWS", | |
"VIRTUAL", | |
"VOID", | |
"WAIT", | |
"WHEN", | |
"WHENEVER", | |
"WHERE", | |
"WHILE", | |
"WINDOW", | |
"WITH", | |
"WITHIN", | |
"WITHOUT", | |
"WORK", | |
"WRAPPED", | |
"WRITE", | |
"YEAR", | |
"ZONE" | |
] |
This file contains hidden or 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
// ref https://github.com/sportnumerics/stats/blob/5ae2ebe884df2260514953f041e1eabaab5526eb/lib/service/persistence.js#L117 | |
const _ = require('lodash') | |
const knownKeywords = require('./keywords') | |
const ATTRIBUTE_PREFIX = ':p'; | |
const TOKEN_PREFIX = '#token'; | |
function isKeyword(keyword) { | |
return _.includes(knownKeywords, keyword.toUpperCase()); | |
}; | |
function sanitizeKeyName(keyName) { | |
if (isKeyword(keyName)) { | |
const token = _.uniqueId(TOKEN_PREFIX); | |
return { | |
sanitizedName: token, | |
nameMapping: { [token]: keyName } | |
}; | |
} else { | |
return { | |
sanitizedName: keyName, | |
nameMapping: {} | |
}; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment