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

Query builder v2 #1

Open
wants to merge 131 commits into
base: dev
Choose a base branch
from
Open

Query builder v2 #1

wants to merge 131 commits into from

Conversation

quinchs
Copy link
Collaborator

@quinchs quinchs commented Sep 23, 2022

Summary

This PR adds the long awaited query builder to the main development branch. Before this awesome feature can be added, there is still some stuff to add:

TODO:

  • Base query functions.
  • EdgeQL standard library.
    • Add generator for stdlib.
    • Update v1 system for calling std functions to newer & faster version.
    • Update naming conventions to match the edgedb docs.
  • Link support.
    • Single links
    • Multi links
    • Link backreferencing, ex person1 points to person2 which points to person 1 recursively.
  • Backlinks
  • Property selection/mutation logic
  • Free objects
  • Anonymous types as shapes
  • Base expression to edgeql translators ex: string (string a) => a.ToLower(); -> str_lower(a)
    • Parameter context (don't allow usage of a parameter in some conditions)
    • Binary: 1+1
    • Conditional: 1 if true else 2
    • Constant: "const"
    • Initialization: new Thing{}
    • Lambda: () => {}
    • Member: x.Property
    • MethodCall: EdgeQL.ILike(a,b);
    • Array: new int[] { 1, 2, 3 }
    • Parameter (x) => x.Thing;
    • Unary: (string)thing;
  • Contextual function calls
  • Object-level constraints
  • Property level constraints
  • Autogenerated node resolution quinchs/EdgeDB.Net#22
  • CIL parser (CIL -> Expressions).
  • Unit tests
  • Docs

Closes #17

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