Обсуждение: Modifying Makefile

Поиск
Список
Период
Сортировка

Modifying Makefile

От
"Mohamed Yassin Eltabakh"
Дата:
I'm modifying postgreSQL code and adding a new file (say new.c) under dir
"src/backend/parser". This file calls functions (PSQLexec, PQntuples,
PQgetvalue, ...).

The file looks like:
--------------------------------
#include "libpq-fe.h"
#include "common.h"
bool  exec_sql()
{
  PGresult      *res;
  char          str[1000];
  int           TuplesNums;

  strcpy(str, "SELECT id, fname FROM T;");
  res = PSQLexec(str, false);
  if (!res)
    return false;
  TuplesNums = PQntuples(res);
  PQclear(res);

  return true;
}
-------------------------

I updated the src/backend/parser/Makefile and added "new.o" to the OBJS
list, but when I compile I receive error:
....undefined reference to `PSQLexec'
....undefined reference to `PQntuples'
....undefined reference to `PQclear'

Do you have an idea which Makefile should I update and how? because I'm not
familiar with writing Makefiles.

Thanks in advance


Re: Modifying Makefile

От
Tom Lane
Дата:
"Mohamed Yassin Eltabakh" <meltabak@cs.purdue.edu> writes:
> I updated the src/backend/parser/Makefile and added "new.o" to the OBJS
> list, but when I compile I receive error:
> ....undefined reference to `PSQLexec'
> ....undefined reference to `PQntuples'
> ....undefined reference to `PQclear'

You seem to be trying to use the libpq client from inside the backend.
This is entirely inappropriate.  If you need to run general-purpose SQL
queries you can use SPI, but code that is doing that probably does not
belong in /parser.  Just about anything that makes sense to do during
parse analysis should be adequately supported by the system catalog
cache routines.

            regards, tom lane