Skip to content
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

Json Each and Json Tree #1088

Draft
wants to merge 10 commits into
base: main
Choose a base branch
from
Draft

Conversation

pedrocarlo
Copy link
Contributor

@pedrocarlo pedrocarlo commented Mar 4, 2025

This PR implements Json Each and Json Tree. My implementation almost matches the one with sqlite. It is different in two ways: in the assigning of arbitrary ids and in assigning path locators (which is believe is slightly buggy in sqlite). The arbitrary id assignment would not affect users of these functions are they are relative to each other, as what matters is that each item has a unique id assigned to them.

With regards to the path locators, I believe it is buggy as can be seen in the following screenshot:
Pasted Graphic

As you can see, in the last two json_tree queries their path and fullkey values are equal where they should differ in their array locators. It seems that when you pass a path containing an array locator to json_tree, it will then substitute it with a [0] instead.

I would like some guidance on how to proceed. Should I try to hack my implementation to accommodate with the way ids are incremented and with this path irregularity? Or should we stick with my implementation for now?

After a response, I intend to add and modify the tests depending on the direction we wish to take, as currently they won't pass due to this divergence in implementation.

Also, this PR depends on #1054 to be merged to be able to return Json instead of Text for the value column.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant