danielcweeks commented on code in PR #13004:
URL: https://github.com/apache/iceberg/pull/13004#discussion_r2279417728


##########
core/src/main/java/org/apache/iceberg/rest/requests/PlanTableScanRequest.java:
##########
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iceberg.rest.requests;
+
+import java.util.List;
+import org.apache.iceberg.expressions.Expression;
+import org.apache.iceberg.relocated.com.google.common.base.MoreObjects;
+import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
+import org.apache.iceberg.rest.RESTRequest;
+
+public class PlanTableScanRequest implements RESTRequest {
+  private final Long snapshotId;
+  private final List<String> select;
+  private final Expression filter;
+  private final boolean caseSensitive;
+  private final boolean useSnapshotSchema;
+  private final Long startSnapshotId;
+  private final Long endSnapshotId;
+  private final List<String> statsFields;
+
+  public Long snapshotId() {
+    return snapshotId;
+  }
+
+  public List<String> select() {
+    return select;
+  }
+
+  public Expression filter() {
+    return filter;
+  }
+
+  public boolean caseSensitive() {
+    return caseSensitive;
+  }
+
+  public boolean useSnapshotSchema() {
+    return useSnapshotSchema;
+  }
+
+  public Long startSnapshotId() {
+    return startSnapshotId;
+  }
+
+  public Long endSnapshotId() {
+    return endSnapshotId;
+  }
+
+  public List<String> statsFields() {
+    return statsFields;
+  }
+
+  private PlanTableScanRequest(
+      Long snapshotId,
+      List<String> select,
+      Expression filter,
+      boolean caseSensitive,
+      boolean useSnapshotSchema,
+      Long startSnapshotId,
+      Long endSnapshotId,
+      List<String> statsFields) {
+    this.snapshotId = snapshotId;
+    this.select = select;
+    this.filter = filter;
+    this.caseSensitive = caseSensitive;
+    this.useSnapshotSchema = useSnapshotSchema;
+    this.startSnapshotId = startSnapshotId;
+    this.endSnapshotId = endSnapshotId;
+    this.statsFields = statsFields;
+    validate();
+  }
+
+  @Override
+  public void validate() {
+    if (snapshotId != null || startSnapshotId != null || endSnapshotId != 
null) {
+      Preconditions.checkArgument(
+          snapshotId != null ^ (startSnapshotId != null && endSnapshotId != 
null),
+          "Either snapshotId must be provided or both startSnapshotId and 
endSnapshotId must be provided");
+    }
+  }
+
+  @Override
+  public String toString() {
+    return MoreObjects.toStringHelper(this)

Review Comment:
   is there a reason we're only including some fields here?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to