diff --git a/csharp/src/Client/SchemaConverter.cs b/csharp/src/Client/SchemaConverter.cs index f26425c8fd..a9dd2bec3e 100644 --- a/csharp/src/Client/SchemaConverter.cs +++ b/csharp/src/Client/SchemaConverter.cs @@ -95,6 +95,7 @@ public static Type ConvertArrowType(Field f) { case ArrowTypeId.Binary: return typeof(byte[]); + case ArrowTypeId.Boolean: return typeof(bool); diff --git a/csharp/src/Client/readme.md b/csharp/src/Client/readme.md index f5d20c9998..564fbfbc25 100644 --- a/csharp/src/Client/readme.md +++ b/csharp/src/Client/readme.md @@ -48,3 +48,28 @@ Since ADO.NET is row-oriented, and ADBC is column-oriented, the row index is tra This can be thought of as: ![Arrow to DbDataReader](/docs/Arrow-to-DbDataReader.png "Arrow to DbDataReader") + +## Connection Properties +The ADO.NET Client is designed so that properties in the connection string map to the properties that are sent to the ADBC driver in the code: + +``` +AdbcDriver.Open(adbcConnectionParameters); +``` + +The connection string is parsed using the `DbConnectionStringBuilder` object and the key/value pairs are then added to the properties for the ADBC driver. + +For example, when using the [Snowflake ADBC Go Driver](https://arrow.apache.org/adbc/main/driver/snowflake.html#client-options), the connection string will look similar to: + +``` + adbc.snowflake.sql.account={account};adbc.snowflake.sql.warehouse={warehouse};username={user};password={password} +``` + +if using the default user name and password authentication, but look like + +``` + adbc.snowflake.sql.account={account};adbc.snowflake.sql.warehouse={warehouse};username={user};password={password};adbc.snowflake.sql.auth_type=snowflake_jwt;adbc.snowflake.sql.client_option.auth_token={token} +``` + +when using JWT authentication. + +Other ADBC drivers will have different connection parameters, so be sure to check the documentation for each driver.