-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Introduce Segment Schema Publishing and Polling for Efficient Datasource Schema Building #15817
Merged
cryptoe
merged 281 commits into
apache:master
from
findingrish:coordinator_schema_read_write
Apr 24, 2024
+9,306
−1,889
Merged
Changes from 1 commit
Commits
Show all changes
281 commits
Select commit
Hold shift + click to select a range
33a8dd5
Remove enabled field from SegmentMetadataCacheConfig
findingrish 7a7ca55
Add class to manage druid table information in SegmentMetadataCache, …
findingrish eb6a145
Merge remote-tracking branch 'origin/master' into coordinator_builds_…
findingrish b9fb83d
Minor refactoring in SegmentMetadataCache
findingrish aa2bfe7
Make SegmentMetadataCache generic
findingrish e97dcda
Add a generic abstract class for segment metadata cache
findingrish 7badce1
Rename SegmentMetadataCache to CoordinatorSegmentMetadataCache
findingrish 25cdce6
Rename PhysicalDataSourceMetadataBuilder to PhysicalDataSourceMetadat…
findingrish 5f5ad18
Fix json property key name in DataSourceInformation
findingrish 08e949e
Add validation in MetadataResource#getAllUsedSegments, update javadocs
findingrish 80fc09d
Minor changes
findingrish 4217cd8
Minor change
findingrish 8b7e483
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish d6ac350
Update base property name for query config classes in Coordinator
findingrish 533236b
Log ds schema change when polling from coordinator
findingrish 70f0888
update the logic to determine is_active status in segments table for …
findingrish a176bfe
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish b32dfd6
Update the logic to set numRows in the sys segments table, add comments
findingrish 17417b5
Rename config druid.coordinator.segmentMetadataCache.enabled to druid…
findingrish 6a395a9
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 907ace3
Report cache init time irrespective of the awaitInitializationOnStart…
findingrish cf68c38
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 441f37a
Report metric for fetching schema from coordinator
findingrish bd5b048
Add auth check in api to return dataSourceInformation, report metrics…
findingrish 933d8d1
Fix bug in Coordinator api to return dataSourceInformation
findingrish 9e7e364
Minor change
findingrish e7356ce
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 5d16148
Address comments around docs, minor renaming
findingrish d8884be
Remove null check from MetadataResource#getDataSourceInformation
findingrish 0f0805a
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish e129d3e
Install cache module in Coordinator, if feature is enabled and beOver…
findingrish b4042c6
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 01c27c9
Minor change in QueryableCoordinatorServerView
findingrish 87c9873
Remove QueryableCoordinatorServerView, add a new QuerySegmentWalker i…
findingrish 971b347
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 89d3845
fix build
findingrish 270dbd5
fix build
findingrish 2da23b8
Fix spelling, intellij-inspection, codeql bug
findingrish 6f568a6
undo some changes in CachingClusteredClientTest
findingrish fe229c0
minor changes
findingrish 473b25c
Fix typo in metric name
findingrish 39fb248
temporarily enable feature on ITs
findingrish cac695a
fix checkstyle issue
findingrish eb3e3c1
Changes in CliCoordinator to conditionally add segment metadata cache…
findingrish 30438f4
temporary changes to debug IT failure
findingrish e88ad00
revert temporary changes in gha
findingrish 61d130b
revert temporary changes to run ITs with this feature
findingrish 2e4c45b
update docs with the config for enabling feature
findingrish 255cf2c
update docs with the config for enabling feature
findingrish 1a6dfc5
Add IT for the feature
findingrish a961501
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 2e65726
Merge branch 'coordinator_builds_ds_schema' of github.com:findingrish…
findingrish 4b51c42
Changes in BrokerSegmentMetadataCache to poll schema for all the loca…
findingrish a4e2097
Address review comments
findingrish 3ca03c9
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 902abd3
Run DruidSchemaInternRowSignatureBenchmark using BrokerSegmentMetadat…
findingrish bcab458
Address feedback
findingrish 32a4065
Simplify logic for setting isRealtime in sys segments table
findingrish 6b04ee7
Remove forbidden api invocation
findingrish cb93e43
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish 152c480
Debug log when coordinator poll fails
findingrish 80c6d26
Fix CoordinatorSegmentMetadataCacheTest
findingrish 9cca98e
Merge remote-tracking branch 'upstream/master' into coordinator_build…
findingrish bb69cde
Minor changes
findingrish a604e65
Initial class for persisting and retrieving segment schema
findingrish f2d8a5e
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 37ac4a7
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 629f3ad
fix conflicts
findingrish af34c34
Revert changes in SegmentLoadInfo
findingrish 4a4f1b0
Remove segmentSchemaMapping table
findingrish b142b29
Initial commit
findingrish 035a884
Outline
findingrish 7935349
Revert some changes
findingrish 26ee22f
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 1555592
minor changes
findingrish ccd2c42
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 900dad5
Minor changes
findingrish 45423fc
Add kill task, update schema persist code
findingrish 33cfb75
Initial task side changes to publish schema
findingrish 6c7e0d5
Changes to publish schema for streaming task
findingrish 85594a7
Update schema table
findingrish 72f671c
Fix build
findingrish ecc8fc4
Changes to publish realtime segment schema, poll, cache and use it fo…
findingrish 566d09b
Publish schema for batch task
findingrish c81b90b
Remove design file
findingrish 3fb3da5
Add MinimalSegmentSchemas class to pass segment schema from task to o…
findingrish 8c7bd0e
Fix build
findingrish 9fc3f0f
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 6208486
Revert some changes
findingrish 96ec515
Fix build KillUnusedSegmentsTaskTest
findingrish 3f7e9c0
Fix intellij-inspection failures
findingrish f9dde90
checkstyle
findingrish 034d1ef
Add more UTs
findingrish ee303da
Add test to verify changes in CoordinatorSegmentMetadataCache
findingrish 1d1e983
Fix test failures in indexing and server module
findingrish 500c375
Fix checkstyle
findingrish d9bc9bc
Fix DatasourceOptimizerTest
findingrish 9e89aed
Fix ConcurrentReplaceAndAppendTest
findingrish 6210504
Revert some change
findingrish a0d2886
Fix KinesisIndexTaskTest
findingrish 88826f7
Test to up the coverage
findingrish 8e7539e
Minor change
findingrish a3343ff
checkstyle
findingrish 9852f9a
Fix test
findingrish fbf1189
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish d1f3180
Create schema table and alter segments table only when feature is ena…
findingrish ffc8e06
Fix test
findingrish cede729
Run KillUnreferencedSegmentSchemas duty only when the feature is enabled
findingrish 264b19e
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 052d026
Fix sql based ingestion
findingrish 96c05b1
Fix issues in passing feature flag to task
findingrish 17ca156
Temp changes
findingrish 0b49546
Retrigger build
findingrish 5607196
MSQ side changes to publish segment schema
findingrish ab5c0cf
Fix bug in segment table creation
findingrish f417abb
checkstyle
findingrish 0ac4c83
Build segment schema before the directory is removed
findingrish d8cd78e
Remove logging
findingrish b66a1f0
Fix centralized-datasource-schema IT
findingrish b1b9529
Temp changes
findingrish e8a6d9b
run all IT with the feature
findingrish 7cf889d
test changes
findingrish e0e97ba
Add docs, checkstyle, minor code changes
findingrish 9175e93
Revert changes in integration-tests-ex
findingrish aa52df0
Revert changes in examples
findingrish 9fdeedd
Revert change in MetadataStorageUpdaterJobSpec
findingrish fd4e9f6
Revert changes in integration-tests environment configs
findingrish e86131c
Minor code changes
findingrish 5d55539
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 5a19650
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 348a72c
CoordinatorSegmentMetadataCache refresh is executed only on leader node
findingrish 5e9e58f
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish f2e9488
Add debug logging
findingrish 564e038
Fix build
findingrish 88b0146
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 2ad6639
Fix build
findingrish c7980b0
Add exception handling in /druid/coordinator/v1/metadata/segments api
findingrish 39f9328
Fix bug where existing schema is not being associated with segment
findingrish 924268d
checkstyle
findingrish e14ab29
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish ca33d8b
Fix build
findingrish cfece06
Fix build
findingrish e103336
Fix IndexerSQLMetadataStorageCoordinatorTest#testCommitReplaceSegment…
findingrish 9875c44
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 634ced2
Fix DataSegmentPlusTest failure
findingrish 43f1850
Add logs when schemaId or numRows is null in the cache
findingrish 12e36d0
Fix: Schedule schemaBackfillExecutor at fixed rate
findingrish c65b2f2
Fix schema generation for IndexTask
findingrish b6b578b
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 8d962da
Add test config to disable segmentMetadataQuery in Coordinator and sc…
findingrish 2723796
Update schema poll logic: Poll schema id greater than max schema id p…
findingrish 5969c60
Merge branch 'master' into coordinator_schema_read_write
findingrish 78d760b
Add 2 new IT profiles to test CentralizedDatasourceSchema feature
findingrish 0fa4f8d
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish bf20a25
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 9f78e1d
Use AtomicReference for latestSchemaId, handle potential race with th…
findingrish 8816298
Fix bug where segment schema is cleared when segment is loaded on mul…
findingrish ac77102
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 21a7320
Replace pair of segments and schema with SegmentAndSchemas, SegmentAn…
findingrish 0963fca
Fix IndexerSqlMetadataStorageCoordinatorSchemaPersistenceTest#testCom…
findingrish 80c88de
Add test to verify the behaviour when segments is present on multiple…
findingrish f783636
Update CoordinatorSegmentMetadataCache startup logic
findingrish 0786a6a
Fix test
findingrish 3415418
Run CoordinatorSegmentMetadataCache#refresh only on leader node
findingrish 873f373
Trigger datasource schema polling from Coordinator in each refresh cy…
findingrish e3736af
Add test for ParallelIndexSupervisorTask and CompactionTask. Update s…
findingrish f4fb2ec
More task side UTs
findingrish b11ec29
Add custom metrics
findingrish 52e7c05
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 9a7b1b6
Use DruidLeaderSelector instead of DruidCoordinator in CliCoordinator…
findingrish 249313a
Minor changes
findingrish 5acb93d
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish b0ab4d9
Check if constraint exists before altering table
findingrish 1d1c803
Add config to disable foreign key creation
findingrish cf7901a
Revert "Add config to disable foreign key creation"
findingrish 5f729f6
Revert "Check if constraint exists before altering table"
findingrish e883918
Add datasource to the schema table, refactor schema kill logic
findingrish aa1ab56
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 864bc91
Review comments
findingrish a582417
Minor change
findingrish 6fb906f
Review comments
findingrish 43111e7
Validate CentralizedDatasourceSchemaConfig in broker, coordinator, hi…
findingrish 55cf345
Fix build
findingrish 2b97164
Add version information in schema table
findingrish 03c0c94
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 08d0498
Fix build
findingrish 1b4497d
Fix test failures
findingrish ff76aeb
codeql comments
findingrish 5c181f6
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish dd46989
Revert msq changes
findingrish bc0e4e3
Fix build in ControllerImpl
findingrish b54bcac
Fix ControllerImplTest
findingrish 29107b9
Refactor createSegmentTable code
findingrish f8f8a97
Update FingerprintGenerator to use Hex#encodeHexString for converting…
findingrish 8a75693
Change schema version type to integer
findingrish a768dba
Minor code restructuring in IndexerSQlMetadataStorageCoordinator
findingrish 6e333a0
Remove defensive check in SegmentSchemaManager
findingrish 8548f2a
Refactor schema poll lambda in SqlSegmentsMetadataManager
findingrish edec5e7
Add docs, some nit code changes
findingrish e4d525d
Minor changes in SegmentSchemaBackFillQueue
findingrish 86cc24c
Move validation logic to ServerRunnable
findingrish 0f7df79
MinimalSegmentSchemas refactoring and other minor changes
findingrish 43b6b96
Rename MinimalSegmentSchemas to SegmentSchemaMapping
findingrish b57f987
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 08f1c15
Refactor kill schema duty
findingrish 1c66e5d
Minor change
findingrish 86d2d90
Minor change
findingrish e629f9a
Merge branch 'coordinator_schema_read_write' of github.com:findingris…
findingrish 77b181f
codeql comments
findingrish bf37982
Rename DataSegmentWithSchemas to DataSegmentsWithSchemas
findingrish 4efe3fb
Update docs
findingrish 7ac88c4
Persist aggregatorFactories in inTransitSMQResult cache
findingrish 5382669
Use schema fingerprint in segments table
findingrish f3b1711
Add test for changes in ServerRunnable
findingrish e0db66c
Minor code changes
findingrish 8c29649
Fix SqlMetadataConnectorTest
findingrish 158f124
Refactor code in IndexerSQLMetadataStorageCoordinator
findingrish 5e6dff5
Some more refactoring
findingrish fdc46cc
Some more refactoring
findingrish e9dbe3c
Minor change
findingrish f3545ac
Fix test failure
findingrish 6138338
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish aba03e0
Fix bug in IndexerSQLMetadataStorageCoordinator#commitReplaceSegments
findingrish 55c4ed4
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish 28359e8
Update docs
findingrish 7886412
Update segment schema cache metrics
findingrish 14efbac
Temporary change
findingrish ca571ee
Change schemaMap in SegmentSchemaCache from ConcurrentMap to Immutabl…
findingrish 4277760
Update docs
findingrish 5e7a6a6
Update test
findingrish 86351ae
Fix checkstyle
findingrish a5827a6
Add test for FingerprintGenerator
findingrish 5383967
Add config validation in CliPeon
findingrish 5bf86be
Initialize schema cache
findingrish a07eccf
Enable feature in IngestionTestBase
findingrish 0023d24
Fix SqlSegmentsMetadataManagerSchemaPollTest
findingrish 85208f2
Minor code changes
findingrish 11e5ca7
Poll schema for all datasources in the inventory in Broker
findingrish e78fb65
Tests for coverage
findingrish bb7e98b
Minor change in SegmentSchemaCache
findingrish ae43a83
Tests to meet coverage
findingrish 26a6472
Expose a method in AbstractSegmentMetadataCache to fetch aggregators …
findingrish e65ff4d
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish a05043b
Add a note
findingrish c44b289
nit changes
findingrish 9033a46
Rename some methods, add null check when accessing cacheExecFuture
findingrish 7e349ce
Enable CentralizedDatasourceSchema config in ParallelIndexSupervisorT…
findingrish 472bce9
Encapsulate finalizedSegmentStats & finalizedSegmentSchema in a class…
findingrish bc1e131
Fix potential npe while accessing segmentMetadataInfo
findingrish 4adfc77
Merge remote-tracking branch 'upstream/master' into coordinator_schem…
findingrish File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading status checks…
Fix IndexerSQLMetadataStorageCoordinatorTest#testCommitReplaceSegment…
…s failure
commit e1033366ddb577f4f07971238249a03d23d17330
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -227,19 +227,27 @@ public CloseableIterator<DataSegmentPlus> retrieveUnusedSegmentsPlus( | |
); | ||
} | ||
|
||
public List<DataSegmentPlus> retrieveSegmentsById(String datasource, Set<String> segmentIds) | ||
public List<DataSegmentPlus> retrieveSegmentsById( | ||
String datasource, | ||
Set<String> segmentIds, | ||
boolean includeSchemaInfo | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Rather than passing this boolean, better have two separate methods:
Internally, they may call the same private method. |
||
) | ||
{ | ||
final List<List<String>> partitionedSegmentIds | ||
= Lists.partition(new ArrayList<>(segmentIds), 100); | ||
|
||
final List<DataSegmentPlus> fetchedSegments = new ArrayList<>(segmentIds.size()); | ||
for (List<String> partition : partitionedSegmentIds) { | ||
fetchedSegments.addAll(retrieveSegmentBatchById(datasource, partition)); | ||
fetchedSegments.addAll(retrieveSegmentBatchById(datasource, partition, includeSchemaInfo)); | ||
} | ||
return fetchedSegments; | ||
} | ||
|
||
private List<DataSegmentPlus> retrieveSegmentBatchById(String datasource, List<String> segmentIds) | ||
private List<DataSegmentPlus> retrieveSegmentBatchById( | ||
String datasource, | ||
List<String> segmentIds, | ||
boolean includeSchemaInfo | ||
) | ||
{ | ||
if (segmentIds.isEmpty()) { | ||
return Collections.emptyList(); | ||
|
@@ -248,24 +256,55 @@ private List<DataSegmentPlus> retrieveSegmentBatchById(String datasource, List<S | |
final String segmentIdCsv = segmentIds.stream() | ||
.map(id -> "'" + id + "'") | ||
.collect(Collectors.joining(",")); | ||
ResultIterator<DataSegmentPlus> resultIterator = handle | ||
.createQuery( | ||
StringUtils.format( | ||
"SELECT payload, used FROM %s WHERE dataSource = :dataSource AND id IN (%s)", | ||
dbTables.getSegmentsTable(), segmentIdCsv | ||
) | ||
) | ||
.bind("dataSource", datasource) | ||
.setFetchSize(connector.getStreamingFetchSize()) | ||
.map( | ||
(index, r, ctx) -> new DataSegmentPlus( | ||
JacksonUtils.readValue(jsonMapper, r.getBytes(1), DataSegment.class), | ||
null, | ||
null, | ||
r.getBoolean(2) | ||
) | ||
) | ||
.iterator(); | ||
|
||
ResultIterator<DataSegmentPlus> resultIterator; | ||
if (includeSchemaInfo) { | ||
resultIterator = handle | ||
.createQuery( | ||
StringUtils.format( | ||
"SELECT payload, used, schema_id, num_rows FROM %s WHERE dataSource = :dataSource AND id IN (%s)", | ||
dbTables.getSegmentsTable(), segmentIdCsv | ||
) | ||
) | ||
.bind("dataSource", datasource) | ||
.setFetchSize(connector.getStreamingFetchSize()) | ||
.map( | ||
(index, r, ctx) -> { | ||
Long schemaId = (Long) r.getObject(3); | ||
Long numRows = (Long) r.getObject(4); | ||
return new DataSegmentPlus( | ||
JacksonUtils.readValue(jsonMapper, r.getBytes(1), DataSegment.class), | ||
null, | ||
null, | ||
r.getBoolean(2), | ||
schemaId, | ||
numRows | ||
); | ||
} | ||
) | ||
.iterator(); | ||
} else { | ||
resultIterator = handle | ||
.createQuery( | ||
StringUtils.format( | ||
"SELECT payload, used FROM %s WHERE dataSource = :dataSource AND id IN (%s)", | ||
dbTables.getSegmentsTable(), segmentIdCsv | ||
) | ||
) | ||
.bind("dataSource", datasource) | ||
.setFetchSize(connector.getStreamingFetchSize()) | ||
.map( | ||
(index, r, ctx) -> new DataSegmentPlus( | ||
JacksonUtils.readValue(jsonMapper, r.getBytes(1), DataSegment.class), | ||
null, | ||
null, | ||
r.getBoolean(2), | ||
null, | ||
null | ||
) | ||
) | ||
.iterator(); | ||
} | ||
|
||
return Lists.newArrayList(resultIterator); | ||
} | ||
|
@@ -749,6 +788,8 @@ private ResultIterator<DataSegmentPlus> getDataSegmentPlusResultIterator(Query<M | |
JacksonUtils.readValue(jsonMapper, r.getBytes(1), DataSegment.class), | ||
DateTimes.of(r.getString(2)), | ||
DateTimes.of(r.getString(3)), | ||
null, | ||
null, | ||
null | ||
)) | ||
.iterator(); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are the numRows and schemaId always null here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pointing it out. It is a bug, probably got introduced while merging with master.