Обсуждение: quoting of array elements + sexp_out?

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

quoting of array elements + sexp_out?

От
Thien-Thi Nguyen
Дата:
greetings,

previously (7.1.x), an array of text would be returned:

    {"d","e","f"}

but w/ 7.3.3 i see:

    {d,e,f}

there is mention of this in section 5.12 "Arrays" of the manual,
including the unfriendly consequence: callers must be able to handle
either case.  my question is: why this make-work change?

this leads me to the next question: is there any interest in a
`sexp_out' analog to `array_out'?  i tried a quick and dirty hack
(below, unpack in contrib/ subdir) but it doesn't work, so am now
seeking pointers from more clueful programmers.

btw, all of this noise is to support guile-pg, the latest version of
which can be found in directory:

  http://www.glug.org/alt/

thanks for any help.

thi


_______________________________________________________________
begin 644 sexp.tar.gz
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
&9TH`4```
`
end

Re: quoting of array elements + sexp_out?

От
Tom Lane
Дата:
Thien-Thi Nguyen <ttn@glug.org> writes:
> my question is: why this make-work change?

(a) So that numerics don't get quoted.  (b) The original coding was
wrong, since its rule for deciding when to quote had nothing to do with
the contents of the string being quoted, and it could thus fail to quote
when quoting was essential.

            regards, tom lane

Re: quoting of array elements + sexp_out?

От
Thien-Thi Nguyen
Дата:
   Date: Thu, 24 Jul 2003 11:09:41 -0400
   From: Tom Lane <tgl@sss.pgh.pa.us>

   (a) So that numerics don't get quoted.  (b) The original coding was
   wrong, since its rule for deciding when to quote had nothing to do
   with the contents of the string being quoted, and it could thus fail
   to quote when quoting was essential.

hmm, if the goal is to not quote numerics, why not check for that class
of types explicitly instead of checking for embedded characters?
perhaps add a type attribute "needs quotes" or a typoutput function
attribute "produces quotes"?  a scan of the contents could be avoided
entirely in this way.

thi