because you didn't answer my last reply I think it's better to send the 2nd bug fix (patch includes fixes sent last times, too) again via dbi-users@ list. When you're short on time, maybe others who are involved, may take a look on it. Furthermore SQL::Statement and a lot of DBD-Modules seems to rely on the other, when both modules are installed.
I made a fix in join_2_tables which prevents detecting the shared columns as soon as more than 2 tables shall get joined. To be honest, I can't see any reason for checking $isunqualA{$c} or $isunqualB{$c} in lines 663 and 666. Because of 2 tables could have similar named columns, the check of k1/k2 in %iscolA/%iscolB is more significant. That's the reason why I can't understand the lines 659-661 - a check as done in 663/666 is enough, isn't it? In the first impression (without deep think over it) it looks like a forgotten relict from first steps in joining into MemTables. But maybe it's important for NATURAL joins - what ever that means - I'm not an SQL expert as you.
Other problems - I didn't fix, because don't know where - is the behaviour of SQL::Statement/SQL:arser on following queries:
1) select A, B from tA, tB where tA.ID=tB.A_ID and tB.PK="PATTERN" 2) select A, B from tA, tB where tA.ID=tB.A_ID and tB.PK='PATTERN1' or tB.PK='PATTERN2'
Both statement prints out a perl warning like: 1) Use of uninitialized value in substitution iterator at /usr/lib/perl5/vendor_perl/5.8.5/SQL/Parser.pm line 1806. 2) Use of uninitialized value in substitution iterator at /usr/lib/perl5/vendor_perl/5.8.5/SQL/Parser.pm line 1552. #ERROR: error during query: 'SQL ERROR: No equijoin condition in WHERE or ON clause
The 1st situations causes SQL::Parser to bail out when hit the "PATTERN" arg without raising any error.
I think better error checking could works wonders xD
Let me ask the question from my last mail again: What do you think about allow indexed table-access? It's very likely that a physical data structure knows more performant ways to search in it's data pool (XPath in XML, BTrees in Berkeley-DB-tables, we use reverse lookup hash-tables).
When I shall invest time to add the one or other bug-fix or feature as suggested, I ask for being allowed to reformat the source. It's very painful to edit, because sometimes are TAB's used, sometimes blanks, no consistent indent etc. `perltidy -gnu` or `perltidy -toc` would allow me to stop wasting time to reformat the source when editing around to program sth. and format back when finished to reduce differences made only because of beautifying ...
GeschДftsfЭhrung: Vorsitzender Andreas Resch | Arbeitsdirektor Norbert Fieseler Vorsitzender des Aufsichtsrats: Klaus KЭhn Sitz der Gesellschaft: Leverkusen | Amtsgericht KЖln, HRB 49895
If you would like to report an abuse of our service, such as a spam message, please . Если Вы хотите пожаловаться на содержимое этой страницы, пожалуйста .