Re: Returning Vector of Pairs with a PostgreSQL C Extension Function
От | Tom Lane |
---|---|
Тема | Re: Returning Vector of Pairs with a PostgreSQL C Extension Function |
Дата | |
Msg-id | 4192.1535211864@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Returning Vector of Pairs with a PostgreSQL C Extension Function (TalGloz <glozmantal@gmail.com>) |
Ответы |
Re: Returning Vector of Pairs with a PostgreSQL C ExtensionFunction
|
Список | pgsql-general |
TalGloz <glozmantal@gmail.com> writes: > I want to return an vector of pairs using a C extension. You're going to have to work a lot harder than this: > // Return vector of pairs > std::vector<std::pair<std::string, std::string>> ret; > ret.emplace_back(encodedLocalT1, encodedLocalT2); > PG_RETURN_ARRAYTYPE_P(ret); I do not know what the internal representation of std::vector is in your C++ library, but it seems highly unlikely that it exactly matches what Postgres arrays look like. Nor has Postgres ever heard of a std::pair. You'd need to either create a composite type of two text columns and then build an array of those, or else decide to return a two-dimensional array to represent this case. In any case, you must use Postgres functions to construct the return value; the C++ library is completely useless for that. regards, tom lane
В списке pgsql-general по дате отправления: