-
Notifications
You must be signed in to change notification settings - Fork 292
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
Data nodes sorted #2128
Data nodes sorted #2128
Commits on Feb 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ca16868 - Browse repository at this point
Copy the full SHA ca16868View commit details -
tree data BUGFIX in lyd_insert_sibling()
The lyd_insert_node() expecting first sibling.
Configuration menu - View commit details
-
Copy full SHA for e7bd084 - Browse repository at this point
Copy the full SHA e7bd084View commit details -
parser BUGFIX references to siblings
... when deleting metadata in the lyd_parse_set_data_flags().
Configuration menu - View commit details
-
Copy full SHA for 38ea0fd - Browse repository at this point
Copy the full SHA 38ea0fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9eb9179 - Browse repository at this point
Copy the full SHA 9eb9179View commit details -
Configuration menu - View commit details
-
Copy full SHA for 48a381e - Browse repository at this point
Copy the full SHA 48a381eView commit details -
Configuration menu - View commit details
-
Copy full SHA for fcce169 - Browse repository at this point
Copy the full SHA fcce169View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2bb0173 - Browse repository at this point
Copy the full SHA 2bb0173View commit details -
Configuration menu - View commit details
-
Copy full SHA for 49824dd - Browse repository at this point
Copy the full SHA 49824ddView commit details -
plugins types CHANGE compare function callback
The function now has a new context parameter that may be needed when getting the canonical value. Type API version number has increased.
Configuration menu - View commit details
-
Copy full SHA for 3cc81e1 - Browse repository at this point
Copy the full SHA 3cc81e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 86f23cf - Browse repository at this point
Copy the full SHA 86f23cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for d05e392 - Browse repository at this point
Copy the full SHA d05e392View commit details -
Configuration menu - View commit details
-
Copy full SHA for 024e76e - Browse repository at this point
Copy the full SHA 024e76eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3af39c0 - Browse repository at this point
Copy the full SHA 3af39c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 52175a8 - Browse repository at this point
Copy the full SHA 52175a8View commit details -
plugins types FEATURE sort callback in empty
... implemented via new lyplg_type_sort_simple().
Configuration menu - View commit details
-
Copy full SHA for 796b167 - Browse repository at this point
Copy the full SHA 796b167View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf08ad5 - Browse repository at this point
Copy the full SHA bf08ad5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 041e16a - Browse repository at this point
Copy the full SHA 041e16aView commit details -
Configuration menu - View commit details
-
Copy full SHA for d23e267 - Browse repository at this point
Copy the full SHA d23e267View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a92571 - Browse repository at this point
Copy the full SHA 1a92571View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3489a50 - Browse repository at this point
Copy the full SHA 3489a50View commit details -
plugins types REFACTOR for instanceid
Simplification of sort and compare callback functions. The complexity of the comparison was needed in the old version of libyang.
Configuration menu - View commit details
-
Copy full SHA for 7ea1bd0 - Browse repository at this point
Copy the full SHA 7ea1bd0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e15ad2 - Browse repository at this point
Copy the full SHA 0e15ad2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 96db3d6 - Browse repository at this point
Copy the full SHA 96db3d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for de4f12d - Browse repository at this point
Copy the full SHA de4f12dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f4e5ffc - Browse repository at this point
Copy the full SHA f4e5ffcView commit details -
Configuration menu - View commit details
-
Copy full SHA for c1d2fa4 - Browse repository at this point
Copy the full SHA c1d2fa4View commit details -
Configuration menu - View commit details
-
Copy full SHA for b0af023 - Browse repository at this point
Copy the full SHA b0af023View commit details -
libyang FEATURE sorting of data nodes
1. Plugin type 'lyds_tree' is integrated. Used in metadata and it is internal, which is distinguished by the unset print callback. Internal metadata must not be printed. 2. Leaf-list and list data instances are now automatically sorted. 3. Both the explicit and implicit YANG statement 'ordered-by system' will cause the nodes to be ordered. 4. The first instance of the list or leaf-list of node contain new metadata named 'lyds_tree'. 5. Data nodes are sorted only if their data types have callback 'sort' set. 6. Sorting can be turned off so far only by adding the 'ordered-by user' statement to the YANG model. 7. If the sort fails for some reason, the node is still inserted as the last instance. A warning message informs about this situation. 8. The time required for sorting should be relatively small thanks to the Red-black tree implementation. 9. Memory requirements will now increase by 40 bytes per list/leaf-list data node, plus metadata structure overhead. 10. New internal lyds_tree plugin type.
Configuration menu - View commit details
-
Copy full SHA for 23b7a7a - Browse repository at this point
Copy the full SHA 23b7a7aView commit details -
lyds tree OPTIMIZE flag LYD_PARSE_ORDERED
1. When inserting, the last parameter can also be used for nodes with lyds_tree 2. The principle of lyds_tree is that it is created lazily. That is, if it is certain that the nodes are sorted, no metadata or lyds_tree is created. 3. If it is necessary to modify the sorted nodes, the lyds_tree is created additionally. This means that inserting the first node can lead to a delay. 4. The LYD_PARSE_ORDERED flag now has a positive performance effect because the lyds_tree is created lazily.
Configuration menu - View commit details
-
Copy full SHA for 32293fe - Browse repository at this point
Copy the full SHA 32293feView commit details -
Configuration menu - View commit details
-
Copy full SHA for a229693 - Browse repository at this point
Copy the full SHA a229693View commit details -
tree data OPTIMIZE unlink-insert for lyds nodes
Unlink and then insert is inefficient for sorted (lyds) list and leaf-list nodes. Also improved lyd_unlink_siblings().
Configuration menu - View commit details
-
Copy full SHA for 0d90cdc - Browse repository at this point
Copy the full SHA 0d90cdcView commit details -
lyds tree OPTIMIZE data can be unordered
If the LYD_PARSE_ORDERED flag is set incorrectly, the data may be unordered, a warning will inform about this if the DEBUG variable is set. But as soon as the lyds tree is created later, the data will be sorted.
Configuration menu - View commit details
-
Copy full SHA for 4642a04 - Browse repository at this point
Copy the full SHA 4642a04View commit details -
tree data BUGFIX added return value for unlink
Added return value for functions lyd_unlink_siblings() and lyd_unlink_tree(), which causes ABI breaks.
Configuration menu - View commit details
-
Copy full SHA for f15b1b8 - Browse repository at this point
Copy the full SHA f15b1b8View commit details -
tree data OPTIMIZE lyds in lyd_merge()
There is no more freeing of memory and then allocation regarding regarding lyds data. Memory intended to be freed is temporarily not freed and instead waits for an opportunity to use it again.
Configuration menu - View commit details
-
Copy full SHA for a180411 - Browse repository at this point
Copy the full SHA a180411View commit details -
tree data OPTIMIZE added first_sibling parameter
This change avoids unnecessary finding of the first sibling in case the parent node is not available.
Configuration menu - View commit details
-
Copy full SHA for 517273e - Browse repository at this point
Copy the full SHA 517273eView commit details -
tree data OPTIMIZE diff and lyd_insert_node()
Function lyd_insert_node() has new options that ignore the ordering of data nodes. This is used in lyd_diff_add() because the diff as such does not need to be sorted.
Configuration menu - View commit details
-
Copy full SHA for 8880c3e - Browse repository at this point
Copy the full SHA 8880c3eView commit details -
tree data BUGFIX in ly_insert_node()
Restored functionality regarding the sorting of opaq nodes and nodes with the LYD_EXT flag set.
Configuration menu - View commit details
-
Copy full SHA for b5189da - Browse repository at this point
Copy the full SHA b5189daView commit details -
tree data OPTIMIZE of lyd_dup() for (leaf-)list
Faster node insertion. There is no need to search for the 'anchor' for instances of the (leaf-)list, thus reducing the number of accesses to the hash table.
Configuration menu - View commit details
-
Copy full SHA for e7ce2ab - Browse repository at this point
Copy the full SHA e7ce2abView commit details