MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / TestSnowflakeKeywords

Function TestSnowflakeKeywords

pkg/sql/keywords/snowflake_test.go:26–114  ·  view source on GitHub ↗

TestSnowflakeKeywords tests that Snowflake-specific keywords are properly defined and loaded when using DialectSnowflake.

(t *testing.T)

Source from the content-addressed store, hash-verified

24// TestSnowflakeKeywords tests that Snowflake-specific keywords are properly defined
25// and loaded when using DialectSnowflake.
26func TestSnowflakeKeywords(t *testing.T) {
27 k := New(DialectSnowflake, true)
28
29 // Snowflake-specific keywords that should be present
30 snowflakeKeywords := []struct {
31 word string
32 expectedType models.TokenType
33 }{
34 // Semi-structured data types
35 {"VARIANT", models.TokenTypeKeyword},
36 {"OBJECT", models.TokenTypeKeyword},
37
38 // Semi-structured data functions
39 {"FLATTEN", models.TokenTypeKeyword},
40 {"PARSE_JSON", models.TokenTypeKeyword},
41 {"STRIP_NULL_VALUE", models.TokenTypeKeyword},
42 {"TYPEOF", models.TokenTypeKeyword},
43
44 // Snowflake-specific clauses and objects
45 {"CHANGES", models.TokenTypeKeyword},
46 {"STREAM", models.TokenTypeKeyword},
47 {"TASK", models.TokenTypeKeyword},
48 {"PIPE", models.TokenTypeKeyword},
49 {"STAGE", models.TokenTypeKeyword},
50 {"FILE_FORMAT", models.TokenTypeKeyword},
51
52 // Snowflake DDL
53 {"WAREHOUSE", models.TokenTypeKeyword},
54 {"DATABASE", models.TokenTypeDatabase},
55 {"CLONE", models.TokenTypeKeyword},
56 {"UNDROP", models.TokenTypeKeyword},
57 {"RECLUSTER", models.TokenTypeKeyword},
58
59 // Time Travel
60 {"BEFORE", models.TokenTypeKeyword},
61 {"AT", models.TokenTypeKeyword},
62 {"TIMESTAMP", models.TokenTypeTimestamp},
63 {"STATEMENT", models.TokenTypeKeyword},
64
65 // Data Loading
66 {"COPY", models.TokenTypeKeyword},
67 {"PUT", models.TokenTypeKeyword},
68 {"GET", models.TokenTypeKeyword},
69 {"REMOVE", models.TokenTypeKeyword},
70
71 // Access Control
72 {"ROLE", models.TokenTypeRole},
73 {"GRANT", models.TokenTypeGrant},
74 {"REVOKE", models.TokenTypeRevoke},
75 {"OWNERSHIP", models.TokenTypeKeyword},
76
77 // Snowflake functions
78 {"IFF", models.TokenTypeKeyword},
79 {"IFNULL", models.TokenTypeKeyword},
80 {"NVL", models.TokenTypeKeyword},
81 {"NVL2", models.TokenTypeKeyword},
82 {"ZEROIFNULL", models.TokenTypeKeyword},
83 {"EQUAL_NULL", models.TokenTypeKeyword},

Callers

nothing calls this directly

Calls 5

RunMethod · 0.80
GetTokenTypeMethod · 0.80
NewFunction · 0.70
ErrorfMethod · 0.65
IsKeywordMethod · 0.45

Tested by

no test coverage detected