It lacks Multiple Inheritance and doesn't provide an alternative. This sucks.
After several days trying to grok what the hell happens to cause it to generate a query with an aliased table missing (i.e. attempting to select t3.foo without specifying what t3 was).
Finally today I discovered that when I removed a layer of inheritance it suddenly worked. so if class A inherited from Class Super, then you can insert objects of Class A nicely into Class C via a relationship and it won't barf horribly. However if you make Class Super inherit from Class SuperSuper then the insert/fetch/etc calls will barf as Tangram gets itself all confused with no hint as to what the problem could be.
In fact the more I use Tangram, the more I think "given a month I could do a shit load better than this", so much so I reckon we (myself, a web designer who has picked up some perl, and our sysadmin) could replace the PoS pretty quickly if we sat down and coded something that meets our needs without trying to be clever and pure and 'elegant'.
Tangram Takes Over (Score:2)
Beware, though, creating your own mapper will drive you insane if you aren't careful. I don't use Tangram because I'm not willing to give up that much control. On the other end
Casey West
Re:Tangram Takes Over (Score:2)
The documentation is sparse, once you leave the trivial parts and it is hugely limiting.
I wouldn't mind it hiding the complexity and details, if it let me choose to be able to at least see what was problematic and why it crashed.
More error checking wouldn't go amiss either - failing to check that all the table aliases it refers to in a query are in there is a stupid loophole and the sql is generated so far from the query that its impossible to find where th
@JAPH = qw(Hacker Perl Another Just);
print reverse @JAPH;
look at the laternatives before you build your own (Score:1)
Beware of hubris about Tangram -- it does a lot of tricky perl magic in order to provide almost invisible persistence. It is not easy to build something like that.
Re:look at the laternatives before you build your (Score:2)
The schema and other bits of database behind tangram aren't anything special.
@JAPH = qw(Hacker Perl Another Just);
print reverse @JAPH;
Re:look at the laternatives before you build your (Score:1)
The schema that Tangram generates is simple, but handling the query language and doing all the TIE and proxying in order to make things like arrays work is quite complex.
"Works For Me" (Score:1)
But I certainly don't disagree that Tangram has many rough spots.