如何定义具有在另一个模式中定义的参数类型的 hasura gql 突变?

How do I define a hasura gql mutation that has an argument type defined in another schema?

这是我的 GQL...(注意变量 $rrule

mutation CREATE(
  $title: String!,
  $description: String!,
  $duration: interval!,
  $photo_url: String,
  $rrule: String!,
  $venue_id: Int!
) {
  result:insert_event_templates_one(
    object: {
      title: $title,
      description: $description,
      duration: $duration,
      photo_url: $photo_url,
      rrule: $rrule,
      venue_id: $venue_id
    }      
  ) {
    id
  }
}

rrule 是另一个架构中的自定义列类型:_rrule 它可以是一个隐式转换,定义如下:

CREATE CAST (TEXT AS _rrule.RRULE)
  WITH FUNCTION _rrule.rrule(TEXT)
  AS IMPLICIT;

如何定义我的突变以引用该转换?现在,当我 运行 这个突变时,我得到以下错误:

variable rrule of type String! is used in position expecting rrule

所以 Hasura 似乎知道基础列类型,但不能使用它的隐式转换?

该错误与基础数据源无关。使用 $rrule 变量的参数接受名为 rrule 的 GraphQL 类型。变量只有在其类型匹配时才能传递给参数。所以 $rrule 的类型必须与参数 rrule 的类型相同——也就是说,它的类型也应该是 rrule.

mutation CREATE(
  $rrule: rrule!
  ...
) {
...
}