Ошибка разбора: неверный идентификатор WHERE в символе ( - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь получить результат, используя необязательные параметры.

result = Tester.gql("WHERE (first_name IS NULL OR first_name = :first_name)"
                                "AND (last_name IS NULL OR last_name = :last_name)"
                                "AND (birth_date IS NULL OR birth_date = :birth_date)"
                                "AND (test_voucher IS NULL OR test_voucher = :test_voucher)", first_name=first_name,
                                last_name=last_name, birth_date=birth_date, test_voucher=test_voucher)

Однако, я получаю сообщение об ошибке разбора при использовании этого сценария GQL.

{
    "error": {
        "message": "Parse Error: Invalid WHERE Identifier at symbol ("
    }
}

Я пытаюсь выяснить, что не так в моем скрипте GQL. Заранее спасибо

1 Ответ

1 голос
/ 25 июня 2019

Не думаю, что это действительно GQL:

  • нет упоминаний об использовании '(' и ')' для составных условий (о чем я и думаю, что вы видите ошибку), единственными допустимыми конструкциями условий являются (из GQL Reference ):

    [ WHERE <compound-condition> ]
    
    <compound-condition> := <condition>+AND
    
    <condition> :=
      <property-name> IS NULL
    | <property-name> <forward-comparator> <value>
    | <value> <backward-comparator> <property-name>
    
  • в GQL нет оператора OR, поэтому нет необходимости в группировке, см. В Google DataStore GQL как я могу сгруппировать термины WHERE? (также с жалобами на круглые скобки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...