Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql postgraphile-用于在变异时将结构化数据添加为字段的函数_Postgresql_Plpgsql_Postgraphile - Fatal编程技术网

Postgresql postgraphile-用于在变异时将结构化数据添加为字段的函数

Postgresql postgraphile-用于在变异时将结构化数据添加为字段的函数,postgresql,plpgsql,postgraphile,Postgresql,Plpgsql,Postgraphile,我想做一件最简单的事情,将结构化数据添加到图后突变中 query MyQuery { myTables { nodes { id theBox } } } 我有一个简单的示例表: > \d test1.my_table

我想做一件最简单的事情,将结构化数据添加到图后突变中

query MyQuery {
  myTables {
    nodes { id theBox }
  }
}
我有一个简单的示例表:

> \d test1.my_table                                                                                                                                                                      
+----------+--------+
| Column   | Type   |
|----------+--------+
| id       | uuid   |
| the_box  | box    |
+----------+--------+
列通过postgraphile创建一种类型的
{kind:“SCALAR”,name:“String”,of type:null}
,这让我可以解析查询结果,并将数据封送到字符串中进行变异

query MyQuery {
  myTables {
    nodes { id theBox }
  }
}
屈服

{
  "data": {
    "myTables": {
      "nodes": [
        {
          "id": "c79ee287-88ca-4950-a44b-e4ef07d3c3dc",
          "theBox": "(3,4),(1,2)"
        }
      ]
    }
  }
}
对于
polygon
bytea
类型,也会发生类似的情况

在我的理想世界中,我为查询编写了一个函数,它将返回
(或
多边形
,或
bytea
)作为某种自定义postgres类型

CREATE TYPE box_arg AS (x point, y point);

CREATE OR REPLACE FUNCTION test1.my_table_box_for_query(the_row test1.my_table)  
RETURNS box_arg AS $$  
BEGIN 
   SELECT '(the_row.the_box[0][0], the_row.the_box[1][0])'::point,
          '(the_row.the_box[0][1], the_row.the_box[1][1])'::point;
END; 
$$ LANGUAGE 'plpgsql' STABLE;
(撇开我是否在该查询中选择了正确的x/y不谈……)

然而,我似乎不知道另一个方向。如何编写一个函数,该函数在postgraphile为
my_table
创建的变异中公开,该变异将接受结构化数据(例如,上面的
box_arg
类型),并让函数在变异期间用函数参数中的值更新记录?我想将
框_arg
类型作为突变的输入。实际上,您可以在这里看到,该框仅作为字符串在
输入中可用

使用postgres函数是否可以实现这一点?或者这只能通过postgraphile插件实现


非常感谢您提供的任何建议/示例

很确定有一个简单的解决方案。但我看不出明确的问题。这个函数到底应该做什么?(不要以为我们知道关于博士后的任何事情,我们大多数人都不知道。)对不起——我想你确实需要知道一点关于博士后的事情,这个问题才有意义。Postgraphile对您的postgres数据库进行内省,并自动构建graphql服务器。如果您以某种方式命名postgres函数,它将自动添加graphql接口启示。我正在寻找magic postgres函数,它为我的自动生成的变异创建一个
box\u arg
类型的数据结构。对不起,我仍然不知道你在问什么。我已经试过了…谢谢你的关注,欧文,非常感谢。我认为问题在于这是一个专门关于postgraphile应用程序的问题(它与postgres紧密相连,因此是postgres标记)。我道歉,再次感谢!很确定有一个简单的解决方案。但我看不出明确的问题。这个函数到底应该做什么?(不要以为我们知道关于博士后的任何事情,我们大多数人都不知道。)对不起——我想你确实需要知道一点关于博士后的事情,这个问题才有意义。Postgraphile对您的postgres数据库进行内省,并自动构建graphql服务器。如果您以某种方式命名postgres函数,它将自动添加graphql接口启示。我正在寻找magic postgres函数,它为我的自动生成的变异创建一个
box\u arg
类型的数据结构。对不起,我仍然不知道你在问什么。我已经试过了…谢谢你的关注,欧文,非常感谢。我认为问题在于这是一个专门关于postgraphile应用程序的问题(它与postgres紧密相连,因此是postgres标记)。我道歉,再次感谢!