Насчет appendStringInfo в C - не знаю как это работает - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь использовать appendStringInfo в коде сервера PostgreSQL.В этом случае следует добавить имя столбца, но оно выглядит пустым.

При печати

elog (INFO, "value:%s", idxcd->varattnames[i]);

мне отображается соответствующее значение.

for (i = 0; i < idxcd->ncols; ++i)
{
    appendStringInfo( &cols, "attname=%s", (i>0?"OR":""), idxcd->varattnombres[i]);
    elog(INFO,"indice:%d", i);
    elog(INFO,"valor:%s", idxcd->varattnombres[i]);
    elog(INFO,"cols:%s", cols.data);
}/* foreach col in varattno*/

1 Ответ

0 голосов
/ 25 сентября 2019

Это тривиальная ошибка:

Строка формата "attname=%s" имеет только один заполнитель (%s), но вы предоставляете два аргумента.Только первый привыкнет.

Возможно, вы имеете в виду что-то вроде:

appendStringInfo(&cols,
                 "%s attname=%s",
                 (i>0 ? "OR" : ""),
                 idxcd->varattnombres[i]
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...