protected override async Task HandleMessage(PgTransaction transaction, MessageBuilder messageBuilder, PipeWriter writer, CancellationToken token) { // TODO: Maybe support multiple SELECT statements in one query - requires parsing the SQL using var query = PgQuery.CreateInstance(QueryString, null, transaction.DocumentDatabase); var schema = await query.Init(true); if (schema.Count != 0) { await writer.WriteAsync(messageBuilder.RowDescription(schema), token); } await query.Execute(messageBuilder, writer, token); await writer.WriteAsync(messageBuilder.ReadyForQuery(transaction.State), token); }
protected override async Task HandleMessage(PgTransaction transaction, MessageBuilder messageBuilder, PipeWriter writer, CancellationToken token) { transaction.Sync(); await writer.WriteAsync(messageBuilder.ReadyForQuery(transaction.State), token); }
public override async Task HandleError(PgErrorException e, PgTransaction transaction, MessageBuilder messageBuilder, PipeWriter writer, CancellationToken token) { await base.HandleError(e, transaction, messageBuilder, writer, token); await writer.WriteAsync(messageBuilder.ReadyForQuery(transaction.State), token); }