Как увеличить максимальную длину полученной строки в функции UDX agg_concatenate - PullRequest
1 голос
/ 04 апреля 2019

Как я могу увеличить максимальную длину результирующей строки в agg_concatenate Пользовательская функция в Vertica? У меня есть 204 строки с кодами, такими как «ABCD» в столбце (каждый код длиной 4 символа), которые необходимо объединить. Но только 162 в результате.

Я попытался изменить файл Concatenate.cpp и умножил input_len * 1000 в очереди

intermediateTypeMetaData.addVarchar(input_len*1000);

Затем я скомпилировал новый файл с именем Concatenate_New.cpp. Я следовал командам, приведенным в ссылке ниже:

агрегатная функция для объединения строк в Vertica

Когда я запускаю свой запрос, он выдает ошибку вроде

[Код: 5861, состояние SQL: VP001] [Vertica] ОШИБКА VJDBC: Ошибка вызова terminate () в пользовательской функции agg_concatenate_new в [Concatenate_new.cpp: 91], код ошибки: 0, сообщение: исключение при вычислении совокупного вывода: [Код пользователя заставил Vertica выдать исключение «Попытка скопировать 1019-байтовую строку в 810-байтовый объект VString; VString слишком мала»]

Итак, как мне увеличить размер VString?

...