pgresStatus undefined in interfaces/libpgtcl/libpgtcl.a

Поиск
Список
Период
Сортировка
От Brook Milligan
Тема pgresStatus undefined in interfaces/libpgtcl/libpgtcl.a
Дата
Msg-id 199802232130.OAA14957@trillium.nmsu.edu
обсуждение исходный текст
Список pgsql-hackers
Based on today's snapshot, the symbol _pgresStatus is still undefined
in interfaces/libpgtcl/libpgtcl.a (actually from pgtclCmds.o).  The
offending statement in pgtclCmds.c is:

    if (strcmp(opt, "-status") == 0)
    {
        Tcl_AppendResult(interp, pgresStatus[PQresultStatus(result)], 0);
        return TCL_OK;
    }

It seems like this symbol should refer to an array that is defined in
interfaces/libpq/fe-exec.c (the symbol is declared extern in
interfaces/libpq/libpq-fe.h which is included by pgtclCmds.c):

     /* keep this in same order as ExecStatusType in pgtclCmds.h */
     const char *pgresStatus[] = {
         "PGRES_EMPTY_QUERY",
         "PGRES_COMMAND_OK",
         "PGRES_TUPLES_OK",
         "PGRES_BAD_RESPONSE",
         "PGRES_NONFATAL_ERROR",
         "PGRES_FATAL_ERROR"
     };

One solution is to place this segment of fe-exec.c into a distinct *.c
file that is included by both interfaces/libpq/fe-exec.c and
interfaces/libpgtcl/pgtclCmds.c.  Then the symbol would be included in
the libraries as intended.

However, the comment preceding the array definition suggests that
perhaps something should be taken from pgtclCmds.h and the whole thing
organized for sharing between the two directories.

Other solutions may be obvious to those more enlightened on matters of
the organization of this code.  As it stands, pgaccess is unusable
because of the undefined symbol.

Can anyone comment on the correct way to solve this problem?  I'll
make the patch if that would help.

Cheers,
Brook

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Brett McCormick
Дата:
Сообщение: Re: pl/{perl,pgsql} (was Re: AW: [HACKERS] triggers, views and ru
Следующее
От: Tom I Helbekkmo
Дата:
Сообщение: Re: [HACKERS] Current 6.3 issues