Skip to content
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
3d828a8
support streamstats simply
ishaoxy Sep 12, 2025
5f4124c
add some tests
ishaoxy Sep 15, 2025
9f726b8
add UT
ishaoxy Sep 17, 2025
089480b
fix some error
ishaoxy Sep 17, 2025
1228778
fix conflicts
ishaoxy Sep 17, 2025
06e2c6a
add global
ishaoxy Sep 19, 2025
5fd9fe6
implement global
ishaoxy Sep 23, 2025
223b15e
implement reset
ishaoxy Sep 24, 2025
a7d8d48
implement all the arguments
ishaoxy Sep 25, 2025
cd56840
fix test
ishaoxy Sep 26, 2025
4f4376c
add all IT, UT and rst doc
ishaoxy Sep 26, 2025
5eeef46
Merge branch 'main' into streamstats-command
ishaoxy Sep 29, 2025
d80b37d
fix anonymizer test
ishaoxy Sep 29, 2025
da99024
fix doctest
ishaoxy Oct 9, 2025
37a7944
fix conflict
ishaoxy Oct 9, 2025
63b0157
modify doc and IT
ishaoxy Oct 20, 2025
4b4e912
add explainIT
ishaoxy Oct 22, 2025
8208a95
Merge branch 'main' into streamstats-command
ishaoxy Oct 22, 2025
02182cb
fix import
ishaoxy Oct 22, 2025
d12932e
fix typo
ishaoxy Oct 22, 2025
b052817
fix doctest
ishaoxy Oct 22, 2025
ffd4ecf
fix explainIT yaml format
ishaoxy Oct 22, 2025
3cf6c06
fix dc nopushdown explainIT
ishaoxy Oct 23, 2025
2601cac
add explainIT for path2 and path3
ishaoxy Oct 27, 2025
7be0782
typo error
ishaoxy Oct 27, 2025
7324bcc
Merge branch 'main' into streamstats-command
yuancu Oct 30, 2025
09c77a8
handle resort case
ishaoxy Oct 30, 2025
e911fec
fix IT
ishaoxy Oct 31, 2025
82713d2
change row_num
ishaoxy Oct 31, 2025
50df38e
Merge branch 'main' into streamstats-check
ishaoxy Oct 31, 2025
197879a
Rule out aggregator from PPLAggregateMergeRule
ishaoxy Oct 31, 2025
bcc28dc
Rule out aggregator from PPLAggregateMergeRule
ishaoxy Oct 31, 2025
d33854b
fix conflict streamstats row_num name in PlanUtils
ishaoxy Nov 3, 2025
6c5adfa
fix explainIT
ishaoxy Nov 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
import org.opensearch.sql.ast.tree.Search;
import org.opensearch.sql.ast.tree.Sort;
import org.opensearch.sql.ast.tree.Sort.SortOption;
import org.opensearch.sql.ast.tree.StreamWindow;
import org.opensearch.sql.ast.tree.SubqueryAlias;
import org.opensearch.sql.ast.tree.TableFunction;
import org.opensearch.sql.ast.tree.Timechart;
Expand Down Expand Up @@ -748,6 +749,11 @@ public LogicalPlan visitTrendline(Trendline node, AnalysisContext context) {
computationsAndTypes.build());
}

@Override
public LogicalPlan visitStreamWindow(StreamWindow node, AnalysisContext context) {
throw getOnlyForCalciteException("Streamstats");
}

@Override
public LogicalPlan visitFlatten(Flatten node, AnalysisContext context) {
throw getOnlyForCalciteException("Flatten");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
import org.opensearch.sql.ast.tree.SPath;
import org.opensearch.sql.ast.tree.Search;
import org.opensearch.sql.ast.tree.Sort;
import org.opensearch.sql.ast.tree.StreamWindow;
import org.opensearch.sql.ast.tree.SubqueryAlias;
import org.opensearch.sql.ast.tree.TableFunction;
import org.opensearch.sql.ast.tree.Timechart;
Expand Down Expand Up @@ -410,6 +411,10 @@ public T visitWindow(Window window, C context) {
return visitChildren(window, context);
}

public T visitStreamWindow(StreamWindow node, C context) {
return visitChildren(node, context);
}

public T visitJoin(Join node, C context) {
return visitChildren(node, context);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

package org.opensearch.sql.ast.tree;

import com.google.common.collect.ImmutableList;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import org.opensearch.sql.ast.AbstractNodeVisitor;
import org.opensearch.sql.ast.expression.UnresolvedExpression;

@Getter
@ToString
@EqualsAndHashCode(callSuper = false)
public class StreamWindow extends UnresolvedPlan {
Comment thread
ishaoxy marked this conversation as resolved.

private final List<UnresolvedExpression> windowFunctionList;
private final List<UnresolvedExpression> groupList;
private final boolean current;
private final int window;
private final boolean global;
private final UnresolvedExpression resetBefore;
private final UnresolvedExpression resetAfter;
@ToString.Exclude private UnresolvedPlan child;

/** StreamWindow Constructor. */
public StreamWindow(
List<UnresolvedExpression> windowFunctionList,
List<UnresolvedExpression> groupList,
boolean current,
int window,
boolean global,
UnresolvedExpression resetBefore,
UnresolvedExpression resetAfter) {
this.windowFunctionList = windowFunctionList;
this.groupList = groupList;
this.current = current;
this.window = window;
this.global = global;
this.resetBefore = resetBefore;
this.resetAfter = resetAfter;
}

public boolean isCurrent() {
return current;
}

public boolean isGlobal() {
return global;
}

@Override
public StreamWindow attach(UnresolvedPlan child) {
this.child = child;
return this;
}

@Override
public List<UnresolvedPlan> getChild() {
return this.child == null ? ImmutableList.of() : ImmutableList.of(this.child);
}

@Override
public <T, C> T accept(AbstractNodeVisitor<T, C> nodeVisitor, C context) {
return nodeVisitor.visitStreamWindow(this, context);
}
}
Loading
Loading