public sealed class SpannerConnectionStringBuilder : DbConnectionStringBuilder, IDictionary, ICollection, IEnumerable, ICustomTypeDescriptor
Reference documentation and code samples for the Google.Cloud.Spanner.Data class SpannerConnectionStringBuilder.
A connection string builder for Spanner connection strings. The connection string should be of the form: Data Source=projects/{project}/instances/{instance}/databases/{database};[Host={hostname};][Port={portnumber}]
Namespace
Google.Cloud.Spanner.DataAssembly
Google.Cloud.Spanner.Data.dll
Constructors
SpannerConnectionStringBuilder()
public SpannerConnectionStringBuilder()
Creates a new SpannerConnectionStringBuilder.
SpannerConnectionStringBuilder(String, ChannelCredentials)
public SpannerConnectionStringBuilder(string connectionString, ChannelCredentials credentials = null)
Creates a new SpannerConnectionStringBuilder with the given connection string and optional credential.
Parameters | |
---|---|
Name | Description |
connectionString | String A connection string of the form Data Source=projects/{project}/instances/{instance}/databases/{database};[Host={hostname};][Port={portnumber}]. Must not be null. |
credentials | ChannelCredentials Optionally supplied credential to use for the connection. If not set, then default application credentials will be used. Credentials can be retrieved from a file or obtained interactively. See Google Cloud documentation for more information. May be null. |
SpannerConnectionStringBuilder(String, ChannelCredentials, SessionPoolManager)
public SpannerConnectionStringBuilder(string connectionString, ChannelCredentials credentials, SessionPoolManager sessionPoolManager)
Creates a new SpannerConnectionStringBuilder with the given connection string, optional credential, and session pool manager.
Parameters | |
---|---|
Name | Description |
connectionString | String
|
credentials | ChannelCredentials The credential to use for the connection. May be null. |
sessionPoolManager | SessionPoolManager The session pool manager to use. Must not be null. |
Properties
AllowImmediateTimeouts
public bool AllowImmediateTimeouts { get; set; }
Option to allow a timeout of 0 to mean "fail immediately" rather than "continue indefinitely". This is primarily used for testing.
Property Value | |
---|---|
Type | Description |
Boolean |
ClrToSpannerTypeDefaultMappings
public string ClrToSpannerTypeDefaultMappings { get; set; }
Option to configure the default CLR type to SpannerDbType mapping. This option comes into picture only if SpannerDbType and DbType of the SpannerParameter are not explicitly provided. Currently only Decimal and DateTime CLR types are supported.
Property Value | |
---|---|
Type | Description |
String |
The valid type mappings for decimal are:
DecimalToFloat64
- Decimal CLR type will map to Float64,
if SpannerDbType and DbType is not explicitly provided for the SpannerParameter.
DecimalToNumeric
- Decimal CLR type will map to Numeric,
if SpannerDbType and DbType is not explicitly provided for the SpannerParameter.
This should be used while working with Google Standard SQL dialect only.
DecimalToPgNumeric
- Decimal CLR type will map to PgNumeric,
if SpannerDbType and DbType is not explicitly provided for the SpannerParameter.
This should be used while working with PostgreSQL dialect only.
DateTimeToDate
- DateTime CLR type will map to Date,
if SpannerDbType and DbType is not explicitly provided for the SpannerParameter.
DateTimeToTimestamp
- DateTime CLR type will map to Timestamp,
if SpannerDbType and DbType is not explicitly provided for the SpannerParameter.
DecimalToFloat64,DateTimeToDate
DecimalToNumeric,DateTimeToTimestamp
This property corresponds with the value of the "ClrToSpannerTypeDefaultMappings" part of the connection string.
CredentialFile
public string CredentialFile { get; set; }
Optional path to a JSON Credential file. If a Credential is not supplied, Cloud Spanner will use Default Application Credentials.
Property Value | |
---|---|
Type | Description |
String |
DatabaseName
public DatabaseName DatabaseName { get; set; }
The fully-qualified database name parsed from DataSource. May be null, if the data source isn't set, or is invalid, or doesn't contain a database name.
Property Value | |
---|---|
Type | Description |
DatabaseName |
DataSource
public string DataSource { get; set; }
DataSource of the Spanner database in the form of 'projects/{project}/instances/{instance}/databases/{database}' or 'projects/{project}/instances/{instance}'.
Property Value | |
---|---|
Type | Description |
String |
EmulatorDetection
public EmulatorDetection EmulatorDetection { get; set; }
Specifies whether to allow the connection to check for the presence of the emulator environment variable.
Property Value | |
---|---|
Type | Description |
EmulatorDetection |
This property defaults to None, meaning that the environment variable is ignored.
EnableGetSchemaTable
public bool EnableGetSchemaTable { get; set; }
Option to allow SpannerDataReader to return a schema from GetSchemaTable
, on supported platforms.
Only partial information is available, and when this option is enabled, DbDataAdapter
may be overly eager to
use the information to create and manage datasets.
Property Value | |
---|---|
Type | Description |
Boolean |
EndPoint
public string EndPoint { get; }
The endpoint to use to connect to Spanner. If not supplied in the connection string, the default endpoint will be used.
Property Value | |
---|---|
Type | Description |
String |
Host
public string Host { get; set; }
The TCP Host name to connect to Spanner. If not supplied in the connection string, the default host will be used.
Property Value | |
---|---|
Type | Description |
String |
Item[String]
public override object this[string keyword] { get; set; }
Parameter | |
---|---|
Name | Description |
keyword | String |
Property Value | |
---|---|
Type | Description |
Object |
LogCommitStats
public bool LogCommitStats { get; set; }
Request commit statistics for all read/write transactions throughout the lifetime of the connection and log these.
Property Value | |
---|---|
Type | Description |
Boolean |
Commit statistics that are returned for a transaction are logged using the logger of the connection. Applications can set a custom logger on the connection to log the output to a different destination. LogCommitStats(CommitRequest, CommitResponse)
MaxConcurrentStreamsLowWatermark
public int MaxConcurrentStreamsLowWatermark { get; set; }
The low watermark of max number of concurrent streams in a channel. A new channel will be created once this is reached, until the maximum size of the channel pool is reached. This rarely needs to be modified.
Property Value | |
---|---|
Type | Description |
Int32 |
MaximumGrpcChannels
public int MaximumGrpcChannels { get; set; }
The maximum number of gRPC channels used for connections with the same settings. Defaults to 4.
Property Value | |
---|---|
Type | Description |
Int32 |
Port
public int Port { get; set; }
The TCP port number to connect to Spanner. If not supplied in the connection string, the default port will be used.
Property Value | |
---|---|
Type | Description |
Int32 |
Project
public string Project { get; }
The Spanner Project name parsed from DataSource May be null, if the data source isn't set, or is invalid.
Property Value | |
---|---|
Type | Description |
String |
SessionPoolManager
public SessionPoolManager SessionPoolManager { get; set; }
The SessionPoolManager to use for server interactions.
Property Value | |
---|---|
Type | Description |
SessionPoolManager |
This property defaults to Default, and most code will not need to change this. It can be convenient for isolation purposes, particularly in testing.
SpannerDatabase
public string SpannerDatabase { get; }
The Spanner Database name parsed from DataSource. May be null, if the data source isn't set, or is invalid, or doesn't contain a database name.
Property Value | |
---|---|
Type | Description |
String |
SpannerInstance
public string SpannerInstance { get; }
The Spanner Instance name parsed from DataSource May be null, if the data source isn't set, or is invalid.
Property Value | |
---|---|
Type | Description |
String |
SpannerToClrTypeDefaultMappings
public string SpannerToClrTypeDefaultMappings { get; set; }
Option to configure the default SpannerDbType to CLR type mappings. This option comes into picture only if CLR type of the value being read is not explicitly provided while reading the data from the database. Currently only Date is supported.
Property Value | |
---|---|
Type | Description |
String |
The valid type mappings for Date are:
DateToDateTime
- Date will map to DateTime,
if CLR type of the value being read is not explicitly provided.
DateToSpannerDate
- Date will map to SpannerDate,
if CLR type of the value being read is not explicitly provided.
DateToDateTime
DateToSpannerDate
This property corresponds with the value of the "SpannerToClrTypeDefaultMappings" part of the connection string.
Timeout
public int Timeout { get; set; }
Defines the default values for CommandTimeout and CommitTimeout along with all network operations to a Cloud Spanner database. Defaults to 60 seconds.
Property Value | |
---|---|
Type | Description |
Int32 |
Operations sent to the server that take greater than this duration will fail with a SpannerException and error code DeadlineExceeded. A value of '0' normally indicates that no timeout should be used (it waits an infinite amount of time). However, if you specify AllowImmediateTimeouts=true in the connection string, '0' will cause a timeout that expires immediately. This is normally used only for testing purposes.
UseClrDefaultForNull
public bool UseClrDefaultForNull { get; set; }
Option to change between the default handling of null database values (return DBNull.Value) or the non-standard handling (return the default value for whatever type is requested).
Property Value | |
---|---|
Type | Description |
Boolean |
If this is false
(the default), requesting a value from a SpannerDataReader that is null
in the database will return DBNull.Value, which may cause an InvalidCastException if
the requested type is not compatible with that value. For arrays and structs, the behavior is slightly different.
A null value is used for an array or struct value where the target type permits such a value. Attempting to convert
an array value that contains a null element into a .NET array type with a non-nullable element type will
cause an InvalidCastException to be thrown. To avoid this, where array elements may be null for value types,
use an array with a nullable element type. This allows code to distinguish between a null element in the original
data and a value of 0, false etc.
If this is true
, requesting a value from a SpannerDataReader that is null in the
database will return the default value of the requested type (e.g. 0 or a null reference). That conversion is also used for
array elements. For example, converting a Spanner array consisting of 1, null, and 2 into an Int32
array will result in
an array containing 1, 0 and 2. This is the behavior from release 1.0 of this package.
This property corresponds with the value of the "UseClrDefaultForNull" part of the connection string.
Methods
WithDatabase(String)
public SpannerConnectionStringBuilder WithDatabase(string database)
Returns a new instance of a SpannerConnectionStringBuilder with the database portion of the DataSource replaced with a new value.
Parameter | |
---|---|
Name | Description |
database | String The new database name. Can be null to open a connection for Ddl commands. |
Returns | |
---|---|
Type | Description |
SpannerConnectionStringBuilder | A new instance of SpannerConnectionStringBuilder |