Skip to content

Commit 2f3aeb6

Browse files
Merge branch 'opensearch-project:main' into main
2 parents 069d52e + da1f6c0 commit 2f3aeb6

File tree

188 files changed

+5569
-131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+5569
-131
lines changed

core/src/main/java/org/opensearch/sql/analysis/Analyzer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
import org.opensearch.sql.ast.tree.Search;
9494
import org.opensearch.sql.ast.tree.Sort;
9595
import org.opensearch.sql.ast.tree.Sort.SortOption;
96+
import org.opensearch.sql.ast.tree.StreamWindow;
9697
import org.opensearch.sql.ast.tree.SubqueryAlias;
9798
import org.opensearch.sql.ast.tree.TableFunction;
9899
import org.opensearch.sql.ast.tree.Timechart;
@@ -754,6 +755,11 @@ public LogicalPlan visitTrendline(Trendline node, AnalysisContext context) {
754755
computationsAndTypes.build());
755756
}
756757

758+
@Override
759+
public LogicalPlan visitStreamWindow(StreamWindow node, AnalysisContext context) {
760+
throw getOnlyForCalciteException("Streamstats");
761+
}
762+
757763
@Override
758764
public LogicalPlan visitFlatten(Flatten node, AnalysisContext context) {
759765
throw getOnlyForCalciteException("Flatten");

core/src/main/java/org/opensearch/sql/ast/AbstractNodeVisitor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
import org.opensearch.sql.ast.tree.SPath;
8181
import org.opensearch.sql.ast.tree.Search;
8282
import org.opensearch.sql.ast.tree.Sort;
83+
import org.opensearch.sql.ast.tree.StreamWindow;
8384
import org.opensearch.sql.ast.tree.SubqueryAlias;
8485
import org.opensearch.sql.ast.tree.TableFunction;
8586
import org.opensearch.sql.ast.tree.Timechart;
@@ -411,6 +412,10 @@ public T visitWindow(Window window, C context) {
411412
return visitChildren(window, context);
412413
}
413414

415+
public T visitStreamWindow(StreamWindow node, C context) {
416+
return visitChildren(node, context);
417+
}
418+
414419
public T visitJoin(Join node, C context) {
415420
return visitChildren(node, context);
416421
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package org.opensearch.sql.ast.tree;
7+
8+
import com.google.common.collect.ImmutableList;
9+
import java.util.List;
10+
import lombok.EqualsAndHashCode;
11+
import lombok.Getter;
12+
import lombok.ToString;
13+
import org.opensearch.sql.ast.AbstractNodeVisitor;
14+
import org.opensearch.sql.ast.expression.UnresolvedExpression;
15+
16+
@Getter
17+
@ToString
18+
@EqualsAndHashCode(callSuper = false)
19+
public class StreamWindow extends UnresolvedPlan {
20+
21+
private final List<UnresolvedExpression> windowFunctionList;
22+
private final List<UnresolvedExpression> groupList;
23+
private final boolean current;
24+
private final int window;
25+
private final boolean global;
26+
private final UnresolvedExpression resetBefore;
27+
private final UnresolvedExpression resetAfter;
28+
@ToString.Exclude private UnresolvedPlan child;
29+
30+
/** StreamWindow Constructor. */
31+
public StreamWindow(
32+
List<UnresolvedExpression> windowFunctionList,
33+
List<UnresolvedExpression> groupList,
34+
boolean current,
35+
int window,
36+
boolean global,
37+
UnresolvedExpression resetBefore,
38+
UnresolvedExpression resetAfter) {
39+
this.windowFunctionList = windowFunctionList;
40+
this.groupList = groupList;
41+
this.current = current;
42+
this.window = window;
43+
this.global = global;
44+
this.resetBefore = resetBefore;
45+
this.resetAfter = resetAfter;
46+
}
47+
48+
public boolean isCurrent() {
49+
return current;
50+
}
51+
52+
public boolean isGlobal() {
53+
return global;
54+
}
55+
56+
@Override
57+
public StreamWindow attach(UnresolvedPlan child) {
58+
this.child = child;
59+
return this;
60+
}
61+
62+
@Override
63+
public List<UnresolvedPlan> getChild() {
64+
return this.child == null ? ImmutableList.of() : ImmutableList.of(this.child);
65+
}
66+
67+
@Override
68+
public <T, C> T accept(AbstractNodeVisitor<T, C> nodeVisitor, C context) {
69+
return nodeVisitor.visitStreamWindow(this, context);
70+
}
71+
}

0 commit comments

Comments
 (0)