public static async Task <ServerHelloMessage> Read(ClickHouseBinaryProtocolReader reader, bool async, CancellationToken cancellationToken) { var serverName = await reader.ReadString(async, cancellationToken); var mj = await reader.Read7BitInt32(async, cancellationToken); var mr = await reader.Read7BitInt32(async, cancellationToken); var rv = await reader.Read7BitInt32(async, cancellationToken); if (rv < ClickHouseProtocolRevisions.MinSupportedRevision) { throw new ClickHouseException( ClickHouseErrorCodes.ProtocolRevisionNotSupported, $"The revision {rv} of ClickHouse server is not supported. Minimal supported revision is {ClickHouseProtocolRevisions.MinSupportedRevision}."); } var tz = await reader.ReadString(async, cancellationToken); var displayName = await reader.ReadString(async, cancellationToken); var b = await reader.ReadByte(async, cancellationToken); var serverVersion = new ClickHouseVersion(mj, mr, b); var serverInfo = new ClickHouseServerInfo(serverName, serverVersion, rv, tz, displayName); return(new ServerHelloMessage(serverInfo)); }
public IClickHouseTypeInfoProvider Configure(ClickHouseServerInfo serverInfo) { if (serverInfo == null) { throw new ArgumentNullException(nameof(serverInfo)); } return(new DefaultTypeInfoProvider(_types.Values.Select(t => (t as IClickHouseConfigurableTypeInfo)?.Configure(serverInfo) ?? t))); }
public IClickHouseColumnTypeInfo Configure(ClickHouseServerInfo serverInfo) { return(new DateTime64TypeInfo(null, serverInfo.Timezone, false)); }
private ServerHelloMessage(ClickHouseServerInfo serverInfo) { ServerInfo = serverInfo ?? throw new ArgumentNullException(nameof(serverInfo)); }
public IClickHouseColumnTypeInfo Configure(ClickHouseServerInfo serverInfo) { var timezone = TZConvert.GetTimeZoneInfo(serverInfo.Timezone); return(new DateTime64TypeInfo(null, timezone, null)); }