Received: from localhost (maia-4.hub.org [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id C83C89FB645 for ; Thu, 25 Jan 2007 15:38:34 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-new, port 10024) with ESMTP id 01879-08 for ; Thu, 25 Jan 2007 15:38:30 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by postgresql.org (Postfix) with SMTP id A6F979FB5D8 for ; Thu, 25 Jan 2007 15:38:30 -0400 (AST) Received: (qmail 98352 invoked from network); 25 Jan 2007 19:38:29 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=Yahoo.com; h=Received:X-YMail-OSG:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=yPP2iKBAK3gQiEKg89sqZEmLNRcust3Wn176IN3eBLP3zVk7tFw/AhWJK0bbjscRGEN7bzq8FgjGJ5JvmjTjlCA+f5zqdE1otUJEUhSQNAunipv85wKYEMip3L9wWYRMbzKzrgH9JFrSXYr2cSF7QDqSkzJwWXnSS13SAt3pGtc= ; Received: from unknown (HELO jupiter.black-lion.info) (janwieck@71.230.165.92 with login) by smtp104.plus.mail.re2.yahoo.com with SMTP; 25 Jan 2007 19:38:29 -0000 X-YMail-OSG: _t3pXHEVM1mzDrfZm22a8V6cPwS4WhpBjSVh2esnWVri__Vlx75sHBCJwufCML6uqc1CByMRZdbsB4vbFdNKzGPBRqmWIg1G.cGWyCEassltXfzbFP3BbSHBrxhROncy7fEpwsdHrl7vbjIsbuEcr5s1jwXwVRDlDiMY2OTFLHVFDaZSID3cCxsAaE9F Received: from [172.21.8.23] (mars.black-lion.info [192.168.192.101]) (authenticated bits=0) by jupiter.black-lion.info (8.12.10/8.12.9) with ESMTP id l0PJc7IB020693; Thu, 25 Jan 2007 14:38:13 -0500 (EST) (envelope-from JanWieck@Yahoo.com) Message-ID: <45B9071B.9060806@Yahoo.com> Date: Thu, 25 Jan 2007 14:38:03 -0500 From: Jan Wieck User-Agent: Thunderbird 1.5.0.9 (Windows/20061207) MIME-Version: 1.0 To: Tom Lane CC: korryd@enterprisedb.com, pgsql-hackers@postgresql.org Subject: Re: Scanner/Parser question - what does _P imply? References: <1169115899.2805.66.camel@sakai.localdomain> <27181.1169134508@sss.pgh.pa.us> In-Reply-To: <27181.1169134508@sss.pgh.pa.us> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.105 tagged_above=0 required=5 tests=AWL, BAYES_00, DNS_FROM_RFC_ABUSE, DNS_FROM_RFC_POST, DNS_FROM_RFC_WHOIS, FORGED_RCVD_HELO X-Spam-Level: X-Archive-Number: 200701/1298 X-Sequence-Number: 97199 On 1/18/2007 10:35 AM, Tom Lane wrote: > writes: >> Many of the keywords listed in keywords.c are defined with symbolic >> names that end in '_P' (underscore P). >> What differentiates those keywords from the other keywords? What does >> the 'P' stand for? > > P = Parser. The reason for the _P is just to avoid conflicts with > other definitions of the macro name, either in our own code or various > platforms' header files. We haven't been totally consistent about it, > but roughly speaking we've stuck _P on when it was either known or > seemed likely that there might be a conflict. > > Some years ago there was discussion of consistently P-ifying *all* those > macros, but it didn't get done; I think Thomas or somebody objected that > it would make gram.y needlessly harder to read. Are there many people who read gram.y on a regular base? Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com #