prql-parser 0.9.5

A parser for the PRQL query language.
Documentation
---
source: crates/prql_parser/src/lib.rs
expression: "parse_single(r#\"\nfrom employees\nfilter country == \"USA\"                      # Each line transforms the previous result.\nderive {                                     # This adds columns / variables.\n  gross_salary = salary + payroll_tax,\n  gross_cost = gross_salary + benefits_cost  # Variables can use other variables.\n}\nfilter gross_cost > 0\ngroup {title, country} (                     # For each group use a nested pipeline\n  aggregate {                                # Aggregate each group to a single row\n    average salary,\n    average gross_salary,\n    sum salary,\n    sum gross_salary,\n    average gross_cost,\n    sum_gross_cost = sum gross_cost,\n    ct = count salary,\n  }\n)\nsort sum_gross_cost\nfilter ct > 200\ntake 20\n        \"#).unwrap()"
---
- Main:
    Pipeline:
      exprs:
        - FuncCall:
            name:
              Ident:
                - from
            args:
              - Ident:
                  - employees
        - FuncCall:
            name:
              Ident:
                - filter
            args:
              - Binary:
                  left:
                    Ident:
                      - country
                  op: Eq
                  right:
                    Literal:
                      String: USA
        - FuncCall:
            name:
              Ident:
                - derive
            args:
              - Tuple:
                  - Binary:
                      left:
                        Ident:
                          - salary
                      op: Add
                      right:
                        Ident:
                          - payroll_tax
                    alias: gross_salary
                  - Binary:
                      left:
                        Ident:
                          - gross_salary
                      op: Add
                      right:
                        Ident:
                          - benefits_cost
                    alias: gross_cost
        - FuncCall:
            name:
              Ident:
                - filter
            args:
              - Binary:
                  left:
                    Ident:
                      - gross_cost
                  op: Gt
                  right:
                    Literal:
                      Integer: 0
        - FuncCall:
            name:
              Ident:
                - group
            args:
              - Tuple:
                  - Ident:
                      - title
                  - Ident:
                      - country
              - FuncCall:
                  name:
                    Ident:
                      - aggregate
                  args:
                    - Tuple:
                        - FuncCall:
                            name:
                              Ident:
                                - average
                            args:
                              - Ident:
                                  - salary
                        - FuncCall:
                            name:
                              Ident:
                                - average
                            args:
                              - Ident:
                                  - gross_salary
                        - FuncCall:
                            name:
                              Ident:
                                - sum
                            args:
                              - Ident:
                                  - salary
                        - FuncCall:
                            name:
                              Ident:
                                - sum
                            args:
                              - Ident:
                                  - gross_salary
                        - FuncCall:
                            name:
                              Ident:
                                - average
                            args:
                              - Ident:
                                  - gross_cost
                        - FuncCall:
                            name:
                              Ident:
                                - sum
                            args:
                              - Ident:
                                  - gross_cost
                          alias: sum_gross_cost
                        - FuncCall:
                            name:
                              Ident:
                                - count
                            args:
                              - Ident:
                                  - salary
                          alias: ct
        - FuncCall:
            name:
              Ident:
                - sort
            args:
              - Ident:
                  - sum_gross_cost
        - FuncCall:
            name:
              Ident:
                - filter
            args:
              - Binary:
                  left:
                    Ident:
                      - ct
                  op: Gt
                  right:
                    Literal:
                      Integer: 200
        - FuncCall:
            name:
              Ident:
                - take
            args:
              - Literal:
                  Integer: 20
  annotations: []