Connecting to QuestDB from C# using Npgsql throws error

Viewed 261

I'm trying to connect to questdb using Npgsql in C#:

var cs = "Host=localhost;Port=8812;Username=admin;Password=quest;Database=qdb";
var connection = new NpgsqlConnection(cs);
connection.Open();

I'm getting the following error:

Npgsql.PostgresException: '00000: ',', 'from' or 'over' expected
1 Answers

You have to use ServerCompatibilityMode=NoTypeLoading; in the connection string.

Full example from https://questdb.io/docs/develop/query-data

using Npgsql;
string username = "admin";
string password = "quest";
string database = "qdb";
int port = 8812;
var connectionString = $@"host=localhost;port={port};username={username};password={password};
database={database};ServerCompatibilityMode=NoTypeLoading;";
await using NpgsqlConnection connection = new NpgsqlConnection(connectionString);
await connection.OpenAsync();

var sql = "SELECT x FROM long_sequence(5);";

await using NpgsqlCommand command = new NpgsqlCommand(sql, connection);
await using (var reader = await command.ExecuteReaderAsync()) {
    while (await reader.ReadAsync())
    {
        var station = reader.GetString(0);
        var height = double.Parse(reader.GetString(1));
        var timestamp = reader.GetString(2);
    }
}
Related