【问题标题】:How to create a C-language function returning two or more OUT parameters for postgresql?如何为postgresql创建一个返回两个或多个OUT参数的C语言函数?
【发布时间】:2012-11-12 12:47:26
【问题描述】:

我需要在 postgresql 的 C 语言函数中返回两个整数数组。 Afaik,在 postgresql 函数中返回两个整数数组的最佳方法是使用 OUT 参数声明该函数。但是如何在 postgresql 的 C 语言函数中返回两个输出参数?我应该返回一个包含数组大括号表示的两个字符串的元组吗?

【问题讨论】:

  • 它是否必须“返回”该值?如果没有,您可以通过参数列表将修改后的结构发回
  • @Mike 这实际上并不重要,但如何做到这一点呢?我应该发送两个空数组作为 IN 参数吗?
  • 您能否再澄清一下您在寻找什么?看起来您想要的不仅仅是更新参数的 C 函数。你能解释一下为什么它需要返回而不只是更新的参数列表吗?你在为 postgresql 语句寻找什么格式的数据?
  • @Mike Postgresql 似乎没有跟踪为其函数提供的参数,即,即使我将两个数组作为参数传递给 postgresql 函数,它们在函数调用后保持不变。我正在寻找的格式是这样的: CREATE OR REPLACE FUNCTION func(IN param1 int, IN param2 int, ... OUT param1 int[], OUT param2 int[]) LANGUAGE C STRICT;

标签: c postgresql out-parameters


【解决方案1】:

你必须返回两个数组的元组。实际上,Postgresql 的函数每次只返回一个参数。这是相对复杂的任务,但它是可能的。您可以找到一些示例 - google 关键字是 PG_RETURN_HEAPTUPLEHEADER

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 1970-01-01
    • 2016-10-12
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    相关资源
    最近更新 更多