surrealdb-core 3.2.2

A scalable, distributed, collaborative, document-graph database, for the realtime web
Documentation
//! GQL keyword lookup.
//!
//! The grammar is declared `options { caseInsensitive = true; }` (GQL.g4:3)
//! so keyword lookup is case-insensitive. The map covers every keyword in
//! [`crate::gql::token::Keyword`]: reserved, prereserved and non-reserved
//! words all lex to [`TokenKind::Keyword`]; the parser accepts non-reserved
//! keywords wherever the grammar requires a `regularIdentifier`.
//!
//! [`TokenKind::Keyword`]: crate::gql::token::TokenKind::Keyword

use phf::phf_map;
use unicase::UniCase;

use crate::gql::token::Keyword;

/// A map for mapping keyword strings to keywords.
pub(crate) static KEYWORDS: phf::Map<UniCase<&'static str>, Keyword> = phf_map! {
	UniCase::ascii("ABS") => Keyword::Abs,
	UniCase::ascii("ACOS") => Keyword::Acos,
	UniCase::ascii("ALL") => Keyword::All,
	UniCase::ascii("ALL_DIFFERENT") => Keyword::AllDifferent,
	UniCase::ascii("AND") => Keyword::And,
	UniCase::ascii("ANY") => Keyword::Any,
	UniCase::ascii("ARRAY") => Keyword::Array,
	UniCase::ascii("AS") => Keyword::As,
	UniCase::ascii("ASC") => Keyword::Asc,
	UniCase::ascii("ASCENDING") => Keyword::Ascending,
	UniCase::ascii("ASIN") => Keyword::Asin,
	UniCase::ascii("AT") => Keyword::At,
	UniCase::ascii("ATAN") => Keyword::Atan,
	UniCase::ascii("AVG") => Keyword::Avg,
	UniCase::ascii("BIG") => Keyword::Big,
	UniCase::ascii("BIGINT") => Keyword::Bigint,
	UniCase::ascii("BINARY") => Keyword::Binary,
	UniCase::ascii("BOOL") => Keyword::Bool,
	UniCase::ascii("BOOLEAN") => Keyword::Boolean,
	UniCase::ascii("BOTH") => Keyword::Both,
	UniCase::ascii("BTRIM") => Keyword::Btrim,
	UniCase::ascii("BY") => Keyword::By,
	UniCase::ascii("BYTE_LENGTH") => Keyword::ByteLength,
	UniCase::ascii("BYTES") => Keyword::Bytes,
	UniCase::ascii("CALL") => Keyword::Call,
	UniCase::ascii("CARDINALITY") => Keyword::Cardinality,
	UniCase::ascii("CASE") => Keyword::Case,
	UniCase::ascii("CAST") => Keyword::Cast,
	UniCase::ascii("CEIL") => Keyword::Ceil,
	UniCase::ascii("CEILING") => Keyword::Ceiling,
	UniCase::ascii("CHAR") => Keyword::Char,
	UniCase::ascii("CHAR_LENGTH") => Keyword::CharLength,
	UniCase::ascii("CHARACTER_LENGTH") => Keyword::CharacterLength,
	UniCase::ascii("CHARACTERISTICS") => Keyword::Characteristics,
	UniCase::ascii("CLOSE") => Keyword::Close,
	UniCase::ascii("COALESCE") => Keyword::Coalesce,
	UniCase::ascii("COLLECT_LIST") => Keyword::CollectList,
	UniCase::ascii("COMMIT") => Keyword::Commit,
	UniCase::ascii("COPY") => Keyword::Copy,
	UniCase::ascii("COS") => Keyword::Cos,
	UniCase::ascii("COSH") => Keyword::Cosh,
	UniCase::ascii("COT") => Keyword::Cot,
	UniCase::ascii("COUNT") => Keyword::Count,
	UniCase::ascii("CREATE") => Keyword::Create,
	UniCase::ascii("CURRENT_DATE") => Keyword::CurrentDate,
	UniCase::ascii("CURRENT_GRAPH") => Keyword::CurrentGraph,
	UniCase::ascii("CURRENT_PROPERTY_GRAPH") => Keyword::CurrentPropertyGraph,
	UniCase::ascii("CURRENT_SCHEMA") => Keyword::CurrentSchema,
	UniCase::ascii("CURRENT_TIME") => Keyword::CurrentTime,
	UniCase::ascii("CURRENT_TIMESTAMP") => Keyword::CurrentTimestamp,
	UniCase::ascii("DATE") => Keyword::Date,
	UniCase::ascii("DATETIME") => Keyword::Datetime,
	UniCase::ascii("DAY") => Keyword::Day,
	UniCase::ascii("DEC") => Keyword::Dec,
	UniCase::ascii("DECIMAL") => Keyword::Decimal,
	UniCase::ascii("DEGREES") => Keyword::Degrees,
	UniCase::ascii("DELETE") => Keyword::Delete,
	UniCase::ascii("DESC") => Keyword::Desc,
	UniCase::ascii("DESCENDING") => Keyword::Descending,
	UniCase::ascii("DETACH") => Keyword::Detach,
	UniCase::ascii("DISTINCT") => Keyword::Distinct,
	UniCase::ascii("DOUBLE") => Keyword::Double,
	UniCase::ascii("DROP") => Keyword::Drop,
	UniCase::ascii("DURATION") => Keyword::Duration,
	UniCase::ascii("DURATION_BETWEEN") => Keyword::DurationBetween,
	UniCase::ascii("ELEMENT_ID") => Keyword::ElementId,
	UniCase::ascii("ELSE") => Keyword::Else,
	UniCase::ascii("END") => Keyword::End,
	UniCase::ascii("EXCEPT") => Keyword::Except,
	UniCase::ascii("EXISTS") => Keyword::Exists,
	UniCase::ascii("EXP") => Keyword::Exp,
	UniCase::ascii("FILTER") => Keyword::Filter,
	UniCase::ascii("FINISH") => Keyword::Finish,
	UniCase::ascii("FLOAT") => Keyword::Float,
	UniCase::ascii("FLOAT16") => Keyword::Float16,
	UniCase::ascii("FLOAT32") => Keyword::Float32,
	UniCase::ascii("FLOAT64") => Keyword::Float64,
	UniCase::ascii("FLOAT128") => Keyword::Float128,
	UniCase::ascii("FLOAT256") => Keyword::Float256,
	UniCase::ascii("FLOOR") => Keyword::Floor,
	UniCase::ascii("FOR") => Keyword::For,
	UniCase::ascii("FROM") => Keyword::From,
	UniCase::ascii("GROUP") => Keyword::Group,
	UniCase::ascii("HAVING") => Keyword::Having,
	UniCase::ascii("HOME_GRAPH") => Keyword::HomeGraph,
	UniCase::ascii("HOME_PROPERTY_GRAPH") => Keyword::HomePropertyGraph,
	UniCase::ascii("HOME_SCHEMA") => Keyword::HomeSchema,
	UniCase::ascii("HOUR") => Keyword::Hour,
	UniCase::ascii("IF") => Keyword::If,
	UniCase::ascii("IN") => Keyword::In,
	UniCase::ascii("INSERT") => Keyword::Insert,
	UniCase::ascii("INT") => Keyword::Int,
	UniCase::ascii("INTEGER") => Keyword::Integer,
	UniCase::ascii("INT8") => Keyword::Int8,
	UniCase::ascii("INTEGER8") => Keyword::Integer8,
	UniCase::ascii("INT16") => Keyword::Int16,
	UniCase::ascii("INTEGER16") => Keyword::Integer16,
	UniCase::ascii("INT32") => Keyword::Int32,
	UniCase::ascii("INTEGER32") => Keyword::Integer32,
	UniCase::ascii("INT64") => Keyword::Int64,
	UniCase::ascii("INTEGER64") => Keyword::Integer64,
	UniCase::ascii("INT128") => Keyword::Int128,
	UniCase::ascii("INTEGER128") => Keyword::Integer128,
	UniCase::ascii("INT256") => Keyword::Int256,
	UniCase::ascii("INTEGER256") => Keyword::Integer256,
	UniCase::ascii("INTERSECT") => Keyword::Intersect,
	UniCase::ascii("INTERVAL") => Keyword::Interval,
	UniCase::ascii("IS") => Keyword::Is,
	UniCase::ascii("LEADING") => Keyword::Leading,
	UniCase::ascii("LEFT") => Keyword::Left,
	UniCase::ascii("LET") => Keyword::Let,
	UniCase::ascii("LIKE") => Keyword::Like,
	UniCase::ascii("LIMIT") => Keyword::Limit,
	UniCase::ascii("LIST") => Keyword::List,
	UniCase::ascii("LN") => Keyword::Ln,
	UniCase::ascii("LOCAL") => Keyword::Local,
	UniCase::ascii("LOCAL_DATETIME") => Keyword::LocalDatetime,
	UniCase::ascii("LOCAL_TIME") => Keyword::LocalTime,
	UniCase::ascii("LOCAL_TIMESTAMP") => Keyword::LocalTimestamp,
	UniCase::ascii("LOG") => Keyword::Log,
	UniCase::ascii("LOG10") => Keyword::Log10,
	UniCase::ascii("LOWER") => Keyword::Lower,
	UniCase::ascii("LTRIM") => Keyword::Ltrim,
	UniCase::ascii("MATCH") => Keyword::Match,
	UniCase::ascii("MAX") => Keyword::Max,
	UniCase::ascii("MIN") => Keyword::Min,
	UniCase::ascii("MINUTE") => Keyword::Minute,
	UniCase::ascii("MOD") => Keyword::Mod,
	UniCase::ascii("MONTH") => Keyword::Month,
	UniCase::ascii("NEXT") => Keyword::Next,
	UniCase::ascii("NODETACH") => Keyword::Nodetach,
	UniCase::ascii("NORMALIZE") => Keyword::Normalize,
	UniCase::ascii("NOT") => Keyword::Not,
	UniCase::ascii("NOTHING") => Keyword::Nothing,
	UniCase::ascii("NULL") => Keyword::Null,
	UniCase::ascii("NULLS") => Keyword::Nulls,
	UniCase::ascii("NULLIF") => Keyword::Nullif,
	UniCase::ascii("OCTET_LENGTH") => Keyword::OctetLength,
	UniCase::ascii("OF") => Keyword::Of,
	UniCase::ascii("OFFSET") => Keyword::Offset,
	UniCase::ascii("OPTIONAL") => Keyword::Optional,
	UniCase::ascii("OR") => Keyword::Or,
	UniCase::ascii("ORDER") => Keyword::Order,
	UniCase::ascii("OTHERWISE") => Keyword::Otherwise,
	UniCase::ascii("PARAMETER") => Keyword::Parameter,
	UniCase::ascii("PARAMETERS") => Keyword::Parameters,
	UniCase::ascii("PATH") => Keyword::Path,
	UniCase::ascii("PATH_LENGTH") => Keyword::PathLength,
	UniCase::ascii("PATHS") => Keyword::Paths,
	UniCase::ascii("PERCENTILE_CONT") => Keyword::PercentileCont,
	UniCase::ascii("PERCENTILE_DISC") => Keyword::PercentileDisc,
	UniCase::ascii("POWER") => Keyword::Power,
	UniCase::ascii("PRECISION") => Keyword::Precision,
	UniCase::ascii("PROPERTY_EXISTS") => Keyword::PropertyExists,
	UniCase::ascii("RADIANS") => Keyword::Radians,
	UniCase::ascii("REAL") => Keyword::Real,
	UniCase::ascii("RECORD") => Keyword::Record,
	UniCase::ascii("REMOVE") => Keyword::Remove,
	UniCase::ascii("REPLACE") => Keyword::Replace,
	UniCase::ascii("RESET") => Keyword::Reset,
	UniCase::ascii("RETURN") => Keyword::Return,
	UniCase::ascii("RIGHT") => Keyword::Right,
	UniCase::ascii("ROLLBACK") => Keyword::Rollback,
	UniCase::ascii("RTRIM") => Keyword::Rtrim,
	UniCase::ascii("SAME") => Keyword::Same,
	UniCase::ascii("SCHEMA") => Keyword::Schema,
	UniCase::ascii("SECOND") => Keyword::Second,
	UniCase::ascii("SELECT") => Keyword::Select,
	UniCase::ascii("SESSION") => Keyword::Session,
	UniCase::ascii("SESSION_USER") => Keyword::SessionUser,
	UniCase::ascii("SET") => Keyword::Set,
	UniCase::ascii("SIGNED") => Keyword::Signed,
	UniCase::ascii("SIN") => Keyword::Sin,
	UniCase::ascii("SINH") => Keyword::Sinh,
	UniCase::ascii("SIZE") => Keyword::Size,
	UniCase::ascii("SKIP") => Keyword::Skip,
	UniCase::ascii("SMALL") => Keyword::Small,
	UniCase::ascii("SMALLINT") => Keyword::Smallint,
	UniCase::ascii("SQRT") => Keyword::Sqrt,
	UniCase::ascii("START") => Keyword::Start,
	UniCase::ascii("STDDEV_POP") => Keyword::StddevPop,
	UniCase::ascii("STDDEV_SAMP") => Keyword::StddevSamp,
	UniCase::ascii("STRING") => Keyword::String,
	UniCase::ascii("SUM") => Keyword::Sum,
	UniCase::ascii("TAN") => Keyword::Tan,
	UniCase::ascii("TANH") => Keyword::Tanh,
	UniCase::ascii("THEN") => Keyword::Then,
	UniCase::ascii("TIME") => Keyword::Time,
	UniCase::ascii("TIMESTAMP") => Keyword::Timestamp,
	UniCase::ascii("TRAILING") => Keyword::Trailing,
	UniCase::ascii("TRIM") => Keyword::Trim,
	UniCase::ascii("TYPED") => Keyword::Typed,
	UniCase::ascii("UBIGINT") => Keyword::Ubigint,
	UniCase::ascii("UINT") => Keyword::Uint,
	UniCase::ascii("UINT8") => Keyword::Uint8,
	UniCase::ascii("UINT16") => Keyword::Uint16,
	UniCase::ascii("UINT32") => Keyword::Uint32,
	UniCase::ascii("UINT64") => Keyword::Uint64,
	UniCase::ascii("UINT128") => Keyword::Uint128,
	UniCase::ascii("UINT256") => Keyword::Uint256,
	UniCase::ascii("UNION") => Keyword::Union,
	UniCase::ascii("UNSIGNED") => Keyword::Unsigned,
	UniCase::ascii("UPPER") => Keyword::Upper,
	UniCase::ascii("USE") => Keyword::Use,
	UniCase::ascii("USMALLINT") => Keyword::Usmallint,
	UniCase::ascii("VALUE") => Keyword::Value,
	UniCase::ascii("VARBINARY") => Keyword::Varbinary,
	UniCase::ascii("VARCHAR") => Keyword::Varchar,
	UniCase::ascii("VARIABLE") => Keyword::Variable,
	UniCase::ascii("WHEN") => Keyword::When,
	UniCase::ascii("WHERE") => Keyword::Where,
	UniCase::ascii("WITH") => Keyword::With,
	UniCase::ascii("XOR") => Keyword::Xor,
	UniCase::ascii("YEAR") => Keyword::Year,
	UniCase::ascii("YIELD") => Keyword::Yield,
	UniCase::ascii("ZONED") => Keyword::Zoned,
	UniCase::ascii("ZONED_DATETIME") => Keyword::ZonedDatetime,
	UniCase::ascii("ZONED_TIME") => Keyword::ZonedTime,
	UniCase::ascii("TRUE") => Keyword::True,
	UniCase::ascii("FALSE") => Keyword::False,
	UniCase::ascii("UNKNOWN") => Keyword::Unknown,
	UniCase::ascii("ABSTRACT") => Keyword::Abstract,
	UniCase::ascii("AGGREGATE") => Keyword::Aggregate,
	UniCase::ascii("AGGREGATES") => Keyword::Aggregates,
	UniCase::ascii("ALTER") => Keyword::Alter,
	UniCase::ascii("CATALOG") => Keyword::Catalog,
	UniCase::ascii("CLEAR") => Keyword::Clear,
	UniCase::ascii("CLONE") => Keyword::Clone,
	UniCase::ascii("CONSTRAINT") => Keyword::Constraint,
	UniCase::ascii("CURRENT_ROLE") => Keyword::CurrentRole,
	UniCase::ascii("CURRENT_USER") => Keyword::CurrentUser,
	UniCase::ascii("DATA") => Keyword::Data,
	UniCase::ascii("DIRECTORY") => Keyword::Directory,
	UniCase::ascii("DRYRUN") => Keyword::Dryrun,
	UniCase::ascii("EXACT") => Keyword::Exact,
	UniCase::ascii("EXISTING") => Keyword::Existing,
	UniCase::ascii("FUNCTION") => Keyword::Function,
	UniCase::ascii("GQLSTATUS") => Keyword::Gqlstatus,
	UniCase::ascii("GRANT") => Keyword::Grant,
	UniCase::ascii("INSTANT") => Keyword::Instant,
	UniCase::ascii("INFINITY") => Keyword::Infinity,
	UniCase::ascii("NUMBER") => Keyword::Number,
	UniCase::ascii("NUMERIC") => Keyword::Numeric,
	UniCase::ascii("ON") => Keyword::On,
	UniCase::ascii("OPEN") => Keyword::Open,
	UniCase::ascii("PARTITION") => Keyword::Partition,
	UniCase::ascii("PROCEDURE") => Keyword::Procedure,
	UniCase::ascii("PRODUCT") => Keyword::Product,
	UniCase::ascii("PROJECT") => Keyword::Project,
	UniCase::ascii("QUERY") => Keyword::Query,
	UniCase::ascii("RECORDS") => Keyword::Records,
	UniCase::ascii("REFERENCE") => Keyword::Reference,
	UniCase::ascii("RENAME") => Keyword::Rename,
	UniCase::ascii("REVOKE") => Keyword::Revoke,
	UniCase::ascii("SUBSTRING") => Keyword::Substring,
	UniCase::ascii("SYSTEM_USER") => Keyword::SystemUser,
	UniCase::ascii("TEMPORAL") => Keyword::Temporal,
	UniCase::ascii("UNIQUE") => Keyword::Unique,
	UniCase::ascii("UNIT") => Keyword::Unit,
	UniCase::ascii("VALUES") => Keyword::Values,
	UniCase::ascii("ACYCLIC") => Keyword::Acyclic,
	UniCase::ascii("BINDING") => Keyword::Binding,
	UniCase::ascii("BINDINGS") => Keyword::Bindings,
	UniCase::ascii("CONNECTING") => Keyword::Connecting,
	UniCase::ascii("DESTINATION") => Keyword::Destination,
	UniCase::ascii("DIFFERENT") => Keyword::Different,
	UniCase::ascii("DIRECTED") => Keyword::Directed,
	UniCase::ascii("EDGE") => Keyword::Edge,
	UniCase::ascii("EDGES") => Keyword::Edges,
	UniCase::ascii("ELEMENT") => Keyword::Element,
	UniCase::ascii("ELEMENTS") => Keyword::Elements,
	UniCase::ascii("FIRST") => Keyword::First,
	UniCase::ascii("GRAPH") => Keyword::Graph,
	UniCase::ascii("GROUPS") => Keyword::Groups,
	UniCase::ascii("KEEP") => Keyword::Keep,
	UniCase::ascii("LABEL") => Keyword::Label,
	UniCase::ascii("LABELED") => Keyword::Labeled,
	UniCase::ascii("LABELS") => Keyword::Labels,
	UniCase::ascii("LAST") => Keyword::Last,
	UniCase::ascii("NFC") => Keyword::Nfc,
	UniCase::ascii("NFD") => Keyword::Nfd,
	UniCase::ascii("NFKC") => Keyword::Nfkc,
	UniCase::ascii("NFKD") => Keyword::Nfkd,
	UniCase::ascii("NO") => Keyword::No,
	UniCase::ascii("NODE") => Keyword::Node,
	UniCase::ascii("NORMALIZED") => Keyword::Normalized,
	UniCase::ascii("ONLY") => Keyword::Only,
	UniCase::ascii("ORDINALITY") => Keyword::Ordinality,
	UniCase::ascii("PROPERTY") => Keyword::Property,
	UniCase::ascii("READ") => Keyword::Read,
	UniCase::ascii("RELATIONSHIP") => Keyword::Relationship,
	UniCase::ascii("RELATIONSHIPS") => Keyword::Relationships,
	UniCase::ascii("REPEATABLE") => Keyword::Repeatable,
	UniCase::ascii("SHORTEST") => Keyword::Shortest,
	UniCase::ascii("SIMPLE") => Keyword::Simple,
	UniCase::ascii("SOURCE") => Keyword::Source,
	UniCase::ascii("TABLE") => Keyword::Table,
	UniCase::ascii("TO") => Keyword::To,
	UniCase::ascii("TRAIL") => Keyword::Trail,
	UniCase::ascii("TRANSACTION") => Keyword::Transaction,
	UniCase::ascii("TYPE") => Keyword::Type,
	UniCase::ascii("UNDIRECTED") => Keyword::Undirected,
	UniCase::ascii("VERTEX") => Keyword::Vertex,
	UniCase::ascii("WALK") => Keyword::Walk,
	UniCase::ascii("WITHOUT") => Keyword::Without,
	UniCase::ascii("WRITE") => Keyword::Write,
	UniCase::ascii("ZONE") => Keyword::Zone,
};