Как я могу увеличить максимальную длину результирующей строки в 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?