Repository: tobymao/sqlglot

Issue:
`initcap` accepts 2 arguments on Snowflake
Hi! SQLGlot currently raises an error when `initcap` is called with a second argument which is allowed on Snowflake.

**Fully reproducible code snippet**

```
import sqlglot
sqlglot.transpile("select initcap('this is a-test', ' ')", read="snowflake")
```

SQLGlot Error:
```
sqlglot.errors.ParseError: The number of provided arguments (2) is greater than the maximum number of supported arguments (1). Line 1, Col: 38.
  select initcap('this is a-test', ' ')
```

**Official Documentation**
https://docs.snowflake.com/en/sql-reference/functions/initcap


Discussion:

Patch:
diff --git a/sqlglot/expressions.py b/sqlglot/expressions.py
index f4475e06..77b8b5e0 100644
--- a/sqlglot/expressions.py
+++ b/sqlglot/expressions.py
@@ -3931,7 +3931,7 @@ class IfNull(Func):
 
 
 class Initcap(Func):
-    pass
+    arg_types = {"this": True, "expression": False}
 
 
 class JSONKeyValue(Expression):


Test patch:
diff --git a/tests/dialects/test_snowflake.py b/tests/dialects/test_snowflake.py
index ed036150..58b2a2da 100644
--- a/tests/dialects/test_snowflake.py
+++ b/tests/dialects/test_snowflake.py
@@ -6,6 +6,7 @@ class TestSnowflake(Validator):
     dialect = "snowflake"
 
     def test_snowflake(self):
+        self.validate_identity("INITCAP('iqamqinterestedqinqthisqtopic', 'q')")
         self.validate_identity("CAST(x AS GEOMETRY)")
         self.validate_identity("OBJECT_CONSTRUCT(*)")
         self.validate_identity("SELECT TO_DATE('2019-02-28') + INTERVAL '1 day, 1 year'")