cvs: pear /SQL_Parser Parser.php

From: Date: Fri, 06 Dec 2002 04:00:16 +0000
Subject: cvs: pear /SQL_Parser Parser.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-7753@lists.php.net to get a copy of this message
busterb Thu Dec 5 23:00:16 2002 EDT Modified files: /pear/SQL_Parser Parser.php Log: added support for column and table aliases (thanks to Lauren Matheson) Index: pear/SQL_Parser/Parser.php diff -u pear/SQL_Parser/Parser.php:1.2 pear/SQL_Parser/Parser.php:1.3 --- pear/SQL_Parser/Parser.php:1.2 Tue Oct 22 21:41:14 2002 +++ pear/SQL_Parser/Parser.php Thu Dec 5 23:00:15 2002 @@ -18,7 +18,7 @@ // | Foundation, Inc., 59 Temple Place, Suite 330,Boston,MA 02111-1307 USA| // +----------------------------------------------------------------------+ // -// $Id: Parser.php,v 1.2 2002/10/23 01:41:14 busterb Exp $ +// $Id: Parser.php,v 1.3 2002/12/06 04:00:15 busterb Exp $ // require_once 'PEAR.php'; @@ -714,8 +714,41 @@ $this->getTok(); } elseif ($this->token == 'ident') { while ($this->token == 'ident') { - $tree['column_names'][] = $this->lexer->tokText; + $prevToken = $this->token; + $prevTokText = $this->lexer->tokText; $this->getTok(); + if ($this->token == '.') { + $columnTable = $prevTokText; + $this->getTok(); + $prevTok = $this->token; + $prevTokText = $this->lexer->tokText; + } else { + $columnTable = ''; + } + + if ($prevTok == 'ident') { + $columnName = $prevTokText; + } else { + return $this->raiseError('Expected column name'); + } + + if ($this->token == 'as') { + $this->getTok(); + if ($this->token == 'ident' ) { + $columnAlias = $this->lexer->tokText; + } else { + return $this->raiseError('Expected column alias'); + } + } else { + $columnAlias = ''; + } + + $tree['column_tables'][] = $columnTable; + $tree['column_names'][] = $columnName; + $tree['column_aliases'][] = $columnAlias; + if ($this->token != 'from') { + $this->getTok(); + } if ($this->token == ',') { $this->getTok(); } @@ -742,6 +775,17 @@ while ($this->token == 'ident') { $tree['table_names'][] = $this->lexer->tokText; $this->getTok(); + if ($this->token == 'as') { + $this->getTok(); + if ($this->token == 'ident') { + $tree['table_aliases'][] = $this->lexer->tokText; + } else { + return $this->raiseError('Expected table alias'); + } + $this->getTok(); + } else { + $tree['table_aliases'][] = ''; + } if ($this->token == ',') { $this->getTok(); } elseif (($this->token == 'where') ||

« previous php.pear.cvs (#7753) next »