"""A list of all Snowflake SQL key words.

https://docs.snowflake.com/en/sql-reference/reserved-keywords.html
"""

snowflake_reserved_keywords = """ALL
ALTER
AND
ANY
AS
BETWEEN
BY
CAST
CHECK
CONNECT
CONNECTION
CONSTRAINT
CREATE
CROSS
CURRENT
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
DELETE
DISTINCT
DROP
ELSE
EXISTS
FOLLOWING
FOR
FROM
FULL
GRANT
GROUP
GSCLUSTER
HAVING
ILIKE
IN
INCREMENT
INNER
INSERT
INSERT_ONLY
INTERSECT
INTO
IS
ISSUE
JOIN
LATERAL
LEFT
LIKE
LOCALTIME
LOCALTIMESTAMP
MATCH_RECOGNIZE
MINUS
NATURAL
NOT
NULL
NULL_IF
OF
ON
OR
ORDER
QUALIFY
REGEXP
REVOKE
RIGHT
RLIKE
ROW
ROWS
SAMPLE
SELECT
SET
SOME
START
STRICT
TABLE
TABLESAMPLE
THEN
TO
TRIGGER
TRY_CAST
UNION
UNIQUE
UPDATE
UNPIVOT
USING
VALUES
WHEN
WHENEVER
WHERE
WITH
"""

