SQLF Optimization question - Mailing list pgsql-hackers

From Werner Echezuria
Subject SQLF Optimization question
Date
Msg-id 2485a25e0705310658k4d7fa8ddse45e9e94dd9b7303@mail.gmail.com
Whole thread Raw
Responses Re: SQLF Optimization question  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-hackers
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.

It's in this point where i need help, ¿What do i have to modify or create to make postgres undestand the derivation principle, where it's the point in parser tree goes to query tree and do the optimization?

I send a file, this has all the modification that my teacher and i have make to postgres (It has some words in spanish, but i guess it's understandable), and a file with the errors.

Thanks.

Attachment

pgsql-hackers by date:

Previous
From: "Zeugswetter Andreas ADI SD"
Date:
Subject: Re: TOAST usage setting
Next
From: Tom Lane
Date:
Subject: Re: New cast between inet/cidr and bytea