Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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)));
        }
Exemplo n.º 3
0
 public IClickHouseColumnTypeInfo Configure(ClickHouseServerInfo serverInfo)
 {
     return(new DateTime64TypeInfo(null, serverInfo.Timezone, false));
 }
Exemplo n.º 4
0
 private ServerHelloMessage(ClickHouseServerInfo serverInfo)
 {
     ServerInfo = serverInfo ?? throw new ArgumentNullException(nameof(serverInfo));
 }
Exemplo n.º 5
0
        public IClickHouseColumnTypeInfo Configure(ClickHouseServerInfo serverInfo)
        {
            var timezone = TZConvert.GetTimeZoneInfo(serverInfo.Timezone);

            return(new DateTime64TypeInfo(null, timezone, null));
        }