libpq's pollution of application namespace

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: libpq's pollution of application namespace
Date: 2005-10-16 22:21:37
Message-ID: 10833.1129501297@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I find that libpq.so exports the following symbols that have neither
PQ, pq, pg, nor lo_ as a prefix:

EncryptMD5
SockAddr_cidr_mask
fe_getauthname
fe_getauthsvc
fe_sendauth
fe_setauthsvc
freeaddrinfo_all
getaddrinfo_all
getnameinfo_all
md5_hash
rangeSockAddr

md5_hash seems a particularly unforgivable intrusion on application
namespace :-(. Any objection to fixing these things to be prefixed
with pq or pg, which is the convention we usually follow for "internal"
names that can't be static?

Also, these functions strictly speaking violate application namespace,
but given that PQ appears infix, they're probably OK.

appendBinaryPQExpBuffer
appendPQExpBuffer
appendPQExpBufferChar
appendPQExpBufferStr
createPQExpBuffer
destroyPQExpBuffer
enlargePQExpBuffer
initPQExpBuffer
printfPQExpBuffer
resetPQExpBuffer
termPQExpBuffer

It'd be nicer if we could filter out all exported symbols that don't
appear in exports.txt, but I don't know any portable way to do that.

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-10-17 04:34:40 Re: slow IN() clause for many cases
Previous Message Greg Stark 2005-10-16 21:53:40 Re: A costing analysis tool