Saturday, December 3, 2011

Love my asterisk

Very easy to implement in the output filter.

henry.* collects everything about henry.
henry.*.address collects everything in henry up to address.

If your table is a standard triple table of persons, then this method accurately picks off sub segments of the target, each member of person having its contiguous sub segment. If the target is a square SQL table, then all depends on what we consider the graph view of a square table to be, by default, I dunno
In this version the asterisk is a match point. An on going sql procedure has to recognize the asterisk key word in a compound statement. Either that or write a better solution in the code.

Dunno yet, but in the triple by triple general select, the default, this character is easily managed. I have the code in the lab, untested.
The code for asterisk is extraordinarily simple. In its basic form when the wild thing is popped, it means let the other side select * until end.

But, with arguments, the wild card has a pointer, a forward subsegment pointer that has a sequence stop. In other words, give implied arguments to wild key, the collect until arguments, bound in its following segment. The output filter knows right away this is not the default, an will mark the row position and end position, and perform a search o the bound arguments, doing a select * until they are matched. I am going to spend some time on this guy, make it a bit more expressive as a keyword.

OK, consider this form:
*,(*.henry)
I hope it means the first asterisk wants the thing bounded to repeat itself. The thing bounded will collect up to henry at each opportunity.

So, viewing square tables as a set of rows with descending columns, we have it, the natural interpretation. It still means a bit of special code in the engine, but well worth it as square tables are very compact, and they always follow the repeated pattern.

But wait!!! That's nt all, for an extra line of code we get ?, which means collect once. So we get a collect until or collect immediate. Finally the not operator, !. By custom we say the not modifies the wild card to mean pass, no collect.

Nesting wild keys is a breeze with graph segment structures, their pointers automatically reset on request. losing on asterisk opens the parent, or gets me back to the top. Remember the basic rule, everything thing in the search string is right there, in the table, where the client put it moment ago, in nested order for a re-entrant machine that pops off blocks off triples, according to the graph segment pointers.

2 comments:

call center solutions provider said...

I really admire this, I mean it really looks interesting! Very nice write up. Anyways, its a Great post.

HGH Human Growth Hormone said...

It's actually a great and useful piece of information. I'm satisfied
that you just shared this helpful info with us.