Replies: 6 comments 3 replies
-
I could also record a video to show it if you are interested in it ^^ If not, let's just ignore it. I found that the attempt to achieve it requires huge effort... PS. I created the branch for reference here |
Beta Was this translation helpful? Give feedback.
-
This might be simple to insert via the client.Document.Store API but would be a rather large effort to support in the parser. That said, the one place that I think would be nearly impossible would be the condition parser and indexing. Maybe those columns wouldn’t be supported in conditions? Would it not suffice to store json in a column and add support for manipulating JSON in in if those columns? |
Beta Was this translation helpful? Give feedback.
-
Also, shoot me an email. I have questions. |
Beta Was this translation helpful? Give feedback.
-
Hi @NTDLS, This time I did another experiment to make the document type abstract from EngineCore (and so on most 60% class) with generic parameter. I think we could extract the abstraction of the document and later extend it with array/struct... etc. So I did some modification _# 1 that the unit tests are able to apply to both non-generic and generic versions. That means we could primarily keep develop the non-generic version and spend some time (not that much) to make the generic version complete _# 2. Once we trust the generic version that it should have no defect, we could bump to it? _# 1 This time it is a pure C# implementation. (The type passed into EngineCore is fstring in APIService.cs implemented IStringable) _# 2 PS. The code change to make so many classes be generic is very ugly (I know that), so it just a concept demo, I would guess if we really want to do that, we maybe need DI stuff like Ninject... to make code clean... |
Beta Was this translation helpful? Give feedback.
-
Wow, it took five days for me to follow up the early commit of Katzebase (merged all-in-one), esp. the extracted parser! The parser is ultra cool and I know more about the parsing flow and methodology... Will try to catch up with the latest commit and keep developing the unit cases!!! PS. The generic version experiment is pushed. Basicunit tests passed. |
Beta Was this translation helpful? Give feedback.
-
Hahaha, yea. It’s all good. Take your time. I'm working completely rewriting the schema intersection methods. Now every intersection function is parallel. I introduced a new thread pool and my test queries have gone from the high 800 ms to 10s of milliseconds. It’s also much easier to read the code and I was able to remove a little more than 50% of the functions from the schema intersecting classes. That work is being done in a separate branch and should not affect the unit tests once merged. |
Beta Was this translation helpful? Give feedback.
-
I did a full project code go-through and finished a very simple array/struct(tuple) experiment and the following insert(directly in server side since the parser hasn't yet support it in client side) and query (protobuf -> json deserialisation works but not able to show in grid, I could do some works in mgmt UI and show it if you want)
Which shows an array as the value of key "ttc" in a tuple.
Some critical parts are like
Mod for nested data structure:
And fstring type is something like:
Yes, it requires some mods to make ProtoBuf working for nested dynamic struct/array...
of course we could implement these stuff in c#, I used the f# code just try to do it quickly and be able to show you...
Beta Was this translation helpful? Give feedback.
All reactions