Ruslan Zakirov
2008-09-02 02:51:57 UTC
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
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.
Best regards, Ruslan.