On Thu, May 31, 2007 at 09:58:27AM -0400, Werner Echezuria wrote: > Hello, (First of all, sorry for my english), > > I'm in a project that involves including sqlf sentences to make postgres > understand the fuzzy querys, i mean, make people to create fuzzy > predicates, these are words like fat, tall, young, old, in an sql sentence. > I guess the first step is complete. The parser know when an user writes > "CREATE FUZZY PREDICATE <name> ON <domain> AS <fuzzy set>". > > For instance, a person can create the young word as a fuzzy predicate like > this: "CREATE FUZZY PREDICATE young ON 0..120 AS (0,0,25,50)", that means, > in a domain of 0..120 a young person is between 25 and 50. The fuzzy set has > the follows: (beg,core1,core2,end), (begin of the set, first core, second > core, end of the set). > > The sentence creates a row in a catalog named "pg_fuzzypred", and we're good > till then. > > But when I write "Select * from students where age=young", brings me a > message telling me the node isn't exist. My teacher who is very involved in > the project tells me that postgres has to do the derivation principle, > before it gets to the executor (what sounds logical), in order to the > optimizer calculates all costs properly.
Ok, I didn't totally follow the patch, but it seems to be you need to, somewhere, get postgres to see an unadorned word as a fuzzy predicate. Somewhere involving IDENT probably. However, it seems to me you're opening yourself up to problems, what if someone has a column name the same as your fuzzy predicate? I suggest you also add syntax for the matching, something like: Select * from students where age FUZZYMATCH young; This means that you don't interfere with existing grammer, but you have your own bit which you can completely control. Hope this helps, -- Martijn van Oosterhout <[EMAIL PROTECTED]> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to > litigate.
signature.asc
Description: Digital signature