X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by postgresql.org (Postfix) with ESMTP id C7F329DCF98 for ; Sun, 11 Dec 2005 19:38:25 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 59988-04 for ; Sun, 11 Dec 2005 19:38:28 -0400 (AST) X-Greylist: delayed 00:59:59.458489 by SQLgrey- Received: from relais.videotron.ca (relais.videotron.ca [24.201.245.36]) by postgresql.org (Postfix) with ESMTP id B03C89DCC1F for ; Sun, 11 Dec 2005 19:38:23 -0400 (AST) Received: from [192.168.0.2] ([70.80.114.202]) by VL-MO-MR003.ip.videotron.ca (Sun Java System Messaging Server 6.2-2.05 (built Apr 28 2005)) with ESMTP id <0IRC00C3GUVUIFC0@VL-MO-MR003.ip.videotron.ca> for pgsql-hackers@postgresql.org; Sun, 11 Dec 2005 17:38:19 -0500 (EST) Date: Sun, 11 Dec 2005 17:55:09 -0500 From: Carlos Moreno Subject: Re: Please Help: PostgreSQL Query Optimizer In-reply-to: To: pgsql-hackers@postgresql.org Message-id: <439CAE4D.2030208@mochima.com> MIME-version: 1.0 Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en References: <200512111126.18566.josh@agliodbs.com> User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, score=0 required=5 tests=[none] X-Spam-Score: 0 X-Spam-Level: X-Archive-Number: 200512/570 X-Sequence-Number: 77418 Hi, I'm very new to this list -- I've been using and advocating PostgreSQL for no less than 4 or 5 years now, and have participated in some of the other mailing lists, but never on this one. My question is (short version): how would one go about adding a new (built-in) function to PostgreSQL? Long-ish version: I know the answer "in theory" -- one goes through the source code, find out how it all works, and modify/add the code to add or fix whatever feature we want. I guess my point in here would be rather a "feature request" -- except that I'd find it pretty exciting to implement it myself, and then propose the new feature by volunteering the implementation that I already wrote (seems like the spirit of open-source communities, right?) -- then of course, it would be subject to consensus, whether or not the feature makes sense and the implementation is good enough. I'm interested in adding additional hash functions -- PG supports, as part of the built-in SQL functions, MD5 hashing. So, for instance, I can simply type, at a psql console, the following: select md5('abc'); My "feature request" (which again, I'd like to implement it myself) would be the ability to do: select sha1('xyz'), sha256('etc'); (At least these two -- maybe for completeness it would be good to have sha224, 384, and 512, but I guess SHA1 and SHA-256 would be a very good and sound starting point) So, can you offer some advice or pointers on how to go about that? I started by doing a search for the string md5 through all the source code -- the problem is, md5 shows up in many many many places (it is part of the authentication protocol, among other things), so I got a little bit lost searching through it all. I wonder if you have some documents specifically aimed at providing advice and documentation for prospective developers (or for people that want to "tweak" the source code to fix/tuneup or add functionality), I guess that would be great for me in this case. Thanks! Carlos --