Page MenuHomeSealhub

Przygotować testy do modułu tłumaczącego queries mongo na queriesy SQL
Closed, ResolvedPublic3 Points

Description

Dla bujnego rozwoju Sealiousa w przyszłości będzie potrzebna możliwosć używania go zarówno na bazach Mongo (jak dotychczas), jak i bazach opartych o SQL.

Kluczowym dla tej przyszłości elementem jest stworzenie modułu, który będzie pozwalał tłumaczyć sealiousowe Query do stringów SQL.

Task nie polega na napisaniu logiki tego modułu. Ten task polega na stworzeniu repozytorium na ten moduł i przygotowania szablonów testów tego modułu wewnątrz tego repozytorium.

Testów powinno być tak na oko 20. Powinny testować (jeszcze nieistniejący) moduł, który będzie tłumaczył zapytania do Mongo w postaci listy agregacji na stringa z zapytaniem SQL, które ma realizować taką samą logikę.

Każdy test powinien zatem składać się z:

  1. Jakiegoś zapytania w postaci listy aggregation pipeline stages (zob. opis poniżej)
  2. Odpowiadającego temu zapytaniu stringowi z zapytaniem SQL (trzeba je przygotować ręcznie na podstawie tego queriesa mongowego)
  3. Wywołaniu jakiejś placeholderowej funkcji podając jej query z pkt. 1 i porównaniu jej wyniku z query z pkt 2. Placeholderowa funckja będzie zawsze zwracać "", więc testy będą zawodzić - to jest pożądany stan rzeczy. W przyszłości będą taski na to, aby tak aktualizować tę funkcję placeholderową, aby coraz więcej testów zaczęło przechodzić.

Dobrane queries powinny być wyciągnięte z logów testów Sealiousa. Można dodać console.log do tej funkcji: https://hub.sealcode.org/source/sealious/browse/dev/src/datastore/datastore.ts$129, wtedy wszystkie aggregation stages będą się wypisywały do terminala.

Należy do testów wziąć zapytania od najprostszych aż po najbardziej złożone.

Repo powinno być napisane w typescript. Można się mocno inspirować setupem z https://hub.sealcode.org/diffusion/RIMAGEROUTER/

Details

Tested by
kuba-orlik
Coded by
FilipI
Reviewed by
kuba-orlik
Action required from
FilipI

Revisions and Commits

Event Timeline

kuba-orlik shifted this object from the Restricted Space space to the S5 Publiczna space.Oct 30 2023, 13:28
kuba-orlik changed the visibility from "All Users" to "Public (No Login Required)".
jenkins-user updated Coded by, added: FilipI.
jenkins-user updated Action required from, added: FilipI.
FilipI added a revision: Restricted Differential Revision.Oct 3 2024, 19:50
jenkins-user moved this task from Doing to Review on the Kanban board.
jenkins-user added a subscriber: FilipI.
jenkins-user updated Reviewed by, added: kuba-orlik.
jenkins-user moved this task from Review to Ready for testing on the Kanban board.
jenkins-user updated Action required from, added: AmeliaB, Koossa, karolwojtowicz87, brtkuu, prostyfranek, zbartosz, radoptak; removed: FilipI.
jenkins-user updated Tested by, added: kuba-orlik.
jenkins-user moved this task from Ready for testing to Ready to land on the Kanban board.
jenkins-user updated Action required from, added: FilipI; removed: AmeliaB, Koossa, karolwojtowicz87, brtkuu, prostyfranek, zbartosz, radoptak.