snowflake_unreserved_keywords = """ABORT
ABORT_STATEMENT
ACCESS
ACCOUNT
ACCOUNTS
ADD
ADMIN
AFTER
ALLOWED_IP_LIST
ALLOW_DUPLICATE
ALLOW_OVERLAPPING_EXECUTION
API
API_INTEGRATION
APPEND_ONLY
APPLY
ARRAY
ASC
AT
ATTACH
AUTHORIZATION
AUTHORIZATIONS
AUTO
AUTOINCREMENT
AUTO_COMPRESS
AUTO_INCREMENT
AUTO_INGEST
AUTO_REFRESH
AUTO_RESUME
AUTO_SUSPEND
AVRO
AWS_KEY_ID
AWS_ROLE
AWS_SECRET_KEY
AWS_SNS
AWS_SNS_ROLE_ARN
AWS_SNS_TOPIC
AWS_SNS_TOPIC_ARN
AWS_TOKEN
AZURE
AZURE_EVENT_GRID
AZURE_EVENT_GRID_TOPIC_ENDPOINT
AZURE_SAS_TOKEN
AZURE_STORAGE_QUEUE_PRIMARY_URI
AZURE_TENANT_ID
BASE64
BEFORE
BEGIN
BERNOULLI
BINARY
BINARY_AS_TEXT
BINARY_FORMAT
BINDING
BLOCK
BLOCKED_IP_LIST
BROTLI
BZ2
CACHE
CALL
CALLED
CALLER
CASCADE
CASE
CASE_INSENSITIVE
CASE_SENSITIVE
CHAIN
CHANGES
CHANGE_TRACKING
CHARACTER
CLONE
CLUSTER
CLUSTERING
COLLATE
COLUMN
COLUMNS
COMMENT
COMMIT
COMPRESSION
CONCURRENTLY
CONNECT_BY_ROOT
CONTEXT_HEADERS
CONTINUE
COPY
COPY_OPTIONS
CREDENTIALS
CSV
CUBE
CURRENT_ACCOUNT
CURRENT_CLIENT
CURRENT_DATABASE
CURRENT_IP_ADDRESS
CURRENT_REGION
CURRENT_ROLE
CURRENT_SCHEMA
CURRENT_SCHEMAS
CURRENT_SESSION
CURRENT_STATEMENT
CURRENT_TRANSACTION
CURRENT_VERSION
CURRENT_WAREHOUSE
CYCLE
DATA
DATABASE
DATABASES
DATA_FORMAT
DATA_RETENTION_TIME_IN_DAYS
DATE
DATE_FORMAT
DAYS_TO_EXPIRY
DEFAULT
DEFAULT_DDL_COLLATION
DEFAULT_NAMESPACE
DEFAULT_ROLE
DEFAULT_SECONDARY_ROLES
DEFAULT_WAREHOUSE
DEFERRABLE
DEFERRED
DEFINE
DEFLATE
DELEGATED
DESC
DESCRIBE
DETAILED_OUTPUT
DIRECTION
DIRECTORY
DISABLE
DISABLED
DISABLE_AUTO_CONVERT
DISABLE_SNOWFLAKE_DATA
DISPLAY_NAME
DOMAIN
DOUBLE
ECONOMY
EMAIL
EMPTY
EMPTY_FIELD_AS_NULL
ENABLE
ENABLED
ENABLE_OCTAL
ENCODING
ENCRYPTION
END
ENFORCED
ENFORCE_LENGTH
ENUM
ERROR_INTEGRATION
ERROR_ON_COLUMN_COUNT_MISMATCH
ESCAPE
ESCAPE_UNENCLOSED_FIELD
EXCEPT
EXCHANGE
EXCLUDE
EXECUTE
EXECUTION
EXPLAIN
EXTENSION
EXTERNAL
EXTERNAL_STAGE
FETCH
FIELD_DELIMITER
FIELD_OPTIONALLY_ENCLOSED_BY
FILE
FILES
FILE_EXTENSION
FILE_FORMAT
FILTER
FINAL
FIRST
FIRST_NAME
FORCE
FOREIGN
FORMAT
FORMATS
FORMAT_NAME
FUNCTION
FUNCTIONS
FUTURE
GCP_PUBSUB
GCP_PUBSUB_SUBSCRIPTION_NAME
GCP_PUBSUB_TOPIC_NAME
GCS
GET
GLOBAL
GRANTED
GRANTS
GROUPING
GZIP
HEADER
HEADERS
HEX
HISTORY
IDENTIFIER
IDENTITY
IF
IGNORE
IGNORE_UTF8_ERRORS
IMMEDIATE
IMMUTABLE
IMPORT
IMPORTED
INCLUDE_QUERY_ID
INDEX
INFORMATION
INITIALLY
INITIALLY_SUSPENDED
INPUT
INTEGRATION
INTEGRATIONS
INTERVAL
JAVASCRIPT
JSON
KEY
KMS_KEY_ID
LANGUAGE
LARGE
LAST
LAST_NAME
LAST_QUERY_ID
LAST_TRANSACTION
LIMIT
LIST
LISTING
LOCAL
LOCATION
LOCKS
LOGIN_NAME
LS
LZO
M
MANAGE
MANAGED
MASKING
MASTER_KEY
MATCH
MATCHED
MATCHES
MATCH_BY_COLUMN_NAME
MATERIALIZED
MAXVALUE
MAX_BATCH_ROWS
MAX_CLUSTER_COUNT
MAX_CONCURRENCY_LEVEL
MAX_DATA_EXTENSION_TIME_IN_DAYS
MAX_FILE_SIZE
MAX_SIZE
MEASURES
MERGE
MIDDLE_NAME
MINS_TO_BYPASS_MFA
MINS_TO_UNLOCK
MINVALUE
MIN_CLUSTER_COUNT
ML
MODEL
MODIFIED_AFTER
MODIFY
MONITOR
MUST_CHANGE_PASSWORD
NAME
NAN
NETWORK
NEXT
NEXTVAL
NO
NOCACHE
NOCYCLE
NONE
NOORDER
NOTIFICATION
NOTIFICATION_INTEGRATION
NOTIFICATION_PROVIDER
NULLS
NULL_IF
OBJECT
OBJECTS
OFFSET
OMIT
ONE
ONLY
ON_ERROR
OPERATE
OPTIMIZATION
OPTION
OPTIONS
ORC
ORGANIZATION
OUTBOUND
OUTER
OVER
OVERLAPS
OVERRIDE
OVERWRITE
OWNER
OWNERSHIP
PARALLEL
PARAMETERS
PARQUET
PARTITION
PASSWORD
PAST
PATTERN
FIELD_OPTIONALITY_ENCLOSED_BY
PER
PERMUTE
PIPE
PIPES
PIPE_EXECUTION_PAUSED
PIVOT
POLICIES
POLICY
PRECEDING
PRECISION
PREFIX
PRESERVE_SPACE
PRIMARY
PRIOR
PRIVILEGES
PROCEDURE
PROCEDURES
PUBLIC
PURGE
PUT
QUERIES
QUEUE
RANGE
RAW_DEFLATE
READ
RECLUSTER
RECORD_DELIMITER
RECURSIVE
REFERENCES
REFERENCE_USAGE
REFRESH
REFRESH_ON_CREATE
REGIONS
REMOVE
RENAME
REPEATABLE
REPLACE
REPLACE_INVALID_CHARACTERS
REPLICATION
REQUEST_TRANSLATOR
RESET
RESOURCE
RESOURCE_MONITOR
RESPECT
RESPONSE_TRANSLATOR
RESTRICT
RESTRICTIONS
RESULT
RESUME
RETURNS
RETURN_ALL_ERRORS
RETURN_ERRORS
RETURN_FAILED_ONLY
RM
ROLE
ROLES
ROLLBACK
ROLLUP
ROUTINE
ROUTINES
ROW
RSA_PUBLIC_KEY
RSA_PUBLIC_KEY_2
RUNNING
S3
SCALING_POLICY
SCHEDULE
SCHEMA
SCHEMAS
SEARCH
SECONDARY
SECURE
SECURITY
SEED
SEPARATOR
SEQUENCE
SEQUENCES
SERVER
SESSION
SESSION_USER
SETS
SHARE
SHARES
SHARE_RESTRICTIONS
SHOW
SHOW_INITIAL_ROWS
SINGLE
SIZE_LIMIT
SKIP
SKIP_BLANK_LINES
SKIP_BYTE_ORDER_MARK
SKIP_FILE
SKIP_HEADER
SNAPPY
SNAPPY_COMPRESSION
SNOWFLAKE_FULL
SNOWFLAKE_SSE
SOURCE_COMPRESSION
SQL
STAGE
STAGES
STAGE_COPY_OPTIONS
STAGE_FILE_FORMAT
STANDARD
STARTS
STATEMENT
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS
STATEMENT_TIMEOUT_IN_SECONDS
STORAGE
STORAGE_ALLOWED_LOCATIONS
STORAGE_AWS_OBJECT_ACL
STORAGE_AWS_ROLE_ARN
STORAGE_BLOCKED_LOCATIONS
STORAGE_INTEGRATION
STORAGE_PROVIDER
STREAM
STREAMS
STRIP_NULL_VALUES
STRIP_OUTER_ARRAY
STRIP_OUTER_ELEMENT
SUBPATH
SUSPEND
SUSPENDED
SWAP
SYSDATE
SYSTEM
TABLES
TABLESPACE
TABULAR
TAG
TASK
TASKS
TEMP
TEMPLATE
TEMPORARY
TERSE
TEXT
TIME
TIMESTAMP
TIMESTAMP_FORMAT
TIME_FORMAT
TOP
TRANSACTION
TRANSACTIONS
TRANSIENT
TRIM_SPACE
TRUNCATE
TRUNCATECOLUMNS
TYPE
UNBOUNDED
UNDROP
UNMATCHED
UNSET
UNSIGNED
URL
US
USAGE
USE
USER
USERS
USER_TASK_MANAGED_INITIAL_WAREHOUSE_SIZE
USER_TASK_TIMEOUT_MS
USE_ANY_ROLE
UTF8
VALIDATE_UTF8
VALIDATION_MODE
VALUE
VARIABLES
VARIANT
VARYING
VERSION
VIEW
VIEWS
VOLATILE
WAIT_FOR_COMPLETION
WAREHOUSE
WAREHOUSES
WAREHOUSE_SIZE
WAREHOUSE_TYPE
WINDOW
WITH
WITHIN
WITHOUT
WORK
WOY
WRAPPER
WRITE
XML
ZONE
ZSTD
"""
