这是indexloc提供的服务,不要输入任何密码
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: hasura/ndc-mongodb
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: hasura/ndc-mongodb
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1
Choose a head ref
  • 7 commits
  • 19 files changed
  • 2 contributors

Commits on Jun 12, 2025

  1. Add aws, azure, gcp auth to features (#169)

    * Add aws, azure, gcp auth to features
    
    * Remove un needed dep
    codedmart authored Jun 12, 2025
    Configuration menu
    Copy the full SHA
    f470e5b View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2025

  1. v1.8.2 (#170)

    codedmart authored Jun 13, 2025
    Configuration menu
    Copy the full SHA
    9cbf7c5 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2025

  1. when filtering related collection need to include nested fields in co…

    …mparison (#171)
    
    This comes up when filtering on a nested field in a related collection. For example, where there is a relation from `comments` to `movie`:
    
    ```graphql
    query {
      comments(where: {movie: {imdb: {rating: {_eq: 9.2}}}}) {
        text
        movie {
          title
          year
        }
      }
    }
    ```
    
    In this example no records are returned because `imdb.rating` is not in scope when during filtering where that `where` predicate is applied.
    
    We already have logic in place to include columns in joins if they are needed for an expression. But that logic did not account for **nested** fields. This PR updates the query planner to recursively include nested fields as needed if they are used in expressions.
    hallettj authored Jul 4, 2025
    Configuration menu
    Copy the full SHA
    fd57be2 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2025

  1. ensure correct order of sort criteria in mongodb query (#172)

    Queries with multiple sort criteria were applying criteria
    alphabetically in the MongoDB query plan instead of in the order
    specified in the incoming NDC query.
    hallettj authored Jul 8, 2025
    Configuration menu
    Copy the full SHA
    d6f85b5 View commit details
    Browse the repository at this point in the history
  2. release v1.8.3 (#173)

    hallettj authored Jul 8, 2025
    Configuration menu
    Copy the full SHA
    9dd4b16 View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2025

  1. escape names with invalid characters in mongodb query field selection (

    …#175)
    
    We had a bug when selecting fields with names containing dollar signs or
    dots, or when selecting fields using aliases containing those
    characters. What happened is the mongodb query plan would produce a
    stage like this:
    
    ```json
    {
      "$replaceWith": {
        "foo.bar": "$title"
      }
    }
    ```
    
    The use of `"foo.bar"` leads to this error:
    
    > MongoServerError: FieldPath field names may not contain '.'. Consider
    using $getField or $setField.
    
    The fix is, as the error suggests, to use the `$setField` operator which
    takes a `field` argument that is not evaluated as an expression, and is
    therefore allowed to contain arbitrary characters.
    
    ```json
    {
      "$replaceWith": {
        "$setField": {
          "field": "foo.bar",
          "value": "$title",
          "input": "$$CURRENT"
        }
      }
    }
    ```
    
    But that leads to an issue when we want to select multiple fields: in
    the first snippet the argument to `$replaceWith` was an object literal
    where we could set multiple fields. OTOH `{ "$setField": { ... } }` is
    an expression that produces an object with a single field, and does not
    accept more keys. To select multiple fields with escaping we have to
    nest calls to `$setField` for every selected field. For example,
    
    ```json
    {
      "$replaceWith": {
        "$setField": {
          "field": "foo.bar",
          "value": "$title",
          "input": {
            "$setField": {
              "field": "year",
              "value": "$year",
              "input": {
                "$setField": {
                  "field": "rated",
                  "value": "$rated",
                  "input": "$$CURRENT"
                }
              }
            }
          }
        }
      }
    }
    ```
    
    So that is what this PR does.
    hallettj authored Jul 23, 2025
    Configuration menu
    Copy the full SHA
    fc3018a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6e8ba43 View commit details
    Browse the repository at this point in the history
Loading