TableHandleManager and TableHandle¶
TableHandleManager¶
TableHandleManager
is used to access existing tables in the system (e.g. via
FetchTable
)
or create new tables (e.g. via
EmptyTable
or
TimeTable
).
These calls return a
TableHandle
.
TableHandleManager
can also be used to access the
arrow::flight::FlightClient
for direct access to Arrow.
TableHandle¶
Once you have a
TableHandle
,
you can create derived tables via a large variety of methods, such as
Where
and
Sort
.
A simple example is:
TableHandle my_data = manager.FetchTable("MyData");
TableHandle filtered = my_data.Where("Price < 100")
.Sort(SortPair("Timestamp"))
.Tail(5);
Declarations¶
-
class TableHandleManager¶
This class is the main way to get access to new TableHandle objects, via methods like EmptyTable() and FetchTable(). A TableHandleManager is created by Client::GetManager(). You can have more than one TableHandleManager for a given client. The reason you’d want more than one is that (in the future) you will be able to set parameters here that will apply to all TableHandles created by this class, such as flags that control asynchronous behavior. This class is move-only.
Public Functions
Constructor. Used internally.
-
TableHandleManager(TableHandleManager &&other) noexcept¶
Move constructor
-
TableHandleManager &operator=(TableHandleManager &&other) noexcept¶
Move assigment operator.
-
~TableHandleManager()¶
Destructor
-
TableHandle EmptyTable(int64_t size) const¶
Creates a “zero-width” table on the server. Such a table knows its number of rows but has no columns.
- Parameters:
size – Number of rows in the empty table.
-
TableHandle FetchTable(std::string table_name) const¶
Looks up an existing table by name.
- Parameters:
tableName – The name of the table.
-
TableHandle TimeTable(DurationSpecifier period, TimePointSpecifier start_time = 0, bool blink_table = false) const¶
Creates a ticking table.
- Parameters:
period – Table ticking frequency, specified as a std::chrono::duration, int64_t nanoseconds, or a string containing an ISO 8601 duration representation.
start_time – When the table should start ticking, specified as a std::chrono::time_point, int64_t nanoseconds since the epoch, or a string containing an ISO 8601 time point specifier.
- Returns:
The TableHandle of the new table.
-
TableHandle InputTable(const TableHandle &initial_table, std::vector<std::string> key_columns = {}) const¶
Creates an input table from an initial table. When key columns are provided, the InputTable will be keyed, otherwise it will be append-only.
- Parameters:
columns – The set of key columns
- Returns:
A TableHandle referencing the new table
-
TableHandle MakeTableHandleFromTicket(std::string ticket) const¶
Creates a TableHandle that owns the underlying ticket and its resources. The ticket argument is typically created with NewTicket() and then populated e.g. with Arrow operations.
-
void RunScript(std::string code) const¶
Execute a script on the server. This assumes that the Client was created with a sessionType corresponding to the language of the script (typically either “python” or “groovy”) and that the code matches that language.
-
FlightWrapper CreateFlightWrapper() const¶
Creates a FlightWrapper that is used for Arrow Flight integration. Arrow Flight is the primary way to push data into or pull data out of the system. The object returned is only forward-referenced in this file. If you want to use it, you will also need to include deephaven/client/flight.h.
- Returns:
A FlightWrapper object.
-
class TableHandle¶
Holds an reference to a server resource representing a table. TableHandle objects have shared ownership semantics so they can be copied freely. When the last TableHandle pointing to a server resource is destructed, the resource will be released.
Public Functions
Constructor. Used internally.
-
TableHandle(const TableHandle &other)¶
Copy constructor.
-
TableHandle &operator=(const TableHandle &other)¶
Copy assignment.
-
TableHandle(TableHandle &&other) noexcept¶
Move constructor.
-
TableHandle &operator=(TableHandle &&other) noexcept¶
Move assignment.
-
~TableHandle()¶
Destructor
-
TableHandleManager GetManager() const¶
Get the TableHandlerManager that is managing this TableHandle.
- Returns:
the TableHandleManager.
-
TableHandle Select(std::vector<std::string> column_specs) const¶
Select columnSpecs from a table. The columnSpecs can be column names or formulas like “NewCol = A + 12”. See the Deephaven documentation for the difference between “Select” and “View”.
- Parameters:
columnSpecs – The columnSpecs
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle Select(Args&&... args) const¶ A variadic form of Select(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The arguments to Select
- Returns:
A TableHandle referencing the new table
-
TableHandle View(std::vector<std::string> column_specs) const¶
View columnSpecs from a table. The columnSpecs can be column names or formulas like “NewCol = A + 12”. See the Deephaven documentation for the difference between Select() and View().
- Parameters:
columnSpecs – The columnSpecs to View
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle View(Args&&... args) const¶ A variadic form of View(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The arguments to View
- Returns:
A TableHandle referencing the new table
-
TableHandle DropColumns(std::vector<std::string> column_specs) const¶
Creates a new table from this table Where the specified columns have been excluded.
- Parameters:
columnSpecs – The columns to exclude.
- Returns:
-
template<typename ...Args>
inline TableHandle DropColumns(Args&&... args) const¶ A variadic form of DropColumns(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns to drop
- Returns:
A TableHandle referencing the new table
-
TableHandle Update(std::vector<std::string> column_specs) const¶
Creates a new table from this table, but including the additional specified columns.
- Parameters:
columnSpecs – The columnSpecs to add. For example, {“X = A + 5”, “Y = X * 2”}. See the Deephaven documentation for the difference between Update() and UpdateView().
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle Update(Args&&... args) const¶ A variadic form of Update(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns to Update
- Returns:
A TableHandle referencing the new table
-
TableHandle LazyUpdate(std::vector<std::string> column_specs) const¶
Creates a new table containing a new cached formula column for each argument.
- Parameters:
columnSpecs – The columnSpecs to add. For exampe, {“X = A + 5”, “Y = X * 2”}. See the Deephaven documentation for the difference between Update() and LazyUpdate().
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle LazyUpdate(Args&&... args) const¶ A variadic form of LazyUpdate(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns to LazyUpdate
- Returns:
A TableHandle referencing the new table
-
TableHandle UpdateView(std::vector<std::string> column_specs) const¶
Creates a new View from this table, but including the additional specified columns.
- Parameters:
columnSpecs – The columnSpecs to add. For exampe, {“X = A + 5”, “Y = X * 2”}. See the Deephaven documentation for the difference between Update() and UpdateView().
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle UpdateView(Args&&... args) const¶ A variadic form of UpdateView(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns to UpdateView
- Returns:
A TableHandle referencing the new table
-
TableHandle Where(std::string condition) const¶
Creates a new table from this table, filtered by condition. Consult the Deephaven documentation for more information about valid conditions.
- Parameters:
condition – A Deephaven boolean expression such as “Price > 100” or “Col3 == Col1 * Col2”.
- Returns:
A TableHandle referencing the new table
-
TableHandle Sort(std::vector<SortPair> sort_pairs) const¶
Creates a new table from this table, sorted By sortPairs.
- Parameters:
sortPairs – A vector of SortPair objects describing the sort. Each SortPair refers to a column, a sort direction, and whether the sort should consider to the value’s regular or absolute value when doing comparisons.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle Sort(Args&&... args) const¶ A variadic form of Sort(std::vector<SortPair>) const
- Template Parameters:
Args – One or more SortPairs
- Parameters:
args – The sort_pairs
- Returns:
A TableHandle referencing the new table
-
TableHandle By(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs with the column content grouped into arrays.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle By(Args&&... args) const¶ A variadic form of By(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – Columns to group by
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle By(AggregateCombo combo, Args&&... args) const¶ A variadic form of By(AggregateCombo, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
TableHandle MinBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “Min” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle MinBy(Args&&... args) const¶ A variadic form of MinBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
TableHandle MaxBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “Max” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle MaxBy(Args&&... args) const¶ A variadic form of MaxBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – Columns to group by
- Returns:
A TableHandle referencing the new table
-
TableHandle SumBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “Sum” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle SumBy(Args&&... args) const¶ A variadic form of SumBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
TableHandle AbsSumBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “AbsSum” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle AbsSumBy(Args&&... args) const¶ A variadic form of AbsSumBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
TableHandle VarBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “Var” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle VarBy(Args&&... args) const¶ A variadic form of VarBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns to group by
- Returns:
A TableHandle referencing the new table
-
TableHandle StdBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “std” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle StdBy(Args&&... args) const¶ A variadic form of StdBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle AvgBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “Avg” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle AvgBy(Args&&... args) const¶ A variadic form of AvgBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle FirstBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “First” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle FirstBy(Args&&... args) const¶ A variadic form of FirstBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle LastBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “Last” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle LastBy(Args&&... args) const¶ A variadic form of LastBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle MedianBy(std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “median” aggregate operation applied to the remaining columns.
- Parameters:
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle MedianBy(Args&&... args) const¶ A variadic form of LastBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle PercentileBy(double percentile, bool avg_median, std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “percentile” aggregate operation applied to the remaining columns.
- Parameters:
percentile – The designated percentile
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle PercentileBy(double percentile, bool avg_median, Args&&... args) const¶ A variadic form of PercentileBy(double, bool, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
inline TableHandle PercentileBy(double percentile, std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, with the “percentile” aggregate operation applied to the remaining columns.
- Parameters:
percentile – The designated percentile
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle PercentileBy(double percentile, Args&&... args) const¶ A variadic form of PercentileBy(double, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle CountBy(std::string count_by_column, std::vector<std::string> columnSpecs) const¶
Creates a new table from this table, grouped by columnSpecs, having a new column named By
countByColumn
containing the size of each group.- Parameters:
countByColumn – Name of the output column.
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle CountBy(std::string count_by_column, Args&&... args) const¶ A variadic form of CountBy(std::string, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle WAvgBy(std::string weight_column, std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, having a new column named By
weightColumn
containing the weighted average of each group.- Parameters:
countByColumn – Name of the output column.
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle WAvgBy(std::string weight_column, Args&&... args) const¶ A variadic form of WAvgBy(std::string, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle TailBy(int64_t n, std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, containing the Last
n
rows of each group.- Parameters:
n – Number of rows
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle TailBy(int64_t n, Args&&... args) const¶ A variadic form of TailBy(int64_t, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle HeadBy(int64_t n, std::vector<std::string> column_specs) const¶
Creates a new table from this table, grouped by columnSpecs, containing the First
n
rows of each group.- Parameters:
n – Number of rows
columnSpecs – Columns to group by.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle HeadBy(int64_t n, Args&&... args) const¶ A variadic form of HeadBy(int64_t, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle Head(int64_t n) const¶
Creates a new table from this table containing the First
n
rows of this table.- Parameters:
n – Number of rows
- Returns:
A TableHandle referencing the new table
-
TableHandle Tail(int64_t n) const¶
Creates a new table from this table containing the Last
n
rows of this table.- Parameters:
n – Number of rows
- Returns:
A TableHandle referencing the new table
-
TableHandle Ungroup(bool null_fill, std::vector<std::string> group_by_columns) const¶
Creates a new table from this table with the column array data ungrouped. This is the inverse of the By(std::vector<std::string>) const operation.
- Parameters:
groupByColumns – Columns to Ungroup.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle Ungroup(bool null_fill, Args&&... args) const¶ A variadic form of Ungroup(bool, std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
inline TableHandle Ungroup(std::vector<std::string> group_by_columns) const¶
Creates a new table from this table with the column array data ungrouped. This is the inverse of the By(std::vector<std::string>) const operation.
- Parameters:
groupByColumns – Columns to Ungroup.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle Ungroup(Args&&... args) const¶ A variadic form of Ungroup(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle Merge(std::string key_columns, std::vector<TableHandle> sources) const¶
Creates a new table By merging
sources
together. The tables are essentially stacked on top of each other.- Parameters:
sources – The tables to Merge.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Rest>
inline TableHandle Merge(std::string key_column, TableHandle first, Rest&&... rest) const¶ A variadic form of Merge(std::string, std::vector<std::string>) const that takes a combination of argument types.
- Parameters:
first – The first TableHandle in the list of sources.
rest – The rest of the TableHandles in the list of sources. The arguments are split this way to aid in overload resolution.
args – The columns
- Template Parameters:
Rest – Zero or more TableHandles
- Returns:
A TableHandle referencing the new table
-
inline TableHandle Merge(std::vector<TableHandle> sources) const¶
Creates a new table By merging
sources
together. The tables are essentially stacked on top of each other.- Parameters:
sources – The tables to Merge.
- Returns:
A TableHandle referencing the new table
-
template<typename ...Rest>
inline TableHandle Merge(TableHandle first, Rest&&... rest) const¶ A variadic form of Merge(std::vector<std::string>) const that takes a combination of argument types.
- Parameters:
first – The first TableHandle in the list of sources.
rest – The rest of the TableHandles in the list of sources. The arguments are split this
args – The columns
- Template Parameters:
Rest – Zero or more TableHandles
- Returns:
A TableHandle referencing the new table
-
TableHandle CrossJoin(const TableHandle &right_side, std::vector<std::string> columns_to_match, std::vector<std::string> columns_to_add) const¶
Creates a new table By cross joining this table with
rightSide
. The tables are joined By the columns incolumnsToMatch
, and columns fromrightSide
are brought in and optionally renamed BycolumnsToAdd
. Example:t1.CrossJoin({"Col1", "Col2"}, {"Col3", "NewCol=Col4"})
- Parameters:
rightSide – The table to join with this table
columns_to_match – The columns to join on
columns_to_add – The columns from the right side to add, and possibly rename.
- Returns:
A TableHandle referencing the new table
-
TableHandle NaturalJoin(const TableHandle &right_side, std::vector<std::string> columns_to_match, std::vector<std::string> columns_to_add) const¶
Creates a new table By natural joining this table with
rightSide
. The tables are joined By the columns incolumnsToMatch
, and columns fromrightSide
are brought in and optionally renamed BycolumnsToAdd
. Example:t1.NaturalJoin({"Col1", "Col2"}, {"Col3", "NewCol=Col4"})
- Parameters:
rightSide – The table to join with this table
columns_to_match – The columns to join on
columns_to_add – The columns from the right side to add, and possibly rename.
- Returns:
A TableHandle referencing the new table
-
TableHandle ExactJoin(const TableHandle &right_side, std::vector<std::string> columns_to_match, std::vector<std::string> columns_to_add) const¶
Creates a new table By exact joining this table with
rightSide
. The tables are joined By the columns incolumnsToMatch
, and columns fromrightSide
are brought in and optionally renamed BycolumnsToAdd
. Example:t1.ExactJoin({"Col1", "Col2"}, {"Col3", "NewCol=Col4"})
- Parameters:
rightSide – The table to join with this table
columns_to_match – The columns to join on
columns_to_add – The columns from the right side to add, and possibly rename.
- Returns:
A TableHandle referencing the new table
-
TableHandle Aj(const TableHandle &right_side, std::vector<std::string> on, std::vector<std::string> joins = {}) const¶
Creates a new table containing all the rows and columns of the left table, plus additional columns containing data from the right table. For columns appended to the left table (joins), row values equal the row values from the right table where the keys from the left table most closely match the keys from the right table without going over. If there is no matching key in the right table, appended row values are NULL.
- Parameters:
right_side – The table to join with this table
on – The column(s) to match, can be a common name or a match condition of two columns, e.g. ‘col_a = col_b’. The first ‘N-1’ matches are exact matches. The final match is an inexact match. The inexact match can use either ‘>’ or ‘>=’. If a common name is used for the inexact match, ‘>=’ is used for the comparison.
joins – The column(s) to be added from the right table to the result table, can be renaming expressions, i.e. “new_col = col”; default is empty, which means all the columns from the right table, excluding those specified in ‘on’
-
TableHandle Raj(const TableHandle &right_side, std::vector<std::string> on, std::vector<std::string> joins = {}) const¶
Creates a new table containing all the rows and columns of the left table, plus additional columns containing data from the right table. For columns appended to the left table (joins), row values equal the row values from the right table where the keys from the left table most closely match the keys from the right table without going under. If there is no matching key in the right table, appended row values are NULL.
- Parameters:
right_side – The table to join with this table
on – The column(s) to match, can be a common name or a match condition of two columns, e.g. ‘col_a = col_b’. The first ‘N-1’ matches are exact matches. The final match is an inexact match. The inexact match can use either ‘<’ or ‘<=’. If a common name is used for the inexact match, ‘<=’ is used for the comparison.
joins – The column(s) to be added from the right table to the result table, can be renaming expressions, i.e. “new_col = col”; default is empty, which means all the columns from the right table, excluding those specified in ‘on’
-
TableHandle UpdateBy(std::vector<UpdateByOperation> ops, std::vector<std::string> by) const¶
Performs one or more UpdateByOperation ops grouped by zero or more key columns to calculate cumulative or window-based aggregations of columns in a source table. Operations include cumulative sums, moving averages, EMAs, etc. The aggregations are defined by the provided operations, which support incremental aggregations over the corresponding rows in the source table. Cumulative aggregations use all rows in the source table, whereas rolling aggregations will apply position or time-based windowing relative to the current row. Calculations are performed over all rows or each row group as identified by the provided key columns.
- Parameters:
ops – The requested UpdateByOperation ops
by – The columns to group by
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle UpdateBy(Args&&... args) const¶ A variadic form of UpdateBy(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle SelectDistinct(std::vector<std::string> columns) const¶
Creates a new table containing all of the unique values for a set of key columns. When used on multiple columns, it looks for distinct sets of values in the selected columns.
- Parameters:
columns – The set of key columns
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle SelectDistinct(Args&&... args) const¶ A variadic form of SelectDistinct(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
TableHandle WhereIn(const TableHandle &filter_table, std::vector<std::string> columns) const¶
Creates a new table containing rows from the source table, where the rows match values in the filter table. The filter is updated whenever either table changes. See the Deephaven documentation for the difference between “Where” and “WhereIn”.
- Parameters:
filter_table – The table containing the set of values to filter on
columns – The columns to match on
- Returns:
A TableHandle referencing the new table
-
template<typename ...Args>
inline TableHandle WhereIn(const TableHandle &filter_table, Args&&... args) const¶ A variadic form of WhereIn(std::vector<std::string>) const that takes a combination of argument types.
- Template Parameters:
Args – Any combination of
std::string
,std::string_view
, orconst char *
- Parameters:
args – The columns
- Returns:
A TableHandle referencing the new table
-
void AddTable(const TableHandle &table_to_add)¶
Adds a table to an input table. Requires that this object be an InputTable (such as that created by TableHandleManager::InputTable).
- Parameters:
table_to_add – The table to add to the InputTable
-
void RemoveTable(const TableHandle &table_to_remove)¶
Removes a table from an input table. Requires that this object be an InputTable (such as that created by TableHandleManager::InputTable).
- Parameters:
table_to_add – The table to remove from the InputTable
- Returns:
The new table
-
void BindToVariable(std::string variable) const¶
Binds this table to a variable name in the QueryScope.
- Parameters:
variable – The QueryScope variable to bind to.
-
internal::TableHandleStreamAdaptor Stream(bool want_headers) const¶
Create an ostream adpator that prints a human-readable representation of the table to a C++ stream. Example:
std::cout << table.Stream(true) << std::endl;
- Parameters:
wantHeaders – Include column headers.
- Returns:
-
std::string ToString(bool want_headers) const¶
Used internally, for demo purposes.
-
inline void Release()¶
A specialized operation to Release the state of this TableHandle. This operation is normally done By the destructor, so most programs will never need to call this method.. If there are no other copies of this TableHandle, and if there are no “child” TableHandles dependent on this TableHandle, then the corresponding server resources will be released.
-
int64_t NumRows() const¶
Number of rows in the table at the time this TableHandle was created.
-
bool IsStatic() const¶
Whether the table was static at the time this TableHandle was created.
-
std::shared_ptr<SchemaType> Schema() const¶
Returns the table’s Schema.
-
inline const std::shared_ptr<impl::TableHandleImpl> &Impl() const¶
Used internally. Returns the underlying Impl object.
-
std::shared_ptr<arrow::flight::FlightStreamReader> GetFlightStreamReader() const¶
Construct an arrow FlightStreamReader bound to this table
- Returns:
the Arrow FlightStreamReader.
-
std::shared_ptr<arrow::Table> ToArrowTable() const¶
Read in the entire table as an Arrow table.
- Returns:
the Arrow table
-
std::shared_ptr<ClientTable> ToClientTable() const¶
Read in the entire table as a ClientTable.
- Returns:
the ClientTable
Subscribe to a ticking table.
-
std::shared_ptr<SubscriptionHandle> Subscribe(onTickCallback_t on_tick, void *on_tick_user_data, onErrorCallback_t on_error, void *on_error_user_data)¶
Subscribe to a ticking table (C-style).
Unsubscribe from the table.
-
const std::string &GetTicketAsString() const¶
Get access to the bytes of the Deephaven “Ticket” type (without having to reference the protobuf data structure, which we would prefer not to have a dependency on here)