Thread: A small type extension example for the contrib directory (fwd)
Hi... I added this to the contrib directory for the server, but am wondering if anyone feels that this just might be useful as a "normal" datatype, instead of just in the contrib directory... Marc G. Fournier Systems Administrator @ hub.org primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org ---------- Forwarded message ---------- Date: Sun, 11 Jan 1998 21:24:40 +0100 (CET) From: Tom I Helbekkmo <tih@Hamartun.Priv.NO> To: The Hermit Hacker <scrappy@hub.org> Subject: A small type extension example for the contrib directory Hi! I figured the accompanying code might fit well in the contrib directory. I don't know who to send it to, though, so I'm just sending it to you. :-) From the README: | PostgreSQL type extensions for IP and MAC addresses. | | I needed to record IP and MAC level ethernet addresses in a data | base, and I really didn't want to store them as plain strings, with | no enforced error checking, so I put together the accompanying code | as my first experiment with adding a data type to PostgreSQL. I | then thought that this might be useful to others, both directly and | as a very simple example of how to do this sort of thing, so here | it is, in the hope that it will be useful. -tih -- Popularity is the hallmark of mediocrity. --Niles Crane, "Frasier"
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
Brett McCormick
Date:
I think it's great for the distribution! speaking of which, I've written some more datetime routines which I think are pretty basic. One just returns the datetime as the number of seconds since the epoch (why wasn't that possible?) and the other is an interface to the strftime function call, to custom format date strings... what should the function names be called? right now i've got datetime2seconds & strfdatetime.. any other suggestions? and where should I submit the code? On Sun, 25 January 1998, at 03:12:09, The Hermit Hacker wrote: > Hi... > > I added this to the contrib directory for the server, but am > wondering if anyone feels that this just might be useful as a "normal" > datatype, instead of just in the contrib directory... > > Marc G. Fournier > Systems Administrator @ hub.org > primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org > > ---------- Forwarded message ---------- > Date: Sun, 11 Jan 1998 21:24:40 +0100 (CET) > From: Tom I Helbekkmo <tih@Hamartun.Priv.NO> > To: The Hermit Hacker <scrappy@hub.org> > Subject: A small type extension example for the contrib directory > > Hi! > > I figured the accompanying code might fit well in the contrib > directory. I don't know who to send it to, though, so I'm just > sending it to you. :-) From the README: > > | PostgreSQL type extensions for IP and MAC addresses. > | > | I needed to record IP and MAC level ethernet addresses in a data > | base, and I really didn't want to store them as plain strings, with > | no enforced error checking, so I put together the accompanying code > | as my first experiment with adding a data type to PostgreSQL. I > | then thought that this might be useful to others, both directly and > | as a very simple example of how to do this sort of thing, so here > | it is, in the hope that it will be useful. > > -tih > -- > Popularity is the hallmark of mediocrity. --Niles Crane, "Frasier"
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
Peter T Mount
Date:
On Sun, 25 Jan 1998, The Hermit Hacker wrote: > I added this to the contrib directory for the server, but am > wondering if anyone feels that this just might be useful as a "normal" > datatype, instead of just in the contrib directory... Personally, I would, as at work, I have a database that contains all of our machines on the network. It's a real pain handling IP & MAC addresses as strings. The IP type would be more useful, as I'd thought that people would use it in things like web useage logs, etc. > | PostgreSQL type extensions for IP and MAC addresses. > | > | I needed to record IP and MAC level ethernet addresses in a data > | base, and I really didn't want to store them as plain strings, with > | no enforced error checking, so I put together the accompanying code > | as my first experiment with adding a data type to PostgreSQL. I > | then thought that this might be useful to others, both directly and > | as a very simple example of how to do this sort of thing, so here > | it is, in the hope that it will be useful. -- Peter T Mount petermount@earthling.net or pmount@maidast.demon.co.uk Main Homepage: http://www.demon.co.uk/finder Work Homepage: http://www.maidstone.gov.uk Work EMail: peter@maidstone.gov.uk
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
Bruce Momjian
Date:
> > I figured the accompanying code might fit well in the contrib > directory. I don't know who to send it to, though, so I'm just > sending it to you. :-) From the README: /contrib looks like a good place. We need to re-emphasise contrib, rather than putting this in the backend. > > | PostgreSQL type extensions for IP and MAC addresses. > | > | I needed to record IP and MAC level ethernet addresses in a data > | base, and I really didn't want to store them as plain strings, with > | no enforced error checking, so I put together the accompanying code > | as my first experiment with adding a data type to PostgreSQL. I > | then thought that this might be useful to others, both directly and > | as a very simple example of how to do this sort of thing, so here > | it is, in the hope that it will be useful. > > -tih > -- > Popularity is the hallmark of mediocrity. --Niles Crane, "Frasier" > > --1426065427-653378052-884550280=:24931-- > > -- Bruce Momjian maillist@candle.pha.pa.us
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
James Hughes
Date:
On Sun, 25 Jan 1998, Peter T Mount wrote: > On Sun, 25 Jan 1998, The Hermit Hacker wrote: > > > I added this to the contrib directory for the server, but am > > wondering if anyone feels that this just might be useful as a "normal" > > datatype, instead of just in the contrib directory... > > Personally, I would, as at work, I have a database that contains all of > our machines on the network. It's a real pain handling IP & MAC addresses > as strings. > > The IP type would be more useful, as I'd thought that people would use it > in things like web useage logs, etc. > > > | PostgreSQL type extensions for IP and MAC addresses. > > | > > | I needed to record IP and MAC level ethernet addresses in a data > > | base, and I really didn't want to store them as plain strings, with > > | no enforced error checking, so I put together the accompanying code > > | as my first experiment with adding a data type to PostgreSQL. I > > | then thought that this might be useful to others, both directly and > > | as a very simple example of how to do this sort of thing, so here > > | it is, in the hope that it will be useful. > Hmm... It would be nice to see PgSQL integrated into Scotty/Tkined :) -James
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
Tom I Helbekkmo
Date:
On Sun, 25 Jan 1998, The Hermit Hacker wrote: > I added this to the contrib directory for the server, but am > wondering if anyone feels that this just might be useful as a "normal" > datatype, instead of just in the contrib directory... I, naturally, like the idea. :-) However, there are problems with the code I submitted -- as I said, it's my first shot at this: - since then, I've learned (hi, Bruce!) that commutativity is not what I thought it was, and that LIKE is not only not commutative, it's not even reflexive. - the Makefile is BSD-specific, and I don't know how to avoid this. - my LIKE operator for IP addresses fails. I've written about this to the questions list, and I'm more and more certain that this has to be a bug in PostgreSQL. (Yes, that's arrogant of me, but I can't for the life of me see any other possibility. If someone could look at it (there's a sample "test.sql" that shows the problem, and I've left the debug output in the C source), that would be great!) - I'm using 8 bytes of storage for each type, while I probably could get away with 5 for IP addresses and 6 for ethernet addresses. I just didn't know for sure what the alignment aspects and so on were, and I had the disk space to spare, so I never experimented to find out. With all that said, I still think that this is both a useful data type extension and a neat, small example of how to do this. If it is to be used as a base for creating a new internal data type, though, it must be looked at carefully by someone else; I am only an egg. I'd also like to be able to index on IP addresses, but the amount of hair needed to add this seems to be somewhat larger than what I have. If someone wants to show me how to extend my code to allow this, I would very much appreciate it. I'm attaching an updated version of the sample files. Most of the occurrences of "commutator = ..." are gone now, and there is a note in the README to the effect that LIKE and NOT LIKE do not work. -tih -- Popularity is the hallmark of mediocrity. --Niles Crane, "Frasier"
Attachment
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
darcy@druid.net (D'Arcy J.M. Cain)
Date:
Thus spake The Hermit Hacker > I added this to the contrib directory for the server, but am > wondering if anyone feels that this just might be useful as a "normal" > datatype, instead of just in the contrib directory... I have always thought that this would be useful. Perhaps we should have a "Would be nice if we had it" list of datatypes to see if anyone would like to implement some. How's this for starters? IP addresses MAC addresses Phone numbers (with international and area codes) -- D'Arcy J.M. Cain <darcy@{druid|vex}.net> | Democracy is three wolves http://www.druid.net/darcy/ | and a sheep voting on +1 416 424 2871 (DoD#0082) (eNTP) | what's for dinner.
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
"Stan Brown"
Date:
> >Hi... > > I added this to the contrib directory for the server, but am >wondering if anyone feels that this just might be useful as a "normal" >datatype, instead of just in the contrib directory... > >Marc G. Fournier >Systems Administrator @ hub.org >primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org > I think this would be great as a standard tyoe. Many people wn't poke around n the source tree looking for neat things like this, but would gain even greater respect for Postgres if they found it in the default system. Remember we know have a lot of people installing RedHat inux, and being presented with Postgres as the default SQL server. I would like to see them impressed by the functionality. Many of these people will probably want to do table with network parmaters in them. I recomend making it a standard type. -- Stan Brown stanb@netcom.com 770-996-6955 Factory Automation Systems Atlanta Ga. -- Look, look, see Windows 95. Buy, lemmings, buy! Pay no attention to that cliff ahead... Henry Spencer (c) 1998 Stan Brown. Redistribution via the Microsoft Network is prohibited.
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
"Thomas G. Lockhart"
Date:
> I added this to the contrib directory for the server, but am > wondering if anyone feels that this just might be useful as a "normal" > datatype, instead of just in the contrib directory... I second Bruce's point that contrib is a useful place and should be re-emphasized. In particular, it is a great place for new data types and functions to be implemented, even if they might end up in the backend in a future release. For example, contrib has code to implement 64-bit integers, and perhaps someday we will move them to the backend. In the meantime, you can install anything from contrib into template1 and your whole installation can then use it. - Tom In hindsight, this thread is a _good_ case for contrib, since some of the features of the candidate data type (e.g. "like" pattern matching) may not have behaved properly and needed more work.
Re: [HACKERS] A small type extension example for the contrib directory (fwd)
From
Brett McCormick
Date:
Except, of course, if the database was created before the function/types were inserted into template1, correct? On Tue, 27 January 1998, at 15:22:27, Thomas G. Lockhart wrote: > In the meantime, you can install > anything from contrib into template1 and your whole installation can then use it. > > - Tom >