xpath OPTIMIZE track child-only axis node moves
... which should guarantee that document order is
never broken so the sets do not have to be sorted.
Refs sysrepo/sysrepo#2843
diff --git a/src/xpath.h b/src/xpath.h
index 184dfac..48f3bbd 100644
--- a/src/xpath.h
+++ b/src/xpath.h
@@ -3,7 +3,7 @@
* @author Michal Vasko <mvasko@cesnet.cz>
* @brief YANG XPath evaluation functions header
*
- * Copyright (c) 2015 - 2020 CESNET, z.s.p.o.
+ * Copyright (c) 2015 - 2022 CESNET, z.s.p.o.
*
* This source code is licensed under BSD 3-Clause License (the "License").
* You may not use this file except in compliance with the License.
@@ -287,13 +287,14 @@
} val; /**< Evaluated object (value). */
/* this is valid only for type LYXP_SET_NODE_SET and LYXP_SET_SCNODE_SET */
- uint32_t used; /**< Number of nodes in the set. */
- uint32_t size; /**< Allocated size for the set. */
- struct hash_table *ht; /**< Hash table for quick determination of whether a node is in the set. */
+ uint32_t used; /**< Number of nodes in the set. */
+ uint32_t size; /**< Allocated size for the set. */
+ struct hash_table *ht; /**< Hash table for quick determination of whether a node is in the set. */
/* XPath context information, this is valid only for type LYXP_SET_NODE_SET */
- uint32_t ctx_pos; /**< Position of the current examined node in the set. */
- uint32_t ctx_size; /**< Position of the last node at the time the node was examined. */
+ uint32_t ctx_pos; /**< Position of the current examined node in the set. */
+ uint32_t ctx_size; /**< Position of the last node at the time the node was examined. */
+ ly_bool non_child_axis; /**< Whether any node change was performed on a non-child axis. */
/* general context */
struct ly_ctx *ctx; /**< General context for logging. */