Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge master #31

Merged
merged 40 commits into from
Oct 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
dad5b60
Bump org.checkerframework:checker-qual from 3.47.0 to 3.48.0 (#14156)
dependabot[bot] Oct 3, 2024
7546663
Bump nl.jqno.equalsverifier:equalsverifier from 3.17 to 3.17.1 (#14157)
dependabot[bot] Oct 3, 2024
21f1cc4
Fix segment reload on custom forward index setting (#14150)
Jackie-Jiang Oct 4, 2024
c4e03e3
Extract common utils used to preload segments for future reuse (#14161)
klsince Oct 4, 2024
47d2fb2
Bump dropwizard-metrics.version from 4.2.27 to 4.2.28 (#14164)
dependabot[bot] Oct 4, 2024
970622e
Test Classes Refactoring for setters of _textIndexColumns and ColumnP…
deepthi912 Oct 5, 2024
e47169c
Fix function call return type for IN / NOT IN created from SEARCH in …
yashmayya Oct 5, 2024
8334add
Fix incorrect semantics for BETWEEN on MV columns in the multi-stage …
yashmayya Oct 5, 2024
f7067db
Fix raw index conversion from v4 (#14171)
Jackie-Jiang Oct 6, 2024
b2d688b
Fix consuming segments cleanup on server startup (#14174)
laxman-ch Oct 7, 2024
e1328a3
Improve query options validation and error handling. (#14158)
bziobrowski Oct 7, 2024
2ddd2c7
Bump org.ow2.asm:asm from 9.7 to 9.7.1 (#14175)
dependabot[bot] Oct 7, 2024
dc44785
Bump parquet.version from 1.14.2 to 1.14.3 (#14176)
dependabot[bot] Oct 7, 2024
5d9a794
Support arbitrary number of WHEN THEN clauses in the scalar CASE func…
yashmayya Oct 7, 2024
41b9a60
[HELM]: Publish Helm 0.3.0 (#14169)
nilaprasad Oct 7, 2024
0b7dae6
Store index metadata file for Lucene text indexes (#13948)
itschrispeck Oct 7, 2024
7a9bc49
Adding custom params to AggInfo so that series builders can use it. (…
raghavyadav01 Oct 7, 2024
e9beb34
Add tests for PredicateComparisonRewriter (#14166)
yashmayya Oct 8, 2024
2fddae2
Make S3PinotFS listFiles return directories when non-recursive (#14073)
dd-willgan Oct 8, 2024
2a443ee
try to acquire segmentLock before taking segment snapshot (#14179)
klsince Oct 8, 2024
8a404ba
Bump org.jetbrains:annotations from 25.0.0 to 26.0.0 (#14184)
dependabot[bot] Oct 8, 2024
c75b11f
Bump net.openhft:chronicle-core from 2.26ea1 to 2.26ea2 (#14183)
dependabot[bot] Oct 8, 2024
1e0f870
add logs to debug why crc values are different upon same input data a…
klsince Oct 8, 2024
27b3984
copy native text index during format conversion (#14172)
jt-kloudfuse Oct 8, 2024
7202ead
Add support for configuring Theta and Tuple aggregation functions (#1…
davecromberge Oct 8, 2024
acb8f19
Fix rebalancer EV converge check for low disk mode (#14178)
Jackie-Jiang Oct 8, 2024
5963be2
Bump cookie and express in /pinot-controller/src/main/resources (#14189)
dependabot[bot] Oct 8, 2024
bebd2b4
[Multi-stage] Support lookup join (#13966)
Jackie-Jiang Oct 8, 2024
38b7ae2
Enhance rebalancer to also log segments removed (#14180)
Jackie-Jiang Oct 8, 2024
1ea0d35
Updated contributor list in asf.yaml file (#14186)
abhioncbr Oct 9, 2024
77259ba
Adding variation to segment flush size (#14170)
xiangfu0 Oct 9, 2024
58f36a1
Declare annotation processors as compiler plugin config (#14185)
gortiz Oct 9, 2024
2585205
Implement consistent data push for spark 3 segment generation and met…
priyen Oct 9, 2024
4257bcb
Fix Bug in Handling Empty Filters in Time Series (#14192)
ankitsultana Oct 9, 2024
9de57b0
For consuming segment, avoid using setter in IndexLoadingConfig (#14190)
Jackie-Jiang Oct 9, 2024
d016df3
Allow usage of star-tree index with null handling enabled when no nul…
yashmayya Oct 9, 2024
40ea3f9
Support COALESCE as a variadic scalar function (#14195)
yashmayya Oct 9, 2024
372bcd2
Add a quickstart for null handling related queries (#14182)
yashmayya Oct 9, 2024
fbd3e70
Fix bug with server return final aggregation result when null handlin…
yashmayya Oct 9, 2024
8177770
Add NULLIF scalar function (#14203)
yashmayya Oct 10, 2024
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
4 changes: 2 additions & 2 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ github:
collaborators:
- sullis
- yashmayya
- abhioncbr
- shounakmk219
- itschrispeck
- zhtaoxiang
- soumitra-st
- swaminathanmanish
- suddendust
- vrajat
- deepthi912
- timveil
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ cscope.*
.externalToolBuilders/
maven-eclipse.xml
target/
examples/
/examples/
/logs/
bin/
*/bin/
.idea
Expand Down
30 changes: 29 additions & 1 deletion helm/index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,35 @@ entries:
pinot:
- apiVersion: v1
appVersion: 1.0.0
created: "2024-05-30T09:29:30.175007-04:00"
created: "2024-10-04T14:07:23.8044492-04:00"
dependencies:
- condition: pinot.zookeeper.enabled,zookeeper.enabled
name: zookeeper
repository: https://charts.bitnami.com/bitnami
version: 13.x.x
description: Apache Pinot is a realtime distributed OLAP datastore, which is used
to deliver scalable real time analytics with low latency. It can ingest data
from offline data sources (such as Hadoop and flat files) as well as online
sources (such as Kafka). Pinot is designed to scale horizontally.
digest: e1d403bd3315e3e162b70cb3e481f024afcce2a8ccd3cf4193532d8ae1455d5a
home: https://pinot.apache.org/
keywords:
- olap
- analytics
- database
- pinot
maintainers:
- email: dev@pinot.apache.org
name: pinot-dev
name: pinot
sources:
- https://github.com/apache/pinot/tree/master/helm
urls:
- pinot-0.3.0.tgz
version: 0.3.0
- apiVersion: v1
appVersion: 1.0.0
created: "2024-10-04T14:07:23.7984481-04:00"
dependencies:
- condition: pinot.zookeeper.enabled,zookeeper.enabled
name: zookeeper
Expand Down
Binary file added helm/pinot-0.3.0.tgz
Binary file not shown.
2 changes: 1 addition & 1 deletion helm/pinot/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ apiVersion: v1
appVersion: 1.0.0
name: pinot
description: Apache Pinot is a realtime distributed OLAP datastore, which is used to deliver scalable real time analytics with low latency. It can ingest data from offline data sources (such as Hadoop and flat files) as well as online sources (such as Kafka). Pinot is designed to scale horizontally.
version: 0.3.0-SNAPSHOT
version: 0.3.1-SNAPSHOT
keywords:
- olap
- analytics
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public void testRejectGroovyQuery() {
public void testReplicaGroupToQueryInvalidQuery() {
PinotQuery pinotQuery =
CalciteSqlParser.compileToPinotQuery("SET numReplicaGroupsToQuery='illegal'; SELECT COUNT(*) FROM MY_TABLE");
Assert.assertThrows(IllegalStateException.class,
Assert.assertThrows(IllegalArgumentException.class,
() -> BaseSingleStageBrokerRequestHandler.validateRequest(pinotQuery, 10));
}

Expand Down
2 changes: 1 addition & 1 deletion pinot-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<artifactId>auto-service-annotations</artifactId>
</dependency>

<!-- Test -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,38 +53,8 @@ public static boolean isNotDistinctFrom(@Nullable Object obj1, @Nullable Object
}

@Nullable
public static Object coalesce(@Nullable Object obj) {
return coalesceVar(obj);
}

@Nullable
@ScalarFunction(nullableParameters = true)
public static Object coalesce(@Nullable Object obj1, @Nullable Object obj2) {
return coalesceVar(obj1, obj2);
}

@Nullable
@ScalarFunction(nullableParameters = true)
public static Object coalesce(@Nullable Object obj1, @Nullable Object obj2, @Nullable Object obj3) {
return coalesceVar(obj1, obj2, obj3);
}

@Nullable
@ScalarFunction(nullableParameters = true)
public static Object coalesce(@Nullable Object obj1, @Nullable Object obj2, @Nullable Object obj3,
@Nullable Object obj4) {
return coalesceVar(obj1, obj2, obj3, obj4);
}

@Nullable
@ScalarFunction(nullableParameters = true)
public static Object coalesce(@Nullable Object obj1, @Nullable Object obj2, @Nullable Object obj3,
@Nullable Object obj4, @Nullable Object obj5) {
return coalesceVar(obj1, obj2, obj3, obj4, obj5);
}

@Nullable
private static Object coalesceVar(Object... objects) {
@ScalarFunction(nullableParameters = true, isVarArg = true)
public static Object coalesce(Object... objects) {
for (Object o : objects) {
if (o != null) {
return o;
Expand All @@ -94,146 +64,8 @@ private static Object coalesceVar(Object... objects) {
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Object oe) {
return caseWhenVar(c1, o1, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Boolean c10,
@Nullable Object o10, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, c10, o10, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Boolean c10,
@Nullable Object o10, @Nullable Boolean c11, @Nullable Object o11, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, c10, o10, c11, o11, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Boolean c10,
@Nullable Object o10, @Nullable Boolean c11, @Nullable Object o11, @Nullable Boolean c12, @Nullable Object o12,
@Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, c10, o10, c11, o11, c12,
o12, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Boolean c10,
@Nullable Object o10, @Nullable Boolean c11, @Nullable Object o11, @Nullable Boolean c12, @Nullable Object o12,
@Nullable Boolean c13, @Nullable Object o13, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, c10, o10, c11, o11, c12,
o12, c13, o13, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Boolean c10,
@Nullable Object o10, @Nullable Boolean c11, @Nullable Object o11, @Nullable Boolean c12, @Nullable Object o12,
@Nullable Boolean c13, @Nullable Object o13, @Nullable Boolean c14, @Nullable Object o14, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, c10, o10, c11, o11, c12,
o12, c13, o13, c14, o14, oe);
}

@Nullable
@ScalarFunction(nullableParameters = true, names = {"case", "caseWhen"})
public static Object caseWhen(@Nullable Boolean c1, @Nullable Object o1, @Nullable Boolean c2, @Nullable Object o2,
@Nullable Boolean c3, @Nullable Object o3, @Nullable Boolean c4, @Nullable Object o4, @Nullable Boolean c5,
@Nullable Object o5, @Nullable Boolean c6, @Nullable Object o6, @Nullable Boolean c7, @Nullable Object o7,
@Nullable Boolean c8, @Nullable Object o8, @Nullable Boolean c9, @Nullable Object o9, @Nullable Boolean c10,
@Nullable Object o10, @Nullable Boolean c11, @Nullable Object o11, @Nullable Boolean c12, @Nullable Object o12,
@Nullable Boolean c13, @Nullable Object o13, @Nullable Boolean c14, @Nullable Object o14, @Nullable Boolean c15,
@Nullable Object o15, @Nullable Object oe) {
return caseWhenVar(c1, o1, c2, o2, c3, o3, c4, o4, c5, o5, c6, o6, c7, o7, c8, o8, c9, o9, c10, o10, c11, o11, c12,
o12, c13, o13, c14, o14, c15, o15, oe);
}

@Nullable
private static Object caseWhenVar(Object... objs) {
@ScalarFunction(names = {"case", "caseWhen"}, nullableParameters = true, isVarArg = true)
public static Object caseWhen(Object... objs) {
for (int i = 0; i < objs.length - 1; i += 2) {
if (Boolean.TRUE.equals(objs[i])) {
return objs[i + 1];
Expand All @@ -242,4 +74,14 @@ private static Object caseWhenVar(Object... objs) {
// with or without else statement.
return objs.length % 2 == 0 ? null : objs[objs.length - 1];
}

@Nullable
@ScalarFunction(nullableParameters = true)
public static Object nullIf(@Nullable Object obj1, @Nullable Object obj2) {
if (obj1 == null) {
return null;
} else {
return obj1.equals(obj2) ? null : obj1;
}
}
}
Loading