Class RowCursorResultSet

java.lang.Object
app.babylon.table.io.RowCursorResultSet
All Implemented Interfaces:
RowCursor, AutoCloseable

public class RowCursorResultSet extends Object implements RowCursor
Supplies rows from a caller-owned ResultSet.

This supplier adapts a caller-owned ResultSet. Closing the supplier is a no-op; the caller remains responsible for the lifecycle of the underlying JDBC resources.

Example:


 Connection connection = ...;
 try (PreparedStatement statement = connection
         .prepareStatement("select city, amount from trades where trade_date >= ?"))
 {
     statement.setDate(1, java.sql.Date.valueOf("2026-01-01"));
     try (ResultSet resultSet = statement.executeQuery())
     {
         RowCursor supplier = new RowCursorResultSet(resultSet);

         ColumnDefinition[] columns = supplier.columns();
         while (supplier.next())
         {
             ByteStringSlices row = supplier.current();
         }
     }
 }
 
This implementation is a demonstration of what is possible and the likely structure given the ResultSet API. Different drivers may still have quirks that require special implementations.
  • Constructor Details

    • RowCursorResultSet

      public RowCursorResultSet(ResultSet resultSet)
  • Method Details

    • columns

      public ColumnDefinition[] columns()
      Description copied from interface: RowCursor
      Returns source-native column definitions when the physical source has them.

      Line-oriented sources normally return no definitions; their logical columns are detected later from the row stream.

      Specified by:
      columns in interface RowCursor
      Returns:
      source-native column definitions, or an empty array
    • next

      public boolean next()
      Specified by:
      next in interface RowCursor
    • current

      public ByteStringSlices current()
      Specified by:
      current in interface RowCursor
    • close

      public void close() throws SQLException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface RowCursor
      Throws:
      SQLException