package io.reactiverse.pgclient.impl;
import io.reactiverse.pgclient.Row;
import io.reactiverse.pgclient.Tuple;
import io.reactiverse.pgclient.impl.codec.encoder.MessageEncoder;
import io.reactiverse.pgclient.impl.codec.encoder.Parse;
import java.util.List;
import java.util.stream.Collector;
public class ExtendedQueryCommand<T> extends ExtendedQueryCommandBase<T> {
private final Tuple params;
ExtendedQueryCommand(PreparedStatement ps,
Tuple params,
boolean singleton,
Collector<Row, ?, T> collector,
QueryResultHandler<T> resultHandler) {
this(ps, params, 0, null, false, singleton, collector, resultHandler);
}
ExtendedQueryCommand(PreparedStatement ps,
Tuple params,
int fetch,
String portal,
boolean suspended,
boolean singleton,
Collector<Row, ?, T> collector,
QueryResultHandler<T> resultHandler) {
super(ps, fetch, portal, suspended, singleton, collector, resultHandler);
this.params = params;
}
@Override
void exec(MessageEncoder out) {
if (suspended) {
out.writeExecute(portal, fetch);
out.writeSync();
} else {
if (ps.bind.statement == 0) {
out.writeParse(new Parse(ps.sql));
}
out.writeBind(ps.bind, portal, (List<Object>) params);
out.writeExecute(portal, fetch);
out.writeSync();
}
}
}