You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by "shuwenwei (via GitHub)" <gi...@apache.org> on 2026/06/16 07:29:59 UTC
[PR] Support readTsFile table function for external TsFiles [iotdb]
shuwenwei opened a new pull request, #17951:
URL: https://github.com/apache/iotdb/pull/17951
## Description
This PR adds relational `readTsFile` table function support for querying external TsFiles.
Main changes:
- Add `readTsFile` TVF planning/analyze support and schema collection through `TsFileSchemaCollector`.
- Validate explicit file paths by opening them as TsFiles, while directory inputs recursively scan `.tsfile` files and skip invalid TsFile contents by magic-number validation.
- Add external TsFile scan and aggregation scan plan nodes/operators.
- Add `ExternalTsFileQueryResource` to manage external TsFile readers, task partitioning, run-file merge reads, temporary files, and execution-lifetime memory reservation cleanup.
- Route related user-facing messages through DataNode query i18n messages.
- Add UT/IT coverage for external TsFile query resources and the `readTsFile` table function path.
## Tests
Not run in this turn.
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "JackieTien97 (via GitHub)" <gi...@apache.org>.
JackieTien97 merged PR #17951:
URL: https://github.com/apache/iotdb/pull/17951
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4738866175
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [D Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=e383ee5a1387360c1f5d764c94dd693c6a65961392bca8056316df47fa4ec34d -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4725248558
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=b88a29a4aef1c8cf297d0f31f3ac616bc2ad0755fff5b6ac62fd5592468435a2 -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4716105122
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=c94894334154eb8a5dbb0ca68cb6f93a302243b0f8f8024b9ef47bc0233cb2cb -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4717430894
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=f20271611491f6be7926cfabe756dcd068b372cf2d38e7bf0d8a41cdca512d9d -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4727887061
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [D Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=744dd231822a4473bee2174b13d256a5800bfd5a76c13f5144e809b82286451a -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4716319916
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=c94894334154eb8a5dbb0ca68cb6f93a302243b0f8f8024b9ef47bc0233cb2cb -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "JackieTien97 (via GitHub)" <gi...@apache.org>.
JackieTien97 commented on code in PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#discussion_r3432446560
##########
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java:
##########
@@ -632,6 +642,48 @@ public void setDevicePathsToContext(Map<IDeviceID, DeviceContext> devicePathsToC
this.devicePathsToContext = devicePathsToContext;
}
+ public void addExternalTsFileQueryResource(
+ ExternalTsFileQueryResource externalTsFileQueryResource) {
+ this.externalTsFileQueryResource = externalTsFileQueryResource;
Review Comment:
check here, if externalTsFileQueryResource is null, in case of one FI contains two read_tsfile.(maybe won't happen now, but someone in future may chnage this, like we may put left and right child of Join in one FI)
##########
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/ExternalTsFileAggTableScanOperator.java:
##########
@@ -0,0 +1,162 @@
+/*
+ * 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.iotdb.db.queryengine.execution.operator.source.relational;
+
+import org.apache.iotdb.commons.path.AlignedFullPath;
+import org.apache.iotdb.db.i18n.DataNodeQueryMessages;
+import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
+import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanUtil;
+import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.read_tsfile.ExternalTsFileQueryDataSource;
+import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.read_tsfile.ExternalTsFileQueryResource;
+import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.read_tsfile.ExternalTsFileQueryResource.DeviceTaskRunReader;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry;
+import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource;
+import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource;
+import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
+
+import org.apache.tsfile.file.metadata.AbstractAlignedTimeSeriesMetadata;
+import org.apache.tsfile.utils.Binary;
+import org.apache.tsfile.utils.RamUsageEstimator;
+
+import java.io.IOException;
+
+import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.constructAlignedPath;
+
+public class ExternalTsFileAggTableScanOperator extends DefaultAggTableScanOperator {
+ private static final long INSTANCE_SIZE =
+ RamUsageEstimator.shallowSizeOfInstance(ExternalTsFileAggTableScanOperator.class);
+
+ private final int deviceTaskPartitionIndex;
+ private DeviceTaskRunReader deviceTaskReader;
+
+ public ExternalTsFileAggTableScanOperator(
+ AbstractAggTableScanOperatorParameter parameter, int deviceTaskPartitionIndex) {
+ super(parameter);
+ this.deviceTaskPartitionIndex = deviceTaskPartitionIndex;
+ }
+
+ @Override
+ protected void constructAlignedSeriesScanUtil() {
+ DeviceEntry deviceEntry =
+ !hasCurrentRealDeviceEntry()
+ ? new AlignedDeviceEntry(SeriesScanUtil.EMPTY_DEVICE_ID, new Binary[0])
+ : deviceEntries.get(currentDeviceIndex);
+ this.seriesScanUtil =
+ new ExternalTsFileSeriesScanUtil(
+ constructAlignedPath(
+ deviceEntry, measurementColumnNames, measurementSchemas, allSensors),
+ scanOrder,
+ seriesScanOptions,
+ ((OperatorContext) operatorContext).getInstanceContext(),
+ true,
+ measurementColumnTSDataTypes,
+ this::loadTimeSeriesMetadata);
+ }
+
+ private AbstractAlignedTimeSeriesMetadata loadTimeSeriesMetadata(
+ TsFileResource resource, AlignedFullPath alignedPath) throws IOException {
+ if (!hasCurrentRealDeviceEntry()) {
+ return null;
+ }
+ return ExternalTsFileSeriesScanUtil.loadTimeSeriesMetadata(
+ resource,
+ alignedPath,
+ deviceEntries.get(currentDeviceIndex).getDeviceID(),
+ deviceTaskReader.getCurrentDeviceOffsetMap().get(resource),
+ ((OperatorContext) operatorContext).getInstanceContext(),
+ seriesScanOptions.getGlobalTimeFilter());
+ }
+
+ @Override
+ public void initQueryDataSource(IQueryDataSource dataSource) {
+ ExternalTsFileQueryResource externalTsFileQueryResource =
+ ((ExternalTsFileQueryDataSource) dataSource).getExternalTsFileQueryResource();
+ if (hasCurrentRealDeviceEntry() && deviceTaskReader == null) {
+ deviceTaskReader =
+ externalTsFileQueryResource.getDeviceTaskRunReader(deviceTaskPartitionIndex);
+ }
+ super.initQueryDataSource(
+ hasCurrentRealDeviceEntry() ? updateCurrentDeviceQueryDataSource() : dataSource);
+ }
+
+ @Override
+ protected void moveToNextDevice() throws Exception {
+ nextDevice();
+ inputTsBlock = null;
+
+ if (currentDeviceIndex < deviceCount) {
+ constructAlignedSeriesScanUtil();
+ queryDataSource =
+ hasCurrentRealDeviceEntry() ? updateCurrentDeviceQueryDataSource() : queryDataSource;
+ seriesScanUtil.initQueryDataSource(queryDataSource);
+ }
+
+ if (currentDeviceIndex >= deviceCount) {
+ timeIterator.setFinished();
+ }
+ }
+
+ private boolean hasCurrentRealDeviceEntry() {
+ return !deviceEntries.isEmpty()
+ && currentDeviceIndex < deviceEntries.size()
+ && deviceEntries.get(currentDeviceIndex) != null;
+ }
+
+ private QueryDataSource updateCurrentDeviceQueryDataSource() {
+ try {
+ if (!deviceTaskReader.nextDevice()) {
+ throw new IllegalStateException(
+ DataNodeQueryMessages
+ .UNEXPECTED_END_OF_EXTERNAL_TSFILE_DEVICE_TASK_READER_AT_DEVICE_INDEX
+ + currentDeviceIndex);
+ }
+ DeviceEntry expectedDeviceEntry = deviceEntries.get(currentDeviceIndex);
+ DeviceEntry currentDeviceEntry = deviceTaskReader.getCurrentDevice();
+ if (!expectedDeviceEntry.getDeviceID().equals(currentDeviceEntry.getDeviceID())) {
+ throw new IllegalStateException(
+ String.format(
+ DataNodeQueryMessages
+ .EXTERNAL_TSFILE_DEVICE_TASK_READER_IS_NOT_ALIGNED_WITH_DEVICE_ENTRIES,
+ currentDeviceIndex,
+ expectedDeviceEntry.getDeviceID(),
+ currentDeviceEntry.getDeviceID()));
+ }
+ return deviceTaskReader.getCurrentDeviceQueryDataSource();
+ } catch (IOException e) {
+ throw new RuntimeException(
+ DataNodeQueryMessages.FAILED_TO_UPDATE_EXTERNAL_TSFILE_DEVICE_RESOURCES, e);
+ }
+ }
+
+ @Override
+ public void close() throws Exception {
+ if (deviceTaskReader != null) {
+ deviceTaskReader.close();
+ deviceTaskReader = null;
+ }
+ super.close();
Review Comment:
```suggestion
Exception exception = null;
try {
if (deviceTaskReader != null) {
deviceTaskReader.close();
}
} catch (Exception e) {
exception = e;
} finally {
deviceTaskReader = null;
try {
super.close();
} catch (Exception e) {
if (exception == null) {
exception = e;
} else {
exception.addSuppressed(e);
}
}
}
if (exception != null) {
throw exception;
}
```
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4725683373
I found one new issue that should be fixed before merging:
ead_tsfile does not appear to have an authorization gate for reading external server-side files. It is registered as a built-in table function in TableMetadataImpl.java, and StatementAnalyzer.visitTableFunctionInvocation() directly analyzes it. ReadTsFileTableFunction.analyze() then reads the user-supplied PATHS on the DataNode filesystem to collect TsFile schemas. This is a different capability from selecting an IoTDB table: any SQL user who can invoke the table function can ask the DataNode process to inspect external local paths, except for the current data-dir exclusion.
Please add an explicit privilege boundary for this function, for example admin / SYSTEM / MAINTAIN or another clearly chosen system privilege, before any path access or schema collection happens.
Also, the two earlier issues still look not fully addressed: external TsFile resources can still leak if planning/start throws after the resource is created, and ATTRIBUTE columns are still silently dropped instead of being supported or rejected explicitly.
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4727176168
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=46bdcfe942f495bed400ca5aadd435241d2055bd48227e811908605fce7c7c28 -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4718011752
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=759a0abb17adb7a053ed605eaea03b8b59d49474b5a34936f489d481c477ff4a -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4764206349
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [D Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=e383ee5a1387360c1f5d764c94dd693c6a65961392bca8056316df47fa4ec34d -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4725422749
## [Codecov](https://app.codecov.io/gh/apache/iotdb/pull/17951?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `25.91549%` with `1052 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 41.15%. Comparing base ([`72e72dd`](https://app.codecov.io/gh/apache/iotdb/commit/72e72dd2c4e37a9f15b3d01865c40345622fed9f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`81c3327`](https://app.codecov.io/gh/apache/iotdb/commit/81c3327fd326d3fd4ca4b531176e65f6fba187e9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
:warning: Report is 26 commits behind head on master.
| [Files with missing lines](https://app.codecov.io/gh/apache/iotdb/pull/17951?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [...function/tvf/readTsFile/TsFileSchemaCollector.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Frelational%2Ffunction%2Ftvf%2FreadTsFile%2FTsFileSchemaCollector.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9yZWxhdGlvbmFsL2Z1bmN0aW9uL3R2Zi9yZWFkVHNGaWxlL1RzRmlsZVNjaGVtYUNvbGxlY3Rvci5qYXZh) | 0.00% | [169 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...on/tvf/readTsFile/ExternalTsFileQueryResource.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Frelational%2Ffunction%2Ftvf%2FreadTsFile%2FExternalTsFileQueryResource.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9yZWxhdGlvbmFsL2Z1bmN0aW9uL3R2Zi9yZWFkVHNGaWxlL0V4dGVybmFsVHNGaWxlUXVlcnlSZXNvdXJjZS5qYXZh) | 61.98% | [149 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...nction/tvf/readTsFile/ReadTsFileTableFunction.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Frelational%2Ffunction%2Ftvf%2FreadTsFile%2FReadTsFileTableFunction.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9yZWxhdGlvbmFsL2Z1bmN0aW9uL3R2Zi9yZWFkVHNGaWxlL1JlYWRUc0ZpbGVUYWJsZUZ1bmN0aW9uLmphdmE=) | 0.00% | [119 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...nner/distribute/TableDistributedPlanGenerator.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Frelational%2Fplanner%2Fdistribute%2FTableDistributedPlanGenerator.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9yZWxhdGlvbmFsL3BsYW5uZXIvZGlzdHJpYnV0ZS9UYWJsZURpc3RyaWJ1dGVkUGxhbkdlbmVyYXRvci5qYXZh) | 21.31% | [96 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...relational/ExternalTsFileAggTableScanOperator.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fexecution%2Foperator%2Fsource%2Frelational%2FExternalTsFileAggTableScanOperator.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvZXhlY3V0aW9uL29wZXJhdG9yL3NvdXJjZS9yZWxhdGlvbmFsL0V4dGVybmFsVHNGaWxlQWdnVGFibGVTY2FuT3BlcmF0b3IuamF2YQ==) | 0.00% | [59 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...ce/relational/ExternalTsFileTableScanOperator.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fexecution%2Foperator%2Fsource%2Frelational%2FExternalTsFileTableScanOperator.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvZXhlY3V0aW9uL29wZXJhdG9yL3NvdXJjZS9yZWxhdGlvbmFsL0V4dGVybmFsVHNGaWxlVGFibGVTY2FuT3BlcmF0b3IuamF2YQ==) | 0.00% | [53 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...ational/planner/node/AggregationTableScanNode.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Frelational%2Fplanner%2Fnode%2FAggregationTableScanNode.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9yZWxhdGlvbmFsL3BsYW5uZXIvbm9kZS9BZ2dyZWdhdGlvblRhYmxlU2Nhbk5vZGUuamF2YQ==) | 2.08% | [47 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...e/plan/planner/DataNodeTableOperatorGenerator.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Fplanner%2FDataNodeTableOperatorGenerator.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9wbGFubmVyL0RhdGFOb2RlVGFibGVPcGVyYXRvckdlbmVyYXRvci5qYXZh) | 2.70% | [36 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...ngine/plan/relational/planner/RelationPlanner.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fplan%2Frelational%2Fplanner%2FRelationPlanner.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvcGxhbi9yZWxhdGlvbmFsL3BsYW5uZXIvUmVsYXRpb25QbGFubmVyLmphdmE=) | 7.69% | [36 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...e/iotdb/db/queryengine/common/MPPQueryContext.java](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&filepath=iotdb-core%2Fdatanode%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fiotdb%2Fdb%2Fqueryengine%2Fcommon%2FMPPQueryContext.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-aW90ZGItY29yZS9kYXRhbm9kZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvaW90ZGIvZGIvcXVlcnllbmdpbmUvY29tbW9uL01QUFF1ZXJ5Q29udGV4dC5qYXZh) | 3.44% | [28 Missing :warning: ](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| ... and [28 more](https://app.codecov.io/gh/apache/iotdb/pull/17951?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #17951 +/- ##
============================================
+ Coverage 41.07% 41.15% +0.07%
Complexity 318 318
============================================
Files 5248 5269 +21
Lines 363998 367276 +3278
Branches 47026 47502 +476
============================================
+ Hits 149523 151144 +1621
- Misses 214475 216132 +1657
```
</details>
[:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/iotdb/pull/17951?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>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4729265492
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [D Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=5897930e00238f5c4403498db5842f64b86b576bd9eba3831a4f1b1048171532 -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4729587162
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [D Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=5897930e00238f5c4403498db5842f64b86b576bd9eba3831a4f1b1048171532 -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Support readTsFile table function for external TsFiles [iotdb]
Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17951:
URL: https://github.com/apache/iotdb/pull/17951#issuecomment-4727553180
## [](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) **Quality Gate failed**
Failed conditions
 [E Reliability Rating on New Code](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951) (required ≥ A)
<!-- sqra:qg_revision=c94894334154eb8a5dbb0ca68cb6f93a302243b0f8f8024b9ef47bc0233cb2cb -->
<!-- sqra-placement-anchor -->
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17951)
##
 Catch issues before they fail your Quality Gate with our IDE extension  [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)
--
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: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org