Package com.clickhouse.client.data
Class ClickHouseSimpleResponse
- java.lang.Object
-
- com.clickhouse.client.data.ClickHouseSimpleResponse
-
- All Implemented Interfaces:
ClickHouseResponse
,Serializable
,AutoCloseable
public class ClickHouseSimpleResponse extends Object implements ClickHouseResponse
A simple response built on top of two lists: columns and records.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static ClickHouseSimpleResponse
EMPTY
Deprecated.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ClickHouseSimpleResponse(List<ClickHouseColumn> columns, ClickHouseValue[][] values, ClickHouseResponseSummary summary)
protected
ClickHouseSimpleResponse(List<ClickHouseColumn> columns, List<ClickHouseRecord> records, ClickHouseResponseSummary summary)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
List<ClickHouseColumn>
getColumns()
Gets list of columns.InputStream
getInputStream()
Gets input stream of the response.ClickHouseResponseSummary
getSummary()
Gets summary of this response.boolean
isClosed()
Checks whether the reponse has been closed or not.static ClickHouseResponse
of(ClickHouseConfig config, List<ClickHouseColumn> columns, Object[][] values)
Creates a response object using columns definition and raw values.static ClickHouseResponse
of(ClickHouseConfig config, List<ClickHouseColumn> columns, Object[][] values, ClickHouseResponseSummary summary)
Creates a response object using columns definition and raw values.static ClickHouseResponse
of(ClickHouseResponse response)
Creates a response object by copying columns and values from the given one.static ClickHouseResponse
of(ClickHouseResponse response, ClickHouseRecordTransformer func)
Creates a response object by copying columns and values from the given one.Iterable<ClickHouseRecord>
records()
Returns an iterable collection of records which can be walked through in a foreach loop.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.clickhouse.client.ClickHouseResponse
firstRecord, pipe, stream
-
-
-
-
Field Detail
-
EMPTY
@Deprecated public static final ClickHouseSimpleResponse EMPTY
Deprecated.
-
-
Constructor Detail
-
ClickHouseSimpleResponse
protected ClickHouseSimpleResponse(List<ClickHouseColumn> columns, List<ClickHouseRecord> records, ClickHouseResponseSummary summary)
-
ClickHouseSimpleResponse
protected ClickHouseSimpleResponse(List<ClickHouseColumn> columns, ClickHouseValue[][] values, ClickHouseResponseSummary summary)
-
-
Method Detail
-
of
public static ClickHouseResponse of(ClickHouseConfig config, List<ClickHouseColumn> columns, Object[][] values)
Creates a response object using columns definition and raw values.- Parameters:
config
- non-null configcolumns
- list of columnsvalues
- raw values, which may or may not be null- Returns:
- response object
-
of
public static ClickHouseResponse of(ClickHouseConfig config, List<ClickHouseColumn> columns, Object[][] values, ClickHouseResponseSummary summary)
Creates a response object using columns definition and raw values.- Parameters:
config
- non-null configcolumns
- list of columnsvalues
- raw values, which may or may not be null- Returns:
- response object
-
of
public static ClickHouseResponse of(ClickHouseResponse response)
Creates a response object by copying columns and values from the given one. Same asof(response, null)
.- Parameters:
response
- response to copy- Returns:
- new response object
-
of
public static ClickHouseResponse of(ClickHouseResponse response, ClickHouseRecordTransformer func)
Creates a response object by copying columns and values from the given one. You should never use this method against a large response, because it will load everything into memory. Worse than that, whenfunc
is not null, it will be applied to every single row, which is going to be slow when original response contains many records.- Parameters:
response
- response to copyfunc
- optinal function to update value by column index- Returns:
- new response object
-
getColumns
public List<ClickHouseColumn> getColumns()
Description copied from interface:ClickHouseResponse
Gets list of columns.- Specified by:
getColumns
in interfaceClickHouseResponse
- Returns:
- non-null list of column
-
getSummary
public ClickHouseResponseSummary getSummary()
Description copied from interface:ClickHouseResponse
Gets summary of this response. Keep in mind that the summary may change over time until response is closed.- Specified by:
getSummary
in interfaceClickHouseResponse
- Returns:
- non-null summary of this response
-
getInputStream
public InputStream getInputStream()
Description copied from interface:ClickHouseResponse
Gets input stream of the response. In general, this is the most memory-efficient way for streaming data from server to client. However, this also means additional work is required for deserialization, especially when using a binary format.- Specified by:
getInputStream
in interfaceClickHouseResponse
- Returns:
- input stream for getting raw data returned from server
-
records
public Iterable<ClickHouseRecord> records()
Description copied from interface:ClickHouseResponse
Returns an iterable collection of records which can be walked through in a foreach loop. Please pay attention that: 1)UncheckedIOException
might be thrown when iterating through the collection; and 2) it's not supposed to be called for more than once.- Specified by:
records
in interfaceClickHouseResponse
- Returns:
- non-null iterable collection
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceClickHouseResponse
-
isClosed
public boolean isClosed()
Description copied from interface:ClickHouseResponse
Checks whether the reponse has been closed or not.- Specified by:
isClosed
in interfaceClickHouseResponse
- Returns:
- true if the response has been closed; false otherwise
-
-