Interface ClickHouseRecord

All Superinterfaces:
Iterable<ClickHouseValue>, Serializable
All Known Implementing Classes:
ClickHouseSimpleRecord

public interface ClickHouseRecord extends Iterable<ClickHouseValue>, Serializable
This defines a record returned from ClickHouse server. Usually it's a row but sometimes it could a (nested) column, a (semi-)structured object, or even the whole data set.
  • Field Details

  • Method Details

    • copy

      Creates a new record by copying values from current one.
      Returns:
      a new record
    • getValue

      ClickHouseValue getValue(int index)
      Gets deserialized value wrapped in an object using column index. Please avoid to cache the wrapper object, as it's reused among records for memory efficiency when ClickHouseDataConfig.isReuseValueWrapper() returns true, which is the default value. So instead of map.put("my_value", record.getValue(0)), try something like map.put("my_value", record.getValue(0).asString()).
      Parameters:
      index - zero-based index of the column
      Returns:
      non-null wrapped value
    • getValue

      ClickHouseValue getValue(String name)
      Gets deserialized value wrapped in an object using case-insensitive column name, which usually is slower than getValue(int). Please avoid to cache the wrapper object, as it's reused among records for memory efficiency when ClickHouseDataConfig.isReuseValueWrapper() returns true, which is the default value. So instead of map.put("my_value", record.getValue("my_column")), try something like map.put("my_value", record.getValue("my_column").asString()).
      Parameters:
      name - case-insensitive name of the column
      Returns:
      non-null wrapped value
    • iterator

      default Iterator<ClickHouseValue> iterator()
      Specified by:
      iterator in interface Iterable<ClickHouseValue>
    • size

      int size()
      Gets size of the record.
      Returns:
      size of the record