psql as an execve(2) interpreter

Поиск
Список
Период
Сортировка
От
Тема psql as an execve(2) interpreter
Дата
Msg-id 17127.1634.62446.428480@trillium.aquilegia.com
обсуждение исходный текст
Ответы Re: psql as an execve(2) interpreter  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
I would like to use pgsl as an interpreter (in the sense of
execve(2)).  In short, if a file begins with the line
     #! /path/to/psql -f

it should be interpretable by psql.  The normal semantics of execve(2)
ensure that this will work perfectly (indeed a file containing
"#!/path/to/psql -l" works as expected), except for psql's nasty habit
of not interpreting the first line as a comment.

It seems that a simple fix to the following function in
src/bin/psql/input.c would do the trick.
    char *    gets_fromFile(FILE *source)    {     PQExpBufferData buffer;     char        line[1024];
     initPQExpBuffer(&buffer);
     while (fgets(line, sizeof(line), source) != NULL)     {         appendPQExpBufferStr(&buffer, line);         if
(buffer.data[buffer.len- 1] == '\n')         {             buffer.data[buffer.len - 1] = '\0';             return
buffer.data;        }     }
 
     if (buffer.len > 0)         return buffer.data;        /* EOF after reading some bufferload(s) */
     /* EOF, so return null */     termPQExpBuffer(&buffer);     return NULL;    }

For example, this feature could be achieved by 1) including a static
variable to differentiate the first from subsequent calls and 2)
discarding the first line (and returning the second) on the first call
if the first line begins with #!.

Thus, I have two questions.

- Is this a feature that would be generally accepted and useful for the postgresql community (i.e., would it be
incorporatedinto the code base)?
 

- Is this the correct solution or are there other portions of the code that need to be considered?

I appreciate any feedback you can give me on this.

Thank you very much.

Cheers,
Brook


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

Предыдущее
От: Gavin Sherry
Дата:
Сообщение: Duplicate object names in GRANT
Следующее
От: Tom Lane
Дата:
Сообщение: Re: RESULT_OID Bug