[jifty-devel] tisql branch progress report

Ruslan Zakirov ruz at bestpractical.com
Mon Sep 1 22:51:57 EDT 2008


Hi,

What is tisql? Here is simple example:

    my $articles = new MyApp::ArticleCollection;
    $articles->tisql->query(
        ".author.name = 'ruz' AND .status = 'published' AND
.tags.value = 'tisql'"
    );

Nice, isn't it?

What's implemented:

* syntax I wanted to implement is documented, except place holders
(http://svn.jifty.org/svn/jifty.org/Jifty-DBI/branches/tisql/doc/tisql/basics.pod)
* syntax is implemented with placeholders

How you can use it at this point:

* you can use it in toy projects to taste syntax and send feedback,
point of the project is to help you write queries with complex
conditions without thinking about joins
* you can branch your real project and try to rewrite the most complex
query using tisql
* you can branch your real project and add tisql based virtual columns
and see much code it can cut
* all tests in t/tisql/ are based on some real models, may be
simplified a little. You can write a new test file or at least suggest
an uncovered model for me to play with. More covered models we have,
much confidence that project will be successful.

TODO:

* document placeholders (look into
http://svn.jifty.org/svn/jifty.org/Jifty-DBI/branches/tisql/t/tisql/searches_attrs.t
for an example)
* fix failing tests, there is some quite interesting issue with
complex join conditions and joins interdependencies
* implement joins merging, so you can write ".tags.value = 'foo' OR
.tags.value = 'bar'" without performance penalties

-- 
Best regards, Ruslan.


More information about the jifty-devel mailing list