in old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/JdbcIntermediateCursor.java [49:101]
protected JdbcIntermediateCursor(@NotNull final JdbcIntermediateSeance seance,
@NotNull final ResultSet resultSet,
@NotNull final ResultLayout<R> resultLayout,
final boolean isDefault,
@Nullable final Boolean hasRows) {
mySeance = seance;
myResultSet = resultSet;
myResultLayout = resultLayout;
myIsDefault = isDefault;
try {
myOpened = !JdbcUtil.isClosed(myResultSet);
}
catch (SQLException sqle) {
throw seance.mySession.recognizeException(sqle, seance.myStatementText);
}
if (myOpened) {
if (hasRows == null) {
try {
myHasRows = resultSet.next(); // attempt to get the first portion of rows
}
catch (SQLException sqle) {
throw seance.mySession.recognizeException(sqle, seance.myStatementText);
}
}
else {
myHasRows = hasRows;
}
}
else {
myHasRows = false;
}
if (myHasRows) {
try {
myRowsCollector = createRowsCollector(resultLayout, myResultSet, seance.myStatementText);
}
catch (SQLException sqle) {
throw seance.mySession.recognizeException(sqle, seance.myStatementText);
}
}
if (resultLayout.kind == ResultLayout.Kind.EXISTENCE || resultLayout.kind == ResultLayout.Kind.SINGLE_ROW) {
myCollectLimit = 1;
}
else {
int seancePackLimit = mySeance.myPackLimit;
if (seancePackLimit > 0) {
myCollectLimit = seancePackLimit;
}
}
}