package io.reactiverse.pgclient.impl;
import io.reactiverse.pgclient.Row;
import io.reactiverse.pgclient.impl.codec.decoder.RowDescription;
import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import java.util.stream.Collector;
abstract class ExtendedQueryCommandBase<R> extends QueryCommandBase<R> {
protected final PreparedStatement ps;
protected final int fetch;
protected final String portal;
protected final boolean suspended;
ExtendedQueryCommandBase(PreparedStatement ps,
int fetch,
String portal,
boolean suspended,
boolean singleton,
Collector<Row, ?, R> collector,
QueryResultHandler<R> resultHandler) {
super(collector, resultHandler);
this.ps = ps;
this.fetch = fetch;
this.portal = portal;
this.suspended = suspended;
this.decoder = new RowResultDecoder<>(collector, singleton, ps.rowDesc);
}
@Override
String sql() {
return ps.sql;
}
@Override
public void handleParseComplete() {
}
@Override
public void handlePortalSuspended() {
R result = decoder.complete();
RowDescription desc = decoder.description();
int size = decoder.size();
decoder.reset();
this.result = true;
resultHandler.handleResult(0, size, desc, result);
}
@Override
public void handleBindComplete() {
}
}