| 
 | 
  thijsdj - 2009-06-04 09:01:39  
Hi, 
 
I found another bug in your class. Using this query: "SELECT delete FROM foo" 
I get the following error: 
Fatal error: Unsupported operand types in .../dqml2tree.php on line 477 
 
It seems like table fields with the name 'delete' are not supported. 
 
I added some comments in the dqml2tree.php file, so the row numbers are not the original ones. Below you can find line 477 which is in function _makeInterTree(). 
 
476: if (count($new_branches) > 1 || substr($inter_rule_key, 0, 1) != '!') { 
477: $_tree[$branch_rule] += $new_branches; 
478: if (substr($inter_rule_key, 0, 1) == '!') break; 
 
I'm using version 0.12. 
 
Best regards, 
Thijs 
  
  thijsdj - 2009-06-04 10:04:27 -  In reply to message 1 from thijsdj 
Hi, 
 
First of all, we're going to rename our columns called "delete". Because it's a bit awkward to have a column named "delete". 
 
I also tried PEAR::SQL_Parser, and it has the same problem! 
 
Maybe you could just document it that columns called "delete", "select", "insert" or "update" are not supported. 
 
Also the query "SELECT something, delete FROM foo" works perfectly. 
 
Keep up the good work. 
 
Regards, 
Thijs 
  
  François NEUMANN-RYSTOW - 2009-06-04 12:34:25 -  In reply to message 1 from thijsdj 
i put a  
line 
 
if (is_array($new_branches)) 
 
 
 
before line 
$_tree[$branch_rule] += $new_branches; 
 
 
 
and 
line 
 
 
if ($_tree['z'] > $_tree['a']) { 
 
before line 
    $pos = strpos(substr($this->_sql, $_tree['_a'], $_tree['_z'] - $_tree['_a']), '(', 1); 
 
 
 
 
 
the "normal" result has to be : 
Array 
( 
    [SQL] => Array 
        ( 
            [_a] => 0 
            [_z] => 22 
            [SELECT] => Array 
                ( 
                    [FIELD] => 
                ) 
 
            [DELETE] => Array 
                ( 
                    [FROM] => Array 
                        ( 
                            [TABLE] => foo 
                        ) 
 
                ) 
 
        ) 
 
) 
  
  thijsdj - 2009-06-05 07:38:44 -  In reply to message 3 from François NEUMANN-RYSTOW 
Thanks for the quick fix! It works perfectly. 
 
Regards, 
Thijs 
  
   |