I wrote:
> Let's see ... fleshing out this idea a bit, here's a rundown of all the
> symbols in pg_list.h and suggested new names:

Sheesh ... I forgot that I intended to do s/list_/l/g on that.

Doing so brings up one problem, which is that the old version of
lremove() conflicts with the new naming convention (it should have
had a name mentioning "ptr").  In the attached I work around this
by using "ldelete" rather than "lremove" as the base name for these
functions, but I'm open to other ideas.

ListCell accessors:

lfirst          no change
lfirsti         lfirst_int
lfirsto         lfirst_oid
lnext           no change
foreach         no change

List accessors:

length          no change

lfirstcell      new function to get first cell, or NULL if none

lfirst          rewrite as lfirst(lfirstcell()) when applied to a List

lsecond, lthird, lfourth        not clear if worth keeping

llastnode       llastcell

llast           Perhaps rewrite as lfirst(llastcell()) instead of keeping

makeListN       lmakeN or possibly lmake_N
makeListiN      lmakeN_int or lmake_N_int
makeListoN      lmakeN_oid or lmake_N_oid

lcons           no change
lconsi          lcons_int
lconso          lcons_oid

lappend         no change
lappendi        lappend_int
lappendo        lappend_oid

nconc           lconcat
We might also need a function to attach some bare ListCells to a List

nth             lnth
                lnth_int
                lnth_oid
Should add lnth_int, lnth_oid, even though there are no
corresponding functions at the moment

member          lmember
ptrMember       lmember_ptr
intMember       lmember_int
oidMember       lmember_oid

LispRemove      ldelete
lremove         ldelete_ptr
lremovei        ldelete_int
                ldelete_oid             add, though not currently used

ltruncate       no change

set_union       lunion
set_ptrUnion    lunion_ptr
                lunion_int              not currently used
set_uniono      lunion_oid

set_difference  ldifference
set_ptrDifference  ldifference_ptr
                ldifference_int not currently used
set_differenceo ldifference_oid

equali and equalo become just calls on equal()

freeList        lfree  (frees only List, not pointed-to objects)

listCopy        lcopy  (shallow copy of List only)

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to