Gabriel39 commented on code in PR #66297:
URL: https://github.com/apache/doris/pull/66297#discussion_r3690582804
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java:
##########
@@ -940,7 +935,8 @@ public void addPlannerHook(PlannerHook plannerHook) {
public void loadSnapshots(TableIf specificTable, Optional<TableSnapshot>
tableSnapshot,
Optional<TableScanParams> scanParams) {
if (specificTable instanceof MvccTable) {
- MvccTableInfo mvccTableInfo = new MvccTableInfo(specificTable);
+ MvccTableInfo mvccTableInfo = new MvccTableInfo(specificTable,
+ versionKeyOf(tableSnapshot, scanParams));
if (!snapshots.containsKey(mvccTableInfo)) {
Review Comment:
Valid. Canonical resolved startup options are stored with the statement
snapshot and seeded into matching aliases.
##########
fe/be-java-extensions/paimon-connector/src/main/java/org/apache/doris/paimon/PaimonJniScanner.java:
##########
@@ -571,18 +665,27 @@ static Optional<Long> parseDataSizeBytes(String value) {
private void initTable() {
Preconditions.checkState(params.containsKey("serialized_table"));
table = PaimonUtils.deserialize(params.get("serialized_table"));
+ table = applyDefaultReadBatchSize(table, batchSize);
+ paimonAllFieldNames = PaimonUtils.getFieldNames(this.table.rowType());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("paimonAllFieldNames:{}", paimonAllFieldNames);
+ }
+ }
+
+ static Table applyDefaultReadBatchSize(Table table, int dorisBatchSize) {
+ if (table.options().containsKey(CoreOptions.READ_BATCH_SIZE.key())) {
Review Comment:
Valid. The scanner independently rejects invalid serialized batch sizes from
older senders.
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonExternalTable.java:
##########
@@ -248,7 +263,11 @@ public BaseAnalysisTask createAnalysisTask(AnalysisInfo
info) {
public long fetchRowCount() {
makeSureInitialized();
long rowCount = 0;
- List<Split> splits =
getBasePaimonTable().newReadBuilder().newScan().plan().splits();
+ Table effectiveTable = getBasePaimonTable();
+ // Statistics and row-count cache planning run before ScanNode and
must not reach an
+ // unsafe manifest executor, even when the foreground relation later
supplies an override.
+ PaimonReaderOptions.validateEffectiveTable(effectiveTable);
Review Comment:
Valid. Manifest-planning consumers now build runtime-capped execution
copies, including hidden system sources.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]