Another question about Range types - Mailing list pgsql-general

From Mike Christensen
Subject Another question about Range types
Date
Msg-id CABs1bs3z-MBioFYzHumNgQb2ryO1qMAkg6KWJtFmdHq3XQuPcw@mail.gmail.com
Whole thread Raw
Responses Re: Another question about Range types  ("David Johnston" <polobo@yahoo.com>)
Re: Another question about Range types  ("Francisco Figueiredo Jr." <francisco.figueiredo.jr@gmail.com>)
List pgsql-general
There's another ongoing thread about range types, which was great
because I wasn't familiar with the feature (guess it's new in 9.2?).

I run a recipe website and was looking for *exactly* this sort of
feature a few weeks ago when I was adding in support for ranges of
ingredients (such as "1-2tsp salt").  In the end, I implemented it
using two columns (QtyHigh and QtyLow).  In the salt example, QtyHigh
would be 2 and QtyLow would be 1.  I also have some CHECK constraints
to make sure high is always higher, and they're not the same, and not
negative or anything.

Now, for 99% of the ingredients, QtyHigh would have a value and QtyLow
would just be null.  For example, "2tsp salt" would have a QtyHigh of
2 and a QtyLow of null, which would indicate there is no range.

I'm curious if I could combine these columns into one using a RANGE
type.  Obviously, if the column only stored ranges, it would be easy.
However, can a range also be one-dimensional?  Can I have a High value
and no low value?  Or would the recommended design be to have high/low
be the same?  Overall, would this scenario be an appropriate use case
for this RANGE type, since only some of the data are ranges?

BONUS Question:

How are RANGE types represented in Npgsql, or are they even supported yet?

Mike

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Range-Types in 9.2
Next
From: Menelaos PerdikeasSemantix
Date:
Subject: strategies for segregating client data when using PostgreSQL in a web app