You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by "xiangfu0 (via GitHub)" <gi...@apache.org> on 2025/04/25 19:29:29 UTC
[PR] Fail the config file reading if there are duplicated keys in the file [pinot]
xiangfu0 opened a new pull request, #15648:
URL: https://github.com/apache/pinot/pull/15648
https://github.com/apache/pinot/issues/15646
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "xiangfu0 (via GitHub)" <gi...@apache.org>.
xiangfu0 merged PR #15648:
URL: https://github.com/apache/pinot/pull/15648
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "xiangfu0 (via GitHub)" <gi...@apache.org>.
xiangfu0 commented on code in PR #15648:
URL: https://github.com/apache/pinot/pull/15648#discussion_r2135334331
##########
pinot-spi/src/main/java/org/apache/pinot/spi/env/CommonsConfigurationUtils.java:
##########
@@ -170,6 +178,34 @@ public static PropertiesConfiguration fromFile(@Nullable File file,
return config;
}
+ /**
+ * Instantiate a {@link PropertiesConfiguration} from a {@link File}.
+ * @param file containing properties
+ * @param setDefaultDelimiter representing to set the default list delimiter.
+ * @param ioFactoryKind representing to set IOFactory. It can be null.
+ * @param failOnDuplicateKeys fail the loading when seeing duplicate keys.
+ * @return a {@link PropertiesConfiguration} instance.
+ */
+ public static PropertiesConfiguration fromFile(@Nullable File file, boolean setDefaultDelimiter,
+ @Nullable PropertyIOFactoryKind ioFactoryKind, boolean failOnDuplicateKeys)
+ throws ConfigurationException {
+ if (failOnDuplicateKeys) {
+ PropertiesConfiguration noDuplicateKeysConfig = createNoDuplicateKeysPropertiesConfiguration(ioFactoryKind);
+ // check if file exists, load the existing properties.
+ if (file != null && file.exists()) {
+ FileHandler fileHandler = new FileHandler(noDuplicateKeysConfig);
+ fileHandler.load(file);
+ }
+ PropertiesConfiguration finalConfig = createPropertiesConfiguration(setDefaultDelimiter, ioFactoryKind);
Review Comment:
fileHandler.load(file) to an immutable properties.
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #15648:
URL: https://github.com/apache/pinot/pull/15648#issuecomment-2831577719
## [Codecov](https://app.codecov.io/gh/apache/pinot/pull/15648?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
Attention: Patch coverage is `93.93939%` with `2 lines` in your changes missing coverage. Please review.
> Project coverage is 55.68%. Comparing base [(`c781ff1`)](https://app.codecov.io/gh/apache/pinot/commit/c781ff1fff5bd770311d9da85f22c1df9f10077c?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to head [(`beaff4f`)](https://app.codecov.io/gh/apache/pinot/commit/beaff4f9f6958727197834f1a06a0b33948e5c12?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
> Report is 3 commits behind head on master.
| [Files with missing lines](https://app.codecov.io/gh/apache/pinot/pull/15648?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [...pache/pinot/spi/env/CommonsConfigurationUtils.java](https://app.codecov.io/gh/apache/pinot/pull/15648?src=pr&el=tree&filepath=pinot-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fpinot%2Fspi%2Fenv%2FCommonsConfigurationUtils.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-cGlub3Qtc3BpL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9waW5vdC9zcGkvZW52L0NvbW1vbnNDb25maWd1cmF0aW9uVXRpbHMuamF2YQ==) | 93.93% | [1 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/pinot/pull/15648?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
> :exclamation: There is a different number of reports uploaded between BASE (c781ff1) and HEAD (beaff4f). Click for more details.
>
> <details><summary>HEAD has 67 uploads less than BASE</summary>
>
>| Flag | BASE (c781ff1) | HEAD (beaff4f) |
>|------|------|------|
>|unittests|6|1|
>|unittests1|3|1|
>|java-21|10|1|
>|skip-bytebuffers-false|8|1|
>|temurin|15|1|
>|skip-bytebuffers-true|4|0|
>|unittests2|3|0|
>|java-11|5|0|
>|integration|9|0|
>|integration2|3|0|
>|integration1|3|0|
>|custom-integration1|3|0|
></details>
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #15648 +/- ##
============================================
- Coverage 62.83% 55.68% -7.16%
+ Complexity 1384 682 -702
============================================
Files 2865 2240 -625
Lines 162878 121196 -41682
Branches 24925 19330 -5595
============================================
- Hits 102343 67484 -34859
+ Misses 52810 48160 -4650
+ Partials 7725 5552 -2173
```
| [Flag](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [custom-integration1](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [integration](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [integration1](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [integration2](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [java-11](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [java-21](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `55.68% <93.93%> (-7.14%)` | :arrow_down: |
| [skip-bytebuffers-false](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `55.68% <93.93%> (-7.15%)` | :arrow_down: |
| [skip-bytebuffers-true](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [temurin](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `55.68% <93.93%> (-7.16%)` | :arrow_down: |
| [unittests](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `55.68% <93.93%> (-7.15%)` | :arrow_down: |
| [unittests1](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `55.68% <93.93%> (-0.03%)` | :arrow_down: |
| [unittests2](https://app.codecov.io/gh/apache/pinot/pull/15648/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/pinot/pull/15648?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #15648:
URL: https://github.com/apache/pinot/pull/15648#discussion_r2138020083
##########
pinot-spi/src/main/java/org/apache/pinot/spi/env/CommonsConfigurationUtils.java:
##########
@@ -411,4 +486,22 @@ public static PropertiesConfiguration.PropertiesWriter getPropertiesWriterFromWr
propertiesWriter.setGlobalSeparator(VERSIONED_CONFIG_SEPARATOR);
return propertiesWriter;
}
+
+ /**
+ * A custom {@link PropertiesConfiguration} implementation that throws an exception when duplicate keys are added.
+ * This should only be used when reading from a file, after this, we should copy the content to
+ * a {@link PropertiesConfiguration} object.
+ */
+ public static class NoDuplicateKeyPropertiesConfiguration extends PropertiesConfiguration {
+ private final Set<String> _seenKeys = new HashSet<>();
+
+ @Override
+ protected void addPropertyDirect(String key, Object value) {
+ if (_seenKeys.contains(key)) {
+ throw new IllegalStateException("Duplicate key detected: " + key);
Review Comment:
Instead of throwing an IllegalStateException when a duplicate key is detected, consider wrapping or converting it to a ConfigurationException. This will ensure that the exception aligns with the expected exception type in the tests and maintains consistent API behavior.
```suggestion
throw new ConfigurationException("Duplicate key detected: " + key);
```
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "xiangfu0 (via GitHub)" <gi...@apache.org>.
xiangfu0 commented on PR #15648:
URL: https://github.com/apache/pinot/pull/15648#issuecomment-2850973104
> > > I think duplicate key is the standard way of configuring array in `configuration2` to avoid problem of escaping special character. Please make sure the change is backward compatible
> >
> >
> > Yes, the question here is:
> >
> > 1. Is this feature ever used?
> > 2. Seems we saw more problems than the benefits for this feature.
> > 3. Regarding escaping special characters, which config is using it maybe we can make a special handling for that.
>
> I think this is the default behavior for `configuration2`. Given the tests are passing, do we have any array field in our config?
I modify the tests and also for now I only make it apply for the ServiceStartable configs. Metadata properties is still using the current behavior.
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "xiangfu0 (via GitHub)" <gi...@apache.org>.
xiangfu0 commented on PR #15648:
URL: https://github.com/apache/pinot/pull/15648#issuecomment-2847503767
> I think duplicate key is the standard way of configuring array in `configuration2` to avoid problem of escaping special character. Please make sure the change is backward compatible
Yes, the question here is:
1. Is this feature ever used?
2. Seems we saw more problems than the benefits for this feature.
3. Regarding escaping special characters, which config is using it maybe we can make a special handling for that.
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "Jackie-Jiang (via GitHub)" <gi...@apache.org>.
Jackie-Jiang commented on code in PR #15648:
URL: https://github.com/apache/pinot/pull/15648#discussion_r2076495490
##########
pinot-spi/src/main/java/org/apache/pinot/spi/env/CommonsConfigurationUtils.java:
##########
@@ -170,6 +178,34 @@ public static PropertiesConfiguration fromFile(@Nullable File file,
return config;
}
+ /**
+ * Instantiate a {@link PropertiesConfiguration} from a {@link File}.
+ * @param file containing properties
+ * @param setDefaultDelimiter representing to set the default list delimiter.
+ * @param ioFactoryKind representing to set IOFactory. It can be null.
+ * @param failOnDuplicateKeys fail the loading when seeing duplicate keys.
+ * @return a {@link PropertiesConfiguration} instance.
+ */
+ public static PropertiesConfiguration fromFile(@Nullable File file, boolean setDefaultDelimiter,
+ @Nullable PropertyIOFactoryKind ioFactoryKind, boolean failOnDuplicateKeys)
Review Comment:
(minor) Can we move all handling into this method, and make the one on line 169 call this method with `failOnDeplicateKeys = false`?
##########
pinot-spi/src/main/java/org/apache/pinot/spi/env/CommonsConfigurationUtils.java:
##########
@@ -85,13 +87,18 @@ public static PropertiesConfiguration fromPath(String path)
public static PropertiesConfiguration fromPath(@Nullable String path, boolean setDefaultDelimiter,
@Nullable PropertyIOFactoryKind ioFactoryKind)
Review Comment:
Can we also include `boolean failOnDuplicateKeys` as a parameter so that it is clear to the caller that no duplicate keys are expected?
##########
pinot-spi/src/main/java/org/apache/pinot/spi/env/CommonsConfigurationUtils.java:
##########
@@ -170,6 +178,34 @@ public static PropertiesConfiguration fromFile(@Nullable File file,
return config;
}
+ /**
+ * Instantiate a {@link PropertiesConfiguration} from a {@link File}.
+ * @param file containing properties
+ * @param setDefaultDelimiter representing to set the default list delimiter.
+ * @param ioFactoryKind representing to set IOFactory. It can be null.
+ * @param failOnDuplicateKeys fail the loading when seeing duplicate keys.
+ * @return a {@link PropertiesConfiguration} instance.
+ */
+ public static PropertiesConfiguration fromFile(@Nullable File file, boolean setDefaultDelimiter,
+ @Nullable PropertyIOFactoryKind ioFactoryKind, boolean failOnDuplicateKeys)
+ throws ConfigurationException {
+ if (failOnDuplicateKeys) {
+ PropertiesConfiguration noDuplicateKeysConfig = createNoDuplicateKeysPropertiesConfiguration(ioFactoryKind);
+ // check if file exists, load the existing properties.
+ if (file != null && file.exists()) {
+ FileHandler fileHandler = new FileHandler(noDuplicateKeysConfig);
+ fileHandler.load(file);
+ }
+ PropertiesConfiguration finalConfig = createPropertiesConfiguration(setDefaultDelimiter, ioFactoryKind);
Review Comment:
Any specific reason why we need to make a copy?
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "Jackie-Jiang (via GitHub)" <gi...@apache.org>.
Jackie-Jiang commented on code in PR #15648:
URL: https://github.com/apache/pinot/pull/15648#discussion_r3024079426
##########
pinot-tools/src/main/java/org/apache/pinot/tools/utils/PinotConfigUtils.java:
##########
@@ -252,6 +257,26 @@ public static int getAvailablePort() {
}
}
+ private static void validateNoDuplicateKeys(File configFile)
+ throws ConfigurationException {
+ try (Reader reader = Files.newBufferedReader(configFile.toPath(), StandardCharsets.UTF_8)) {
+ DuplicateKeyTrackingReader propertiesReader = new DuplicateKeyTrackingReader(reader);
Review Comment:
This should also be added to the try-with-resource block
##########
pinot-tools/src/main/java/org/apache/pinot/tools/utils/PinotConfigUtils.java:
##########
@@ -252,6 +257,26 @@ public static int getAvailablePort() {
}
}
+ private static void validateNoDuplicateKeys(File configFile)
+ throws ConfigurationException {
+ try (Reader reader = Files.newBufferedReader(configFile.toPath(), StandardCharsets.UTF_8)) {
+ DuplicateKeyTrackingReader propertiesReader = new DuplicateKeyTrackingReader(reader);
+ Map<String, Integer> firstDefinitionLineByKey = new HashMap<>();
+ while (propertiesReader.nextProperty()) {
+ String key = propertiesReader.getPropertyName();
+ Integer firstDefinitionLine =
Review Comment:
(minor) use `put` should be enough
##########
pom.xml:
##########
@@ -2875,7 +2875,6 @@
<exclude>**/*.json</exclude>
<exclude>**/*.schema</exclude>
<exclude>**/*.sql</exclude>
-
Review Comment:
(nit) Revert
##########
pinot-tools/src/main/java/org/apache/pinot/tools/utils/PinotConfigUtils.java:
##########
@@ -252,6 +257,26 @@ public static int getAvailablePort() {
}
}
+ private static void validateNoDuplicateKeys(File configFile)
+ throws ConfigurationException {
+ try (Reader reader = Files.newBufferedReader(configFile.toPath(), StandardCharsets.UTF_8)) {
+ DuplicateKeyTrackingReader propertiesReader = new DuplicateKeyTrackingReader(reader);
Review Comment:
Is there any common util class for this?
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "Jackie-Jiang (via GitHub)" <gi...@apache.org>.
Jackie-Jiang commented on PR #15648:
URL: https://github.com/apache/pinot/pull/15648#issuecomment-2848268990
> > I think duplicate key is the standard way of configuring array in `configuration2` to avoid problem of escaping special character. Please make sure the change is backward compatible
>
> Yes, the question here is:
>
> 1. Is this feature ever used?
> 2. Seems we saw more problems than the benefits for this feature.
> 3. Regarding escaping special characters, which config is using it maybe we can make a special handling for that.
I think this is the default behavior for `configuration2`. Given the tests are passing, do we have any array field in our config?
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Fail the config file reading if there are duplicated keys in the file [pinot]
Posted by "xiangfu0 (via GitHub)" <gi...@apache.org>.
xiangfu0 commented on PR #15648:
URL: https://github.com/apache/pinot/pull/15648#issuecomment-4185146578
📝 Documentation PR: https://github.com/pinot-contrib/pinot-docs/pull/619
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org