internal FakeTopologyService(ICollection <MemberId> cores, ICollection <MemberId> replicas, MemberId myself, RoleInfo myselfRole) { this._myself = myself; _clusterId = new ClusterId(System.Guid.randomUUID()); _roles = new Dictionary <MemberId, RoleInfo>(); _coreMembers = new Dictionary <MemberId, CoreServerInfo>(); foreach (MemberId coreMemberId in cores) { CoreServerInfo coreServerInfo = coreServerInfo(_dbName); _coreMembers[coreMemberId] = coreServerInfo; _roles[coreMemberId] = RoleInfo.FOLLOWER; } _replicaMembers = new Dictionary <MemberId, ReadReplicaInfo>(); foreach (MemberId replicaMemberId in replicas) { ReadReplicaInfo readReplicaInfo = readReplicaInfo(_dbName); _replicaMembers[replicaMemberId] = readReplicaInfo; _roles[replicaMemberId] = RoleInfo.READ_REPLICA; } if (RoleInfo.READ_REPLICA.Equals(myselfRole)) { _replicaMembers[myself] = ReadReplicaInfo(_dbName); _roles[myself] = RoleInfo.READ_REPLICA; } else { _coreMembers[myself] = CoreServerInfo(_dbName); _roles[myself] = RoleInfo.FOLLOWER; } _roles[myself] = myselfRole; }
private static SqlDriver CreateDriverInstance(string connectionString, bool isAzure, Version version, DefaultSchemaInfo defaultSchema, ErrorMessageParser parser, bool isEnsureAlive) { var builder = new SqlConnectionStringBuilder(connectionString); var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = builder.MultipleActiveResultSets, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (isAzure) { return(new Azure.Driver(coreServerInfo, parser, isEnsureAlive)); } if (version.Major < 9) { throw new NotSupportedException(Strings.ExSqlServerBelow2005IsNotSupported); } return(version.Major switch { 9 => new v09.Driver(coreServerInfo, parser, isEnsureAlive), 10 => new v10.Driver(coreServerInfo, parser, isEnsureAlive), 11 => new v11.Driver(coreServerInfo, parser, isEnsureAlive), 12 => new v12.Driver(coreServerInfo, parser, isEnsureAlive), 13 => new v13.Driver(coreServerInfo, parser, isEnsureAlive), _ => new v13.Driver(coreServerInfo, parser, isEnsureAlive) });
/// <inheritdoc/> protected override SqlDriver CreateDriver(string connectionString, SqlDriverConfiguration configuration) { using (var connection = new FbConnection(connectionString)) { connection.Open(); SqlHelper.ExecuteInitializationSql(connection, configuration); var dataSource = new FbConnectionStringBuilder(connectionString).DataSource; var defaultSchema = GetDefaultSchema(connection); var coreServerInfo = new CoreServerInfo { ServerVersion = GetVersionFromServerVersionString(connection.ServerVersion), ConnectionString = connectionString, MultipleActiveResultSets = true, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (Int32.Parse(coreServerInfo.ServerVersion.Major.ToString() + coreServerInfo.ServerVersion.Minor.ToString()) < 25) { throw new NotSupportedException(Strings.ExFirebirdBelow25IsNotSupported); } if (coreServerInfo.ServerVersion.Major == 2 && coreServerInfo.ServerVersion.Minor == 5) { return(new v2_5.Driver(coreServerInfo)); } return(null); } }
/// <inheritdoc/> protected override SqlDriver CreateDriver(string connectionString, SqlDriverConfiguration configuration) { using (var connection = new OracleConnection(connectionString)) { connection.Open(); SqlHelper.ExecuteInitializationSql(connection, configuration); var version = string.IsNullOrEmpty(configuration.ForcedServerVersion) ? ParseVersion(connection.ServerVersion) : new Version(configuration.ForcedServerVersion); var dataSource = new OracleConnectionStringBuilder(connectionString).DataSource; var defaultSchema = GetDefaultSchema(connection); var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = true, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 9 || version.Major == 9 && version.Minor < 2) { throw new NotSupportedException(Strings.ExOracleBelow9i2IsNotSupported); } if (version.Major == 9) { return(new v09.Driver(coreServerInfo)); } if (version.Major == 10) { return(new v10.Driver(coreServerInfo)); } return(new v11.Driver(coreServerInfo)); } }
private static SqlDriver CreateDriverInstance( string connectionString, Version version, DefaultSchemaInfo defaultSchema) { var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = false, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 8 || (version.Major == 8 && version.Minor < 3)) { throw new NotSupportedException(Strings.ExPostgreSqlBelow83IsNotSupported); } // We support 8.3, 8.4 and any 9.0+ if (version.Major == 8) { return(version.Minor == 3 ? new v8_3.Driver(coreServerInfo) : new v8_4.Driver(coreServerInfo)); } if (version.Major == 9) { return(version.Minor == 0 ? new v9_0.Driver(coreServerInfo) : new v9_1.Driver(coreServerInfo)); } if (version.Major < 12) { return(new v10_0.Driver(coreServerInfo)); } return(new v12_0.Driver(coreServerInfo)); }
private IDictionary <MemberId, CoreServerInfo> MapOf(MemberId memberId, CoreServerInfo coreServerInfo) { Dictionary <MemberId, CoreServerInfo> map = new Dictionary <MemberId, CoreServerInfo>(); map[memberId] = coreServerInfo; return(map); }
protected override SqlDriver CreateDriver(string connectionString, SqlDriverConfiguration configuration) { using (var connection = new NpgsqlConnection(connectionString)) { connection.Open(); SqlHelper.ExecuteInitializationSql(connection, configuration); var version = string.IsNullOrEmpty(configuration.ForcedServerVersion) ? connection.PostgreSqlVersion : new Version(configuration.ForcedServerVersion); var builder = new NpgsqlConnectionStringBuilder(connectionString); var dataSource = string.Format(DataSourceFormat, builder.Host, builder.Port, builder.Database); var defaultSchema = GetDefaultSchema(connection); var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = false, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 8 || version.Major == 8 && version.Minor < 3) { throw new NotSupportedException(Strings.ExPostgreSqlBelow83IsNotSupported); } // We support 8.3, 8.4 and any 9.0+ if (version.Major == 8) { if (version.Minor == 3) { return(new v8_3.Driver(coreServerInfo)); } return(new v8_4.Driver(coreServerInfo)); } if (version.Major == 9) { if (version.Minor == 0) { return(new v9_0.Driver(coreServerInfo)); } return(new v9_1.Driver(coreServerInfo)); } return(new v10_0.Driver(coreServerInfo)); } }
private static SqlDriver CreateDriverInstance(string connectionString, Version version, DefaultSchemaInfo defaultSchema) { var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = false, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 3) { throw new NotSupportedException(Strings.ExSqlLiteServerBelow3IsNotSupported); } return(new v3.Driver(coreServerInfo)); }
protected override SqlDriver CreateDriver(string connectionString, SqlDriverConfiguration configuration) { using (var connection = new MySqlConnection(connectionString)) { connection.Open(); SqlHelper.ExecuteInitializationSql(connection, configuration); var versionString = string.IsNullOrEmpty(configuration.ForcedServerVersion) ? connection.ServerVersion : configuration.ForcedServerVersion; var version = ParseVersion(versionString); var builder = new MySqlConnectionStringBuilder(connectionString); var dataSource = string.Format(DataSourceFormat, builder.Server, builder.Port, builder.Database); var defaultSchema = GetDefaultSchema(connection); var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = false, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 5) { throw new NotSupportedException(Strings.ExMySqlBelow50IsNotSupported); } if (version.Major == 5 && version.Minor == 0) { return(new v5_0.Driver(coreServerInfo)); } if (version.Major == 5 && version.Minor == 1) { return(new v5_1.Driver(coreServerInfo)); } if (version.Major == 5 && version.Minor == 5) { return(new v5_5.Driver(coreServerInfo)); } if (version.Major == 5 && version.Minor == 6) { return(new v5_6.Driver(coreServerInfo)); } return(new v5_6.Driver(coreServerInfo)); } }
private static SqlDriver CreateDriverInstance(string connectionString, Version version, DefaultSchemaInfo defaultSchema) { var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = true, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 9 || (version.Major == 9 && version.Minor < 2)) { throw new NotSupportedException(Strings.ExOracleBelow9i2IsNotSupported); } return(version.Major switch { 9 => new v09.Driver(coreServerInfo), 10 => new v10.Driver(coreServerInfo), _ => new v11.Driver(coreServerInfo) });
private static SqlDriver CreateDriverInstance(string connectionString, Version version, DefaultSchemaInfo defaultSchema) { var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = false, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 5) { throw new NotSupportedException(Strings.ExMySqlBelow50IsNotSupported); } return(version.Major switch { 5 when version.Minor == 0 => new v5_0.Driver(coreServerInfo), 5 when version.Minor == 1 => new v5_1.Driver(coreServerInfo), 5 when version.Minor == 5 => new v5_5.Driver(coreServerInfo), 5 when version.Minor == 6 => new v5_6.Driver(coreServerInfo), _ => new v5_6.Driver(coreServerInfo) });
private SqlDriver DoCreateDriver(string connectionString, SqlDriverConfiguration configuration) { using (var connection = new SQLiteConnection(connectionString)) { connection.Open(); SqlHelper.ExecuteInitializationSql(connection, configuration); var version = new Version(connection.ServerVersion); var defaultSchema = GetDefaultSchema(connection); var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = false, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (version.Major < 3) { throw new NotSupportedException(Strings.ExSqlLiteServerBelow3IsNotSupported); } return(new v3.Driver(coreServerInfo)); } }
private static SqlDriver CreateDriverInstance( string connectionString, Version version, DefaultSchemaInfo defaultSchema) { var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = true, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (coreServerInfo.ServerVersion < new Version(2, 5)) { throw new NotSupportedException(Strings.ExFirebirdBelow25IsNotSupported); } if (coreServerInfo.ServerVersion.Major == 2 && coreServerInfo.ServerVersion.Minor == 5) { return(new v2_5.Driver(coreServerInfo)); } return(null); }
public override RawIterator <object[], ProcedureException> Apply(Context ctx, object[] input, ResourceTracker resourceTracker) { IDictionary <MemberId, RoleInfo> roleMap = _topologyService.allCoreRoles(); IList <ReadWriteEndPoint> endpoints = new List <ReadWriteEndPoint>(); CoreTopology coreTopology = _topologyService.allCoreServers(); ISet <MemberId> coreMembers = coreTopology.Members().Keys; foreach (MemberId memberId in coreMembers) { Optional <CoreServerInfo> coreServerInfo = coreTopology.find(memberId); if (coreServerInfo.Present) { CoreServerInfo info = coreServerInfo.get(); RoleInfo role = roleMap.getOrDefault(memberId, RoleInfo.UNKNOWN); endpoints.Add(new ReadWriteEndPoint(info.Connectors(), role, memberId.Uuid, new IList <string> { info.Groups() }, info.DatabaseName)); } else { _log.debug("No Address found for " + memberId); } } foreach (KeyValuePair <MemberId, ReadReplicaInfo> readReplica in _topologyService.allReadReplicas().members().SetOfKeyValuePairs()) { ReadReplicaInfo readReplicaInfo = readReplica.Value; endpoints.Add(new ReadWriteEndPoint(readReplicaInfo.Connectors(), RoleInfo.READ_REPLICA, readReplica.Key.Uuid, new IList <string> { readReplicaInfo.Groups() }, readReplicaInfo.DatabaseName)); } endpoints.sort(comparing(o => o.addresses().ToString())); return(map(endpoint => new object[] { endpoint.memberId().ToString(), endpoint.addresses().uriList().Select(URI.toString).ToList(), endpoint.role().name(), endpoint.groups(), endpoint.dbName() }, asRawIterator(endpoints.GetEnumerator()))); }
public Driver(CoreServerInfo coreServerInfo) : base(coreServerInfo) { }
protected SqlDriver(CoreServerInfo coreServerInfo) { coreServerInfo.Lock(); CoreServerInfo = coreServerInfo; }
// Constructors protected Driver(CoreServerInfo coreServerInfo, ErrorMessageParser errorMessageParser, bool checkConnectionIsAlive) : base(coreServerInfo) { this.errorMessageParser = errorMessageParser; this.checkConnectionIsAlive = checkConnectionIsAlive; }
// As far as SqlGeometry and SqlGeography have no support in .Net Standard // these two methods are useless //protected override void RegisterCustomMappings(TypeMappingRegistryBuilder builder) //{ // base.RegisterCustomMappings(builder); // builder.Add(new GeometryMapper()); // builder.Add(new GeographyMapper()); //} //protected override void RegisterCustomReverseMappings(TypeMappingRegistryBuilder builder) //{ // base.RegisterCustomReverseMappings(builder); // builder.AddReverse(CustomSqlType.Geometry, Type.GetType("Microsoft.SqlServer.Types.SqlGeometry, Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91")); // builder.AddReverse(CustomSqlType.Geography, Type.GetType("Microsoft.SqlServer.Types.SqlGeography, Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91")); //} // Constructors public Driver(CoreServerInfo coreServerInfo, ErrorMessageParser errorMessageParser, bool checkConnectionIsAlive) : base(coreServerInfo, errorMessageParser, checkConnectionIsAlive) { }
/// <inheritdoc/> protected override SqlDriver CreateDriver(string connectionString, SqlDriverConfiguration configuration) { var isPooingOn = !IsPoolingOff(connectionString); configuration.EnsureConnectionIsAlive = isPooingOn && configuration.EnsureConnectionIsAlive; using (var connection = CreateAndOpenConnection(connectionString, configuration)) { string versionString; bool isAzure; var forcedServerVersion = configuration.ForcedServerVersion; if (string.IsNullOrEmpty(forcedServerVersion)) { versionString = connection.ServerVersion; isAzure = IsAzure(connection); } else if (forcedServerVersion.Equals("azure", StringComparison.OrdinalIgnoreCase)) { versionString = "10.0.0.0"; isAzure = true; } else { versionString = forcedServerVersion; isAzure = false; } var builder = new SqlConnectionStringBuilder(connectionString); var version = new Version(versionString); var defaultSchema = GetDefaultSchema(connection); var coreServerInfo = new CoreServerInfo { ServerVersion = version, ConnectionString = connectionString, MultipleActiveResultSets = builder.MultipleActiveResultSets, DatabaseName = defaultSchema.Database, DefaultSchemaName = defaultSchema.Schema, }; if (isAzure) { return(new Azure.Driver(coreServerInfo, new ErrorMessageParser(), configuration.EnsureConnectionIsAlive)); } if (version.Major < 9) { throw new NotSupportedException(Strings.ExSqlServerBelow2005IsNotSupported); } var parser = CreateMessageParser(connection); if (version.Major == 9) { return(new v09.Driver(coreServerInfo, parser, configuration.EnsureConnectionIsAlive)); } if (version.Major == 10) { return(new v10.Driver(coreServerInfo, parser, configuration.EnsureConnectionIsAlive)); } if (version.Major == 11) { return(new v11.Driver(coreServerInfo, parser, configuration.EnsureConnectionIsAlive)); } if (version.Major == 12) { return(new v12.Driver(coreServerInfo, parser, configuration.EnsureConnectionIsAlive)); } if (version.Major == 13) { return(new v13.Driver(coreServerInfo, parser, configuration.EnsureConnectionIsAlive)); } return(new v13.Driver(coreServerInfo, parser, configuration.EnsureConnectionIsAlive)); } }
// Constructors protected Driver(CoreServerInfo coreServerInfo) : base(coreServerInfo) { }