qiaojialin commented on a change in pull request #435: [IOTDB-174] Fix querying
timeseries interface cannot make a query by the specified path prefix
URL: https://github.com/apache/incubator-iotdb/pull/435#discussion_r338915509
##########
File path: server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
##########
@@ -781,20 +777,56 @@ private void findStorageGroup(MNode node, String path,
HashSet<String> res) {
*
* @return a list contains all distinct devices
*/
- Set<String> getAllDevices() {
- return new HashSet<>(getNodesList(3));
+ Set<String> getAllDevices() throws SQLException {
+ List<String> res = new ArrayList<>();
+ MNode node;
+ if ((node = getRoot()) != null) {
+ findDevices(node, "root", res);
+ }
+ return new LinkedHashSet<>(res);
+ }
+
+ private void findDevices(MNode node, String path, List<String> res) {
Review comment:
Here path != node.getName() , path is the full path (e.g., root.d1.s1) of
the node while node.getName only return the node name (e.g., s1).
But now, after you change the res.add(path), these two parameters are
consistent. No need to change.
BTW, if you find some existing codes which are confusing, do not hesitate to
optimize them.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services