) r.get(uniqueCounts);
+ for (int i = 0; i < keys.length; i++) {
+ uniqueValues.set(keys.getAt(i), counts.getAt(i).asNumber());
}
}
/**
* Gets the type of formatting that should be used for given statistic.
- *
+ *
* the format type for a statistic. A null return value means that the column formatting should be used.
*
* @param name the display name of the statistic
@@ -116,7 +156,7 @@ public String getType(String name) {
/**
* Gets a map with the display name of statistics as keys and the numeric stat as a value.
- *
+ *
* A map of each statistic's name to its value.
*
* @return Map of String and Object
@@ -126,11 +166,10 @@ public JsMap getStatisticsMap() {
return statisticsMap;
}
-
/**
- * Gets a map with the name of each unique value as key and the count a the value. A map of each unique value's name
- * to the count of how many times it occurred in the column. This map will be empty for tables containing more than
- * 19 unique values.
+ * Gets a map with the name of each unique value as key and the count as the value. A map of each unique value's
+ * name to the count of how many times it occurred in the column. This map will be empty for tables containing more
+ * than 19 unique values.
*
* @return Map of String double
*
diff --git a/web/client-api/src/main/java/io/deephaven/web/client/api/JsTable.java b/web/client-api/src/main/java/io/deephaven/web/client/api/JsTable.java
index 398c2915a3e..a10f5cf7808 100644
--- a/web/client-api/src/main/java/io/deephaven/web/client/api/JsTable.java
+++ b/web/client-api/src/main/java/io/deephaven/web/client/api/JsTable.java
@@ -14,12 +14,12 @@
import elemental2.promise.Promise;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.hierarchicaltable_pb.RollupRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.hierarchicaltable_pb.TreeRequest;
-import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.object_pb.FetchObjectRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.partitionedtable_pb.PartitionByRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.partitionedtable_pb.PartitionByResponse;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.AggregateRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.AsOfJoinTablesRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest;
+import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ColumnStatisticsRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.CrossJoinTablesRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.DropColumnsRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExactJoinTablesRequest;
@@ -36,13 +36,13 @@
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.batchtablerequest.Operation;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.runchartdownsamplerequest.ZoomRange;
-import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb_service.ResponseStream;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.TypedTicket;
import io.deephaven.web.client.api.barrage.def.ColumnDefinition;
import io.deephaven.web.client.api.barrage.def.TableAttributesDefinition;
import io.deephaven.web.client.api.barrage.stream.ResponseStreamWrapper;
import io.deephaven.web.client.api.batch.RequestBatcher;
+import io.deephaven.web.client.api.batch.TableConfig;
import io.deephaven.web.client.api.console.JsVariableType;
import io.deephaven.web.client.api.filter.FilterCondition;
import io.deephaven.web.client.api.input.JsInputTable;
@@ -1433,14 +1433,50 @@ public Promise partitionBy(Object keys, @JsOptional Boolean
* @param column
* @return Promise of dh.ColumnStatistics
*/
- // TODO: #697: Column statistic support
- // @JsMethod
+ @JsMethod
public Promise getColumnStatistics(Column column) {
- return Callbacks.promise(null, c -> {
- // workerConnection.getServer().getColumnStatisticsForTable(state().getHandle(), column.getName(), c);
- throw new UnsupportedOperationException("getColumnStatistics");
- }).then(
- tableStatics -> Promise.resolve(new JsColumnStatistics(tableStatics)));
+ List toRelease = new ArrayList<>();
+ return workerConnection.newState((c, state, metadata) -> {
+ ColumnStatisticsRequest req = new ColumnStatisticsRequest();
+ req.setColumnName(column.getName());
+ req.setSourceId(state().getHandle().makeTableReference());
+ req.setResultId(state.getHandle().makeTicket());
+ workerConnection.tableServiceClient().computeColumnStatistics(req, metadata, c::apply);
+ }, "get column statistics")
+ .refetch(this, workerConnection.metadata())
+ .then(state -> {
+ // TODO (deephaven-core#188) don't drop these columns once we can decode them
+ JsArray dropCols = new JsArray<>();
+ if (Arrays.stream(state.getColumns()).anyMatch(c -> c.getName().equals("UNIQUE_KEYS"))) {
+ dropCols.push("UNIQUE_KEYS");
+ }
+ if (Arrays.stream(state.getColumns()).anyMatch(c -> c.getName().equals("UNIQUE_COUNTS"))) {
+ dropCols.push("UNIQUE_COUNTS");
+ }
+
+ if (dropCols.length > 0) {
+ toRelease.add(() -> workerConnection.releaseHandle(state.getHandle()));
+ return workerConnection.newState((c2, state2, metadata2) -> {
+ DropColumnsRequest drop = new DropColumnsRequest();
+ drop.setColumnNamesList(dropCols);
+ drop.setSourceId(state.getHandle().makeTableReference());
+ drop.setResultId(state2.getHandle().makeTicket());
+ workerConnection.tableServiceClient().dropColumns(drop, metadata2, c2::apply);
+ }, "drop unreadable stats columns")
+ .refetch(this, workerConnection.metadata())
+ .then(state2 -> {
+ JsTable table = new JsTable(workerConnection, state2);
+ toRelease.add(table::close);
+ table.setViewport(0, 0);
+ return table.getViewportData();
+ });
+ }
+ JsTable table = new JsTable(workerConnection, state);
+ toRelease.add(table::close);
+ table.setViewport(0, 0);
+ return table.getViewportData();
+ })
+ .then(tableData -> Promise.resolve(new JsColumnStatistics(tableData)));
}
private Literal objectToLiteral(String valueType, Object value) {
diff --git a/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb/ColumnStatisticsRequest.java b/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb/ColumnStatisticsRequest.java
new file mode 100644
index 00000000000..eb962c7d1d1
--- /dev/null
+++ b/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb/ColumnStatisticsRequest.java
@@ -0,0 +1,287 @@
+/**
+ * Copyright (c) 2016-2022 Deephaven Data Labs and Patent Pending
+ */
+package io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb;
+
+import elemental2.core.Uint8Array;
+import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket;
+import jsinterop.annotations.JsOverlay;
+import jsinterop.annotations.JsPackage;
+import jsinterop.annotations.JsProperty;
+import jsinterop.annotations.JsType;
+import jsinterop.base.Js;
+import jsinterop.base.JsPropertyMap;
+
+@JsType(
+ isNative = true,
+ name = "dhinternal.io.deephaven.proto.table_pb.ColumnStatisticsRequest",
+ namespace = JsPackage.GLOBAL)
+public class ColumnStatisticsRequest {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface ToObjectReturnType {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface ResultIdFieldType {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface GetTicketUnionType {
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType.ResultIdFieldType.GetTicketUnionType of(
+ Object o) {
+ return Js.cast(o);
+ }
+
+ @JsOverlay
+ default String asString() {
+ return Js.asString(this);
+ }
+
+ @JsOverlay
+ default Uint8Array asUint8Array() {
+ return Js.cast(this);
+ }
+
+ @JsOverlay
+ default boolean isString() {
+ return (Object) this instanceof String;
+ }
+
+ @JsOverlay
+ default boolean isUint8Array() {
+ return (Object) this instanceof Uint8Array;
+ }
+ }
+
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType.ResultIdFieldType create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ ColumnStatisticsRequest.ToObjectReturnType.ResultIdFieldType.GetTicketUnionType getTicket();
+
+ @JsProperty
+ void setTicket(
+ ColumnStatisticsRequest.ToObjectReturnType.ResultIdFieldType.GetTicketUnionType ticket);
+
+ @JsOverlay
+ default void setTicket(String ticket) {
+ setTicket(
+ Js.uncheckedCast(
+ ticket));
+ }
+
+ @JsOverlay
+ default void setTicket(Uint8Array ticket) {
+ setTicket(
+ Js.uncheckedCast(
+ ticket));
+ }
+ }
+
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface SourceIdFieldType {
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType.SourceIdFieldType create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ double getBatchOffset();
+
+ @JsProperty
+ Object getTicket();
+
+ @JsProperty
+ void setBatchOffset(double batchOffset);
+
+ @JsProperty
+ void setTicket(Object ticket);
+ }
+
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ String getColumnName();
+
+ @JsProperty
+ ColumnStatisticsRequest.ToObjectReturnType.ResultIdFieldType getResultId();
+
+ @JsProperty
+ ColumnStatisticsRequest.ToObjectReturnType.SourceIdFieldType getSourceId();
+
+ @JsProperty
+ double getUniqueValueLimit();
+
+ @JsProperty
+ void setColumnName(String columnName);
+
+ @JsProperty
+ void setResultId(ColumnStatisticsRequest.ToObjectReturnType.ResultIdFieldType resultId);
+
+ @JsProperty
+ void setSourceId(ColumnStatisticsRequest.ToObjectReturnType.SourceIdFieldType sourceId);
+
+ @JsProperty
+ void setUniqueValueLimit(double uniqueValueLimit);
+ }
+
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface ToObjectReturnType0 {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface ResultIdFieldType {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface GetTicketUnionType {
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType0.ResultIdFieldType.GetTicketUnionType of(
+ Object o) {
+ return Js.cast(o);
+ }
+
+ @JsOverlay
+ default String asString() {
+ return Js.asString(this);
+ }
+
+ @JsOverlay
+ default Uint8Array asUint8Array() {
+ return Js.cast(this);
+ }
+
+ @JsOverlay
+ default boolean isString() {
+ return (Object) this instanceof String;
+ }
+
+ @JsOverlay
+ default boolean isUint8Array() {
+ return (Object) this instanceof Uint8Array;
+ }
+ }
+
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType0.ResultIdFieldType create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ ColumnStatisticsRequest.ToObjectReturnType0.ResultIdFieldType.GetTicketUnionType getTicket();
+
+ @JsProperty
+ void setTicket(
+ ColumnStatisticsRequest.ToObjectReturnType0.ResultIdFieldType.GetTicketUnionType ticket);
+
+ @JsOverlay
+ default void setTicket(String ticket) {
+ setTicket(
+ Js.uncheckedCast(
+ ticket));
+ }
+
+ @JsOverlay
+ default void setTicket(Uint8Array ticket) {
+ setTicket(
+ Js.uncheckedCast(
+ ticket));
+ }
+ }
+
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface SourceIdFieldType {
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType0.SourceIdFieldType create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ double getBatchOffset();
+
+ @JsProperty
+ Object getTicket();
+
+ @JsProperty
+ void setBatchOffset(double batchOffset);
+
+ @JsProperty
+ void setTicket(Object ticket);
+ }
+
+ @JsOverlay
+ static ColumnStatisticsRequest.ToObjectReturnType0 create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ String getColumnName();
+
+ @JsProperty
+ ColumnStatisticsRequest.ToObjectReturnType0.ResultIdFieldType getResultId();
+
+ @JsProperty
+ ColumnStatisticsRequest.ToObjectReturnType0.SourceIdFieldType getSourceId();
+
+ @JsProperty
+ double getUniqueValueLimit();
+
+ @JsProperty
+ void setColumnName(String columnName);
+
+ @JsProperty
+ void setResultId(ColumnStatisticsRequest.ToObjectReturnType0.ResultIdFieldType resultId);
+
+ @JsProperty
+ void setSourceId(ColumnStatisticsRequest.ToObjectReturnType0.SourceIdFieldType sourceId);
+
+ @JsProperty
+ void setUniqueValueLimit(double uniqueValueLimit);
+ }
+
+ public static native ColumnStatisticsRequest deserializeBinary(Uint8Array bytes);
+
+ public static native ColumnStatisticsRequest deserializeBinaryFromReader(
+ ColumnStatisticsRequest message, Object reader);
+
+ public static native void serializeBinaryToWriter(ColumnStatisticsRequest message, Object writer);
+
+ public static native ColumnStatisticsRequest.ToObjectReturnType toObject(
+ boolean includeInstance, ColumnStatisticsRequest msg);
+
+ public native void clearResultId();
+
+ public native void clearSourceId();
+
+ public native void clearUniqueValueLimit();
+
+ public native String getColumnName();
+
+ public native Ticket getResultId();
+
+ public native TableReference getSourceId();
+
+ public native int getUniqueValueLimit();
+
+ public native boolean hasResultId();
+
+ public native boolean hasSourceId();
+
+ public native boolean hasUniqueValueLimit();
+
+ public native Uint8Array serializeBinary();
+
+ public native void setColumnName(String value);
+
+ public native void setResultId();
+
+ public native void setResultId(Ticket value);
+
+ public native void setSourceId();
+
+ public native void setSourceId(TableReference value);
+
+ public native void setUniqueValueLimit(int value);
+
+ public native ColumnStatisticsRequest.ToObjectReturnType0 toObject();
+
+ public native ColumnStatisticsRequest.ToObjectReturnType0 toObject(boolean includeInstance);
+}
diff --git a/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableService.java b/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableService.java
index cc2a34018e4..7599fc16339 100644
--- a/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableService.java
+++ b/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableService.java
@@ -279,6 +279,50 @@ static TableService.ComboAggregateType create() {
void setService(Object service);
}
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface ComputeColumnStatisticsType {
+ @JsOverlay
+ static TableService.ComputeColumnStatisticsType create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ String getMethodName();
+
+ @JsProperty
+ Object getRequestType();
+
+ @JsProperty
+ Object getResponseType();
+
+ @JsProperty
+ Object getService();
+
+ @JsProperty
+ boolean isRequestStream();
+
+ @JsProperty
+ boolean isResponseStream();
+
+ @JsProperty
+ void setMethodName(String methodName);
+
+ @JsProperty
+ void setRequestStream(boolean requestStream);
+
+ @JsProperty
+ void setRequestType(Object requestType);
+
+ @JsProperty
+ void setResponseStream(boolean responseStream);
+
+ @JsProperty
+ void setResponseType(Object responseType);
+
+ @JsProperty
+ void setService(Object service);
+ }
+
@JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
public interface CreateInputTableType {
@JsOverlay
@@ -1737,6 +1781,7 @@ static TableService.WhereInType create() {
public static TableService.AsOfJoinTablesType AsOfJoinTables;
public static TableService.BatchType Batch;
public static TableService.ComboAggregateType ComboAggregate;
+ public static TableService.ComputeColumnStatisticsType ComputeColumnStatistics;
public static TableService.CreateInputTableType CreateInputTable;
public static TableService.CrossJoinTablesType CrossJoinTables;
public static TableService.DropColumnsType DropColumns;
diff --git a/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableServiceClient.java b/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableServiceClient.java
index 4c026d33212..31a8f190524 100644
--- a/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableServiceClient.java
+++ b/web/client-backplane/src/main/java/io/deephaven/javascript/proto/dhinternal/io/deephaven/proto/table_pb_service/TableServiceClient.java
@@ -9,6 +9,7 @@
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ApplyPreviewColumnsRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.AsOfJoinTablesRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest;
+import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ColumnStatisticsRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ComboAggregateRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.CreateInputTableRequest;
import io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.CrossJoinTablesRequest;
@@ -48,6 +49,8 @@
import jsinterop.base.Js;
import jsinterop.base.JsPropertyMap;
+import javax.validation.constraints.NotNull;
+
@JsType(
isNative = true,
name = "dhinternal.io.deephaven.proto.table_pb_service.TableServiceClient",
@@ -519,6 +522,100 @@ default boolean isComboAggregateMetadata_or_callbackFn() {
}
}
+ @JsFunction
+ public interface ComputeColumnStatisticsCallbackFn {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface P0Type {
+ @JsOverlay
+ static TableServiceClient.ComputeColumnStatisticsCallbackFn.P0Type create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ double getCode();
+
+ @JsProperty
+ String getMessage();
+
+ @JsProperty
+ BrowserHeaders getMetadata();
+
+ @JsProperty
+ void setCode(double code);
+
+ @JsProperty
+ void setMessage(String message);
+
+ @JsProperty
+ void setMetadata(BrowserHeaders metadata);
+ }
+
+ void onInvoke(
+ TableServiceClient.ComputeColumnStatisticsCallbackFn.P0Type p0,
+ ExportedTableCreationResponse p1);
+ }
+
+ @JsFunction
+ public interface ComputeColumnStatisticsMetadata_or_callbackFn {
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface P0Type {
+ @JsOverlay
+ static TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackFn.P0Type create() {
+ return Js.uncheckedCast(JsPropertyMap.of());
+ }
+
+ @JsProperty
+ double getCode();
+
+ @JsProperty
+ String getMessage();
+
+ @JsProperty
+ BrowserHeaders getMetadata();
+
+ @JsProperty
+ void setCode(double code);
+
+ @JsProperty
+ void setMessage(String message);
+
+ @JsProperty
+ void setMetadata(BrowserHeaders metadata);
+ }
+
+ void onInvoke(
+ TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackFn.P0Type p0,
+ ExportedTableCreationResponse p1);
+ }
+
+ @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
+ public interface ComputeColumnStatisticsMetadata_or_callbackUnionType {
+ @JsOverlay
+ static TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackUnionType of(Object o) {
+ return Js.cast(o);
+ }
+
+ @JsOverlay
+ default BrowserHeaders asBrowserHeaders() {
+ return Js.cast(this);
+ }
+
+ @JsOverlay
+ default TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackFn asComputeColumnStatisticsMetadata_or_callbackFn() {
+ return Js.cast(this);
+ }
+
+ @JsOverlay
+ default boolean isBrowserHeaders() {
+ return (Object) this instanceof BrowserHeaders;
+ }
+
+ @JsOverlay
+ default boolean isComputeColumnStatisticsMetadata_or_callbackFn() {
+ return (Object) this instanceof TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackFn;
+ }
+ }
+
@JsFunction
public interface CreateInputTableCallbackFn {
@JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
@@ -3752,6 +3849,58 @@ public native UnaryResponse comboAggregate(
ComboAggregateRequest requestMessage,
TableServiceClient.ComboAggregateMetadata_or_callbackUnionType metadata_or_callback);
+ @JsOverlay
+ public final UnaryResponse computeColumnStatistics(
+ ColumnStatisticsRequest requestMessage,
+ BrowserHeaders metadata_or_callback,
+ TableServiceClient.ComputeColumnStatisticsCallbackFn callback) {
+ return computeColumnStatistics(
+ requestMessage,
+ Js.uncheckedCast(
+ metadata_or_callback),
+ callback);
+ }
+
+ @JsOverlay
+ public final UnaryResponse computeColumnStatistics(
+ ColumnStatisticsRequest requestMessage, BrowserHeaders metadata_or_callback) {
+ return computeColumnStatistics(
+ requestMessage,
+ Js.uncheckedCast(
+ metadata_or_callback));
+ }
+
+ @JsOverlay
+ public final UnaryResponse computeColumnStatistics(
+ ColumnStatisticsRequest requestMessage,
+ TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackFn metadata_or_callback,
+ TableServiceClient.ComputeColumnStatisticsCallbackFn callback) {
+ return computeColumnStatistics(
+ requestMessage,
+ Js.uncheckedCast(
+ metadata_or_callback),
+ callback);
+ }
+
+ @JsOverlay
+ public final UnaryResponse computeColumnStatistics(
+ ColumnStatisticsRequest requestMessage,
+ TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackFn metadata_or_callback) {
+ return computeColumnStatistics(
+ requestMessage,
+ Js.uncheckedCast(
+ metadata_or_callback));
+ }
+
+ public native UnaryResponse computeColumnStatistics(
+ ColumnStatisticsRequest requestMessage,
+ TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackUnionType metadata_or_callback,
+ TableServiceClient.ComputeColumnStatisticsCallbackFn callback);
+
+ public native UnaryResponse computeColumnStatistics(
+ ColumnStatisticsRequest requestMessage,
+ TableServiceClient.ComputeColumnStatisticsMetadata_or_callbackUnionType metadata_or_callback);
+
@JsOverlay
public final UnaryResponse createInputTable(
CreateInputTableRequest requestMessage,