Fixed tests, added more tests, added license to all files, added some docblocks
This commit is contained in:
parent
852efdf306
commit
6737c5cea4
@ -28,7 +28,7 @@
|
|||||||
* @subpackage Query
|
* @subpackage Query
|
||||||
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
* @link www.phpdoctrine.org
|
* @link http://www.phpdoctrine.org
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
@ -111,11 +111,22 @@ class Doctrine_Query_Parser
|
|||||||
$this->_conn = $conn;
|
$this->_conn = $conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the connection object used by the query.
|
||||||
|
*
|
||||||
|
* @return Doctrine_Connection
|
||||||
|
*/
|
||||||
public function getConnection()
|
public function getConnection()
|
||||||
{
|
{
|
||||||
return $this->_conn;
|
return $this->_conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a production object with the given name.
|
||||||
|
*
|
||||||
|
* @param string $name production name
|
||||||
|
* @return Doctrine_Query_Production
|
||||||
|
*/
|
||||||
public function getProduction($name)
|
public function getProduction($name)
|
||||||
{
|
{
|
||||||
if ( ! isset($this->_productions[$name])) {
|
if ( ! isset($this->_productions[$name])) {
|
||||||
@ -154,12 +165,17 @@ class Doctrine_Query_Parser
|
|||||||
public function logError($message = '')
|
public function logError($message = '')
|
||||||
{
|
{
|
||||||
if ($message === '') {
|
if ($message === '') {
|
||||||
|
if ($this->lookahead === null) {
|
||||||
|
$message = 'Unexpected end of string.';
|
||||||
|
} else {
|
||||||
$message = 'Unexpected "' . $this->lookahead['value'] . '"';
|
$message = 'Unexpected "' . $this->lookahead['value'] . '"';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->_errorDistance >= self::MIN_ERROR_DISTANCE) {
|
if ($this->_errorDistance >= self::MIN_ERROR_DISTANCE) {
|
||||||
$message .= 'at line ' . $this->lookahead['line']
|
if ($this->lookahead !== null) {
|
||||||
. ', column ' . $this->lookahead['column'];
|
$message .= ' at position ' . $this->lookahead['position'];
|
||||||
|
}
|
||||||
$this->_errors[] = $message;
|
$this->_errors[] = $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,6 +192,11 @@ class Doctrine_Query_Parser
|
|||||||
return $this->_scanner;
|
return $this->_scanner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the parse tree printer object associated with this object.
|
||||||
|
*
|
||||||
|
* @return Doctrine_Query_Printer
|
||||||
|
*/
|
||||||
public function getPrinter()
|
public function getPrinter()
|
||||||
{
|
{
|
||||||
return $this->_printer;
|
return $this->_printer;
|
||||||
@ -193,11 +214,11 @@ class Doctrine_Query_Parser
|
|||||||
$this->getProduction('QueryLanguage')->execute();
|
$this->getProduction('QueryLanguage')->execute();
|
||||||
|
|
||||||
if ($this->lookahead !== null) {
|
if ($this->lookahead !== null) {
|
||||||
$this->_error('End of string expected.');
|
$this->logError('End of string expected');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($this->_errors)) {
|
if (count($this->_errors)) {
|
||||||
$msg = 'Query string parsing failed ('
|
$msg = 'Errors were detected during the query parsing ('
|
||||||
. implode('; ', $this->_errors) . ').';
|
. implode('; ', $this->_errors) . ').';
|
||||||
throw new Doctrine_Query_Parser_Exception($msg);
|
throw new Doctrine_Query_Parser_Exception($msg);
|
||||||
}
|
}
|
||||||
|
@ -1,26 +1,91 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A parse tree printer for Doctrine Query Language parser.
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
|
*/
|
||||||
class Doctrine_Query_Printer
|
class Doctrine_Query_Printer
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Current indentation level
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
protected $_indent = 0;
|
protected $_indent = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines whether parse tree is printed (default, false) or not (true).
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
protected $_silent;
|
protected $_silent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new parse tree printer.
|
||||||
|
*
|
||||||
|
* @param bool $silent Parse tree will not be printed if true.
|
||||||
|
*/
|
||||||
public function __construct($silent = false)
|
public function __construct($silent = false)
|
||||||
{
|
{
|
||||||
$this->_silent = $silent;
|
$this->_silent = $silent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints an opening parenthesis followed by production name and increases
|
||||||
|
* indentation level by one.
|
||||||
|
*
|
||||||
|
* This method is called before executing a production.
|
||||||
|
*
|
||||||
|
* @param string $name production name
|
||||||
|
*/
|
||||||
public function startProduction($name)
|
public function startProduction($name)
|
||||||
{
|
{
|
||||||
$this->println('(' . $name);
|
$this->println('(' . $name);
|
||||||
$this->_indent++;
|
$this->_indent++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decreases indentation level by one and prints a closing parenthesis.
|
||||||
|
*
|
||||||
|
* This method is called after executing a production.
|
||||||
|
*/
|
||||||
public function endProduction()
|
public function endProduction()
|
||||||
{
|
{
|
||||||
$this->_indent--;
|
$this->_indent--;
|
||||||
$this->println(')');
|
$this->println(')');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints text indented with spaces depending on current indentation level.
|
||||||
|
*
|
||||||
|
* @param string $str text
|
||||||
|
*/
|
||||||
public function println($str)
|
public function println($str)
|
||||||
{
|
{
|
||||||
if ( ! $this->_silent) {
|
if ( ! $this->_silent) {
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
* @subpackage Query
|
* @subpackage Query
|
||||||
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
* @link www.phpdoctrine.org
|
* @link http://www.phpdoctrine.org
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
@ -66,7 +66,7 @@ abstract class Doctrine_Query_Production
|
|||||||
*/
|
*/
|
||||||
public function __call($method, $args)
|
public function __call($method, $args)
|
||||||
{
|
{
|
||||||
$this->_parser->getPrinter()->startProduction($name);
|
$this->_parser->getPrinter()->startProduction($method);
|
||||||
$retval = $this->_parser->getProduction($method)->execute($args);
|
$retval = $this->_parser->getProduction($method)->execute($args);
|
||||||
$this->_parser->getPrinter()->endProduction();
|
$this->_parser->getPrinter()->endProduction();
|
||||||
|
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the LGPL. For more information, see
|
|
||||||
* <http://www.phpdoctrine.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class represents the AbstractSchemaName production in DQL grammar.
|
|
||||||
*
|
|
||||||
* <code>
|
|
||||||
* AbstractSchemaName = identifier
|
|
||||||
* </code>
|
|
||||||
*
|
|
||||||
* @package Doctrine
|
|
||||||
* @subpackage Query
|
|
||||||
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
|
||||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
|
||||||
* @link www.phpdoctrine.org
|
|
||||||
* @since 1.0
|
|
||||||
* @version $Revision$
|
|
||||||
*/
|
|
||||||
class Doctrine_Query_Production_AbstractSchemaName extends Doctrine_Query_Production
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Executes the AbstractSchemaName production.
|
|
||||||
*
|
|
||||||
* <code>
|
|
||||||
* AbstractSchemaName = identifier
|
|
||||||
* </code>
|
|
||||||
*
|
|
||||||
* @param array $params This production does not take any parameters.
|
|
||||||
* @return Doctrine_Table|null the table object corresponding the identifier
|
|
||||||
* name
|
|
||||||
*/
|
|
||||||
public function execute(array $params = array())
|
|
||||||
{
|
|
||||||
$token = $this->_parser->lookahead;
|
|
||||||
|
|
||||||
if ($token['type'] === Doctrine_Query_Token::T_IDENTIFIER) {
|
|
||||||
$this->_parser->match(Doctrine_Query_Token::T_IDENTIFIER);
|
|
||||||
} else {
|
|
||||||
$this->_parser->logError('Identifier expected');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $token;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Atom = string | numeric | input_parameter
|
* Atom = string | numeric | input_parameter
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_Atom extends Doctrine_Query_Production
|
class Doctrine_Query_Production_Atom extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BetweenExpression = ["NOT"] "BETWEEN" Expression "AND" Expression
|
* BetweenExpression = ["NOT"] "BETWEEN" Expression "AND" Expression
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_BetweenExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_BetweenExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ComparisonExpression = ComparisonOperator ( QuantifiedExpression | Expression | "(" Subselect ")" )
|
* ComparisonExpression = ComparisonOperator ( QuantifiedExpression | Expression | "(" Subselect ")" )
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_ComparisonExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_ComparisonExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ComparisonOperator = "=" | "<" | "<=" | "<>" | ">" | ">="
|
* ComparisonOperator = "=" | "<" | "<=" | "<>" | ">" | ">="
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_ComparisonOperator extends Doctrine_Query_Production
|
class Doctrine_Query_Production_ComparisonOperator extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ConditionalExpression = ConditionalTerm {"OR" ConditionalTerm}
|
* ConditionalExpression = ConditionalTerm {"OR" ConditionalTerm}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_ConditionalExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_ConditionalExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ConditionalFactor = ["NOT"] ConditionalPrimary
|
* ConditionalFactor = ["NOT"] ConditionalPrimary
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_ConditionalFactor extends Doctrine_Query_Production
|
class Doctrine_Query_Production_ConditionalFactor extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ConditionalPrimary = SimpleConditionalExpression | "(" ConditionalExpression ")"
|
* ConditionalPrimary = SimpleConditionalExpression | "(" ConditionalExpression ")"
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_ConditionalPrimary extends Doctrine_Query_Production
|
class Doctrine_Query_Production_ConditionalPrimary extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ConditionalTerm = ConditionalFactor {"AND" ConditionalFactor}
|
* ConditionalTerm = ConditionalFactor {"AND" ConditionalFactor}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_ConditionalTerm extends Doctrine_Query_Production
|
class Doctrine_Query_Production_ConditionalTerm extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DeleteClause = "DELETE" "FROM" RangeVariableDeclaration
|
* DeleteClause = "DELETE" "FROM" RangeVariableDeclaration
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_DeleteClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_DeleteClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DeleteStatement = DeleteClause [WhereClause] [OrderByClause] [LimitClause]
|
* DeleteStatement = DeleteClause [WhereClause] [OrderByClause] [LimitClause]
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_DeleteStatement extends Doctrine_Query_Production
|
class Doctrine_Query_Production_DeleteStatement extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expression = Term {("+" | "-") Term}
|
* Expression = Term {("+" | "-") Term}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_Expression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_Expression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factor = [("+" | "-")] Primary
|
* Factor = [("+" | "-")] Primary
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_Factor extends Doctrine_Query_Production
|
class Doctrine_Query_Production_Factor extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FromClause = "FROM" IdentificationVariableDeclaration {"," IdentificationVariableDeclaration}
|
* FromClause = "FROM" IdentificationVariableDeclaration {"," IdentificationVariableDeclaration}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_FromClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_FromClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GroupByClause = "GROUP" "BY" GroupByItem {"," GroupByItem}
|
* GroupByClause = "GROUP" "BY" GroupByItem {"," GroupByItem}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_GroupByClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_GroupByClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OrderByItem = PathExpression
|
* OrderByItem = PathExpression
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_GroupByItem extends Doctrine_Query_Production
|
class Doctrine_Query_Production_GroupByItem extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HavingClause = "HAVING" ConditionalExpression
|
* HavingClause = "HAVING" ConditionalExpression
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_HavingClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_HavingClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IdentificationVariable = identifier
|
* IdentificationVariable = identifier
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_IdentificationVariable extends Doctrine_Query_Production
|
class Doctrine_Query_Production_IdentificationVariable extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IdentificationVariableDeclaration = RangeVariableDeclaration {Join}
|
* IdentificationVariableDeclaration = RangeVariableDeclaration {Join}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_IdentificationVariableDeclaration extends Doctrine_Query_Production
|
class Doctrine_Query_Production_IdentificationVariableDeclaration extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Join = ["LEFT" ["OUTER"] | "INNER"] "JOIN" PathExpression "AS" identifier
|
* Join = ["LEFT" ["OUTER"] | "INNER"] "JOIN" PathExpression "AS" identifier
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_Join extends Doctrine_Query_Production
|
class Doctrine_Query_Production_Join extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OrderByClause = "ORDER" "BY" OrderByItem {"," OrderByItem}
|
* OrderByClause = "ORDER" "BY" OrderByItem {"," OrderByItem}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_OrderByClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_OrderByClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OrderByItem = PathExpression ["ASC" | "DESC"]
|
* OrderByItem = PathExpression ["ASC" | "DESC"]
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_OrderByItem extends Doctrine_Query_Production
|
class Doctrine_Query_Production_OrderByItem extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PathExpression = identifier { "." identifier }
|
* PathExpression = identifier { "." identifier }
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_PathExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_PathExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PathExpressionEndingWithAsterisk = {identifier "."} "*"
|
* PathExpressionEndingWithAsterisk = {identifier "."} "*"
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_PathExpressionEndingWithAsterisk extends Doctrine_Query_Production
|
class Doctrine_Query_Production_PathExpressionEndingWithAsterisk extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,35 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary = PathExpression | Atom | "(" Expression ")" | Function |
|
* Primary = PathExpression | Atom | "(" Expression ")" | Function |
|
||||||
* AggregateExpression
|
* AggregateExpression
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_Primary extends Doctrine_Query_Production
|
class Doctrine_Query_Production_Primary extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QuantifiedExpression = ("ALL" | "ANY" | "SOME") "(" Subselect ")"
|
* QuantifiedExpression = ("ALL" | "ANY" | "SOME") "(" Subselect ")"
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_QuantifiedExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_QuantifiedExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QueryLanguage = SelectStatement | UpdateStatement | DeleteStatement
|
* QueryLanguage = SelectStatement | UpdateStatement | DeleteStatement
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_QueryLanguage extends Doctrine_Query_Production
|
class Doctrine_Query_Production_QueryLanguage extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,20 +1,46 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RangeVariableDeclaration = AbstractSchemaName ["AS"] IdentificationVariable
|
* RangeVariableDeclaration = PathExpression [["AS"] IdentificationVariable]
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_RangeVariableDeclaration extends Doctrine_Query_Production
|
class Doctrine_Query_Production_RangeVariableDeclaration extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
public function execute(array $params = array())
|
public function execute(array $params = array())
|
||||||
{
|
{
|
||||||
$abstractSchemaName = $this->AbstractSchemaName();
|
$this->PathExpression();
|
||||||
|
|
||||||
if ($this->_isNextToken(Doctrine_Query_Token::T_AS)) {
|
if ($this->_isNextToken(Doctrine_Query_Token::T_AS)) {
|
||||||
$this->_parser->match(Doctrine_Query_Token::T_AS);
|
$this->_parser->match(Doctrine_Query_Token::T_AS);
|
||||||
}
|
$this->IdentificationVariable();
|
||||||
|
} elseif ($this->_isNextToken(Doctrine_Query_Token::T_IDENTIFIER)) {
|
||||||
$identifier = $this->IdentificationVariable();
|
$this->IdentificationVariable();
|
||||||
|
}
|
||||||
return array('abstractSchemaName' => $abstractSchemaName,
|
|
||||||
'identifier' => $identifier);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SelectClause = "SELECT" ["DISTINCT"] SelectExpression {"," SelectExpression}
|
* SelectClause = "SELECT" ["DISTINCT"] SelectExpression {"," SelectExpression}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_SelectClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_SelectClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,35 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SelectExpression = (PathExpressionEndingWithAsterisk | Expression | "(" Subselect ")")
|
* SelectExpression = (PathExpressionEndingWithAsterisk | Expression | "(" Subselect ")")
|
||||||
* [["AS"] IdentificationVariable]
|
* [["AS"] IdentificationVariable]
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_SelectExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_SelectExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,35 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SelectStatement = [SelectClause] FromClause [WhereClause] [GroupByClause]
|
* SelectStatement = [SelectClause] FromClause [WhereClause] [GroupByClause]
|
||||||
* [HavingClause] [OrderByClause] [LimitClause]
|
* [HavingClause] [OrderByClause] [LimitClause]
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_SelectStatement extends Doctrine_Query_Production
|
class Doctrine_Query_Production_SelectStatement extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,37 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SimpleConditionalExpression =
|
* SimpleConditionalExpression =
|
||||||
* Expression (ComparisonExpression | BetweenExpression | LikeExpression |
|
* Expression (ComparisonExpression | BetweenExpression | LikeExpression |
|
||||||
* InExpression | NullComparisonExpression | QuantifiedExpression) |
|
* InExpression | NullComparisonExpression | QuantifiedExpression) |
|
||||||
* ExistsExpression
|
* ExistsExpression
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_SimpleConditionalExpression extends Doctrine_Query_Production
|
class Doctrine_Query_Production_SimpleConditionalExpression extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Term = Factor {("*" | "/") Factor}
|
* Term = Factor {("*" | "/") Factor}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_Term extends Doctrine_Query_Production
|
class Doctrine_Query_Production_Term extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UpdateClause = "UPDATE" RangeVariableDeclaration "SET" UpdateItem {"," UpdateItem}
|
* UpdateClause = "UPDATE" RangeVariableDeclaration "SET" UpdateItem {"," UpdateItem}
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_UpdateClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_UpdateClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UpdateStatement = UpdateClause [WhereClause] [OrderByClause] [LimitClause]
|
* UpdateStatement = UpdateClause [WhereClause] [OrderByClause] [LimitClause]
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_UpdateStatement extends Doctrine_Query_Production
|
class Doctrine_Query_Production_UpdateStatement extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WhereClause = "WHERE" ConditionalExpression
|
* WhereClause = "WHERE" ConditionalExpression
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Doctrine_Query_Production_WhereClause extends Doctrine_Query_Production
|
class Doctrine_Query_Production_WhereClause extends Doctrine_Query_Production
|
||||||
{
|
{
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ...
|
* Scans a DQL query for tokens.
|
||||||
*
|
*
|
||||||
* @package Doctrine
|
* @package Doctrine
|
||||||
* @subpackage Query
|
* @subpackage Query
|
||||||
@ -39,7 +39,7 @@ class Doctrine_Query_Scanner
|
|||||||
*/
|
*/
|
||||||
protected $_tokens = array();
|
protected $_tokens = array();
|
||||||
|
|
||||||
protected $_nextToken = 0;
|
protected $_position = 0;
|
||||||
|
|
||||||
protected $_peek = 0;
|
protected $_peek = 0;
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ class Doctrine_Query_Scanner
|
|||||||
|
|
||||||
public function peek()
|
public function peek()
|
||||||
{
|
{
|
||||||
return $this->_tokens[$this->_nextToken + $this->_peek++];
|
return $this->_tokens[$this->_position + $this->_peek++];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resetPeek()
|
public function resetPeek()
|
||||||
@ -144,7 +144,12 @@ class Doctrine_Query_Scanner
|
|||||||
public function next()
|
public function next()
|
||||||
{
|
{
|
||||||
$this->_peek = 0;
|
$this->_peek = 0;
|
||||||
return $this->_tokens[$this->_nextToken++];
|
|
||||||
|
if (isset($this->_tokens[$this->_position])) {
|
||||||
|
return $this->_tokens[$this->_position++];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,35 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.phpdoctrine.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Container for token type constants of Doctrine Query Language.
|
||||||
|
*
|
||||||
|
* @package Doctrine
|
||||||
|
* @subpackage Query
|
||||||
|
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 1.0
|
||||||
|
* @version $Revision$
|
||||||
|
*/
|
||||||
final class Doctrine_Query_Token
|
final class Doctrine_Query_Token
|
||||||
{
|
{
|
||||||
const T_NONE = 1;
|
const T_NONE = 1;
|
||||||
|
@ -29,12 +29,12 @@ OrderByClause = "ORDER" "BY" OrderByItem {"," OrderByItem}
|
|||||||
LimitClause = "LIMIT" Expression ["OFFSET" Expression]
|
LimitClause = "LIMIT" Expression ["OFFSET" Expression]
|
||||||
UpdateClause = "UPDATE" RangeVariableDeclaration "SET" UpdateItem {"," UpdateItem}
|
UpdateClause = "UPDATE" RangeVariableDeclaration "SET" UpdateItem {"," UpdateItem}
|
||||||
|
|
||||||
OrderByItem = PathExpression ["ASC" | "DESC"]
|
OrderByItem = Expression ["ASC" | "DESC"]
|
||||||
GroupByItem = PathExpression
|
GroupByItem = PathExpression
|
||||||
UpdateItem = PathExpression "=" (Expression | "NULL")
|
UpdateItem = PathExpression "=" (Expression | "NULL")
|
||||||
|
|
||||||
IdentificationVariableDeclaration = RangeVariableDeclaration {Join}
|
IdentificationVariableDeclaration = RangeVariableDeclaration {Join}
|
||||||
RangeVariableDeclaration = AbstractSchemaName ["AS"] IdentificationVariable
|
RangeVariableDeclaration = PathExpression [["AS"] IdentificationVariable]
|
||||||
|
|
||||||
Join = ["LEFT" | "INNER"] "JOIN" RangeVariableDeclaration [("ON" | "WITH") ConditionalExpression] [IndexBy]
|
Join = ["LEFT" | "INNER"] "JOIN" RangeVariableDeclaration [("ON" | "WITH") ConditionalExpression] [IndexBy]
|
||||||
IndexBy = "INDEX" "BY" PathExpression
|
IndexBy = "INDEX" "BY" PathExpression
|
||||||
|
@ -1,257 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the LGPL. For more information, see
|
|
||||||
* <http://www.phpdoctrine.com>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Doctrine_UnitTestCase
|
|
||||||
*
|
|
||||||
* @package Doctrine
|
|
||||||
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
|
|
||||||
* @author Bjarte S. Karlsen <bjartka@pvv.ntnu.no>
|
|
||||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
|
||||||
* @category Object Relational Mapping
|
|
||||||
* @link www.phpdoctrine.com
|
|
||||||
* @since 1.0
|
|
||||||
* @version $Revision$
|
|
||||||
*/
|
|
||||||
|
|
||||||
require_once dirname(__FILE__) . '/DoctrineTest/UnitTestCase.php';
|
|
||||||
require_once dirname(__FILE__) . '/DoctrineTest/GroupTest.php';
|
|
||||||
require_once dirname(__FILE__) . '/DoctrineTest/Doctrine_UnitTestCase.php';
|
|
||||||
require_once dirname(__FILE__) . '/DoctrineTest/Reporter.php';
|
|
||||||
|
|
||||||
class DoctrineTest
|
|
||||||
{
|
|
||||||
|
|
||||||
protected $testGroup; // the default test group
|
|
||||||
protected $groups;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->requireModels();
|
|
||||||
$this->testGroup = new GroupTest('Doctrine Framework Unit Tests', 'main');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a test to be run.
|
|
||||||
*
|
|
||||||
* This is a thin wrapper around GroupTest that also store the testcase in
|
|
||||||
* this class so that it is easier to create custom groups
|
|
||||||
*
|
|
||||||
* @param UnitTestCase A test case
|
|
||||||
*/
|
|
||||||
public function addTestCase($testCase){
|
|
||||||
$this->groups[$testCase->getName()] = $testCase;
|
|
||||||
$this->testGroup->addTestCase($testCase);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the tests
|
|
||||||
*
|
|
||||||
* This method will run the tests with the correct Reporter. It will run
|
|
||||||
* grouped tests if asked to and filter results. It also has support for
|
|
||||||
* running coverage report.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function run(){
|
|
||||||
$testGroup = $this->testGroup;
|
|
||||||
if (PHP_SAPI === 'cli') {
|
|
||||||
require_once(dirname(__FILE__) . '/DoctrineTest/Reporter/Cli.php');
|
|
||||||
$reporter = new DoctrineTest_Reporter_Cli();
|
|
||||||
$argv = $_SERVER['argv'];
|
|
||||||
array_shift($argv);
|
|
||||||
$options = $this->parseOptions($argv);
|
|
||||||
} else {
|
|
||||||
require_once(dirname(__FILE__) . '/DoctrineTest/Reporter/Html.php');
|
|
||||||
$options = $_GET;
|
|
||||||
if(isset($options["filter"])){
|
|
||||||
$options["filter"] = explode(",", $options["filter"]);
|
|
||||||
}
|
|
||||||
if(isset($options["group"])){
|
|
||||||
$options["group"] = explode(",", $options["group"]);
|
|
||||||
}
|
|
||||||
$reporter = new DoctrineTest_Reporter_Html();
|
|
||||||
}
|
|
||||||
|
|
||||||
//replace global group with custom group if we have group option set
|
|
||||||
if (isset($options['group'])) {
|
|
||||||
$testGroup = new GroupTest('Doctrine Framework Custom test', 'custom');
|
|
||||||
foreach($options['group'] as $group) {
|
|
||||||
if (isset($this->groups[$group])) {
|
|
||||||
$testGroup->addTestCase($this->groups[$group]);
|
|
||||||
} else if (class_exists($group)) {
|
|
||||||
$testGroup->addTestCase(new $group);
|
|
||||||
} else {
|
|
||||||
die($group . " is not a valid group or doctrine test class\n ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$filter = '';
|
|
||||||
if (isset($options['filter'])) {
|
|
||||||
$filter = $options['filter'];
|
|
||||||
}
|
|
||||||
|
|
||||||
//show help text
|
|
||||||
if (isset($options['help'])) {
|
|
||||||
echo "Doctrine test runner help\n";
|
|
||||||
echo "===========================\n";
|
|
||||||
echo " To run all tests simply run this script without arguments. \n";
|
|
||||||
echo "\n Flags:\n";
|
|
||||||
echo " -coverage will generate coverage report data that can be viewed with the cc.php script in this folder. NB! This takes time. You need xdebug to run this\n";
|
|
||||||
echo " -group <groupName1> <groupName2> <className1> Use this option to run just a group of tests or tests with a given classname. Groups are currently defined as the variable name they are called in this script.\n";
|
|
||||||
echo " -filter <string1> <string2> case insensitive strings that will be applied to the className of the tests. A test_classname must contain all of these strings to be run\n";
|
|
||||||
echo "\nAvailable groups:\n tickets, transaction, driver, data_dict, sequence, export, import, expression, core, relation, data_types, utility, db, event_listener, query_tests, record, cache\n";
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
|
|
||||||
//generate coverage report
|
|
||||||
if (isset($options['coverage'])) {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The below code will not work for me (meus). It would be nice if
|
|
||||||
* somebody could give it a try. Just replace this block of code
|
|
||||||
* with the one below
|
|
||||||
*
|
|
||||||
define('PHPCOVERAGE_HOME', dirname(dirname(__FILE__)) . '/vendor/spikephpcoverage');
|
|
||||||
require_once PHPCOVERAGE_HOME . '/CoverageRecorder.php';
|
|
||||||
require_once PHPCOVERAGE_HOME . '/reporter/HtmlCoverageReporter.php';
|
|
||||||
|
|
||||||
$covReporter = new HtmlCoverageReporter('Doctrine Code Coverage Report', '', 'coverage2');
|
|
||||||
|
|
||||||
$includePaths = array('../lib');
|
|
||||||
$excludePaths = array();
|
|
||||||
$cov = new CoverageRecorder($includePaths, $excludePaths, $covReporter);
|
|
||||||
|
|
||||||
$cov->startInstrumentation();
|
|
||||||
$testGroup->run($reporter, $filter);
|
|
||||||
$cov->stopInstrumentation();
|
|
||||||
|
|
||||||
$cov->generateReport();
|
|
||||||
$covReporter->printTextSummary();
|
|
||||||
*/
|
|
||||||
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
|
|
||||||
$testGroup->run($reporter, $filter);
|
|
||||||
$result['coverage'] = xdebug_get_code_coverage();
|
|
||||||
xdebug_stop_code_coverage();
|
|
||||||
file_put_contents(dirname(__FILE__) . '/coverage/coverage.txt', serialize($result));
|
|
||||||
require_once dirname(__FILE__) . '/DoctrineTest/Coverage.php';
|
|
||||||
$coverageGeneration = new DoctrineTest_Coverage();
|
|
||||||
$coverageGeneration->generateReport();
|
|
||||||
return;
|
|
||||||
// */
|
|
||||||
|
|
||||||
}
|
|
||||||
$testGroup->run($reporter, $filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Require all the models needed in the tests
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function requireModels()
|
|
||||||
{
|
|
||||||
$models = new DirectoryIterator(dirname(__FILE__) . '/../../models/');
|
|
||||||
foreach($models as $key => $file) {
|
|
||||||
if ($file->isFile() && ! $file->isDot()) {
|
|
||||||
$e = explode('.', $file->getFileName());
|
|
||||||
if (end($e) === 'php') {
|
|
||||||
require_once $file->getPathname();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse Options from cli into an associative array
|
|
||||||
*
|
|
||||||
* @param array $array An argv array from cli
|
|
||||||
* @return array An array with options
|
|
||||||
*/
|
|
||||||
public function parseOptions($array) {
|
|
||||||
$currentName='';
|
|
||||||
$options=array();
|
|
||||||
foreach($array as $name) {
|
|
||||||
if (strpos($name,'-')===0) {
|
|
||||||
$name=str_replace('-','',$name);
|
|
||||||
$currentName=$name;
|
|
||||||
if ( ! isset($options[$currentName])) {
|
|
||||||
$options[$currentName]=array();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$values=$options[$currentName];
|
|
||||||
array_push($values,$name);
|
|
||||||
$options[$currentName]=$values;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Autoload test cases
|
|
||||||
*
|
|
||||||
* Will create test case if it does not exist
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class to autoload
|
|
||||||
* @return boolean True
|
|
||||||
*/
|
|
||||||
public static function autoload($class)
|
|
||||||
{
|
|
||||||
if (strpos($class, 'TestCase') === false) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$e = explode('_', $class);
|
|
||||||
$count = count($e);
|
|
||||||
|
|
||||||
$prefix = array_shift($e);
|
|
||||||
|
|
||||||
if ($prefix !== 'Doctrine') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$dir = array_shift($e);
|
|
||||||
|
|
||||||
$file = $dir . '_' . substr(implode('_', $e), 0, -(strlen('_TestCase'))) . 'TestCase.php';
|
|
||||||
|
|
||||||
if ( $count > 3) {
|
|
||||||
$file = str_replace('_', DIRECTORY_SEPARATOR, $file);
|
|
||||||
} else {
|
|
||||||
$file = str_replace('_', '', $file);
|
|
||||||
}
|
|
||||||
|
|
||||||
// create a test case file if it doesn't exist
|
|
||||||
|
|
||||||
if ( ! file_exists($file)) {
|
|
||||||
$contents = file_get_contents('template.tpl');
|
|
||||||
$contents = sprintf($contents, $class, $class);
|
|
||||||
|
|
||||||
if ( ! file_exists($dir)) {
|
|
||||||
mkdir($dir, 0777);
|
|
||||||
}
|
|
||||||
|
|
||||||
file_put_contents($file, $contents);
|
|
||||||
}
|
|
||||||
require_once($file);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
52
draft/tests/Query/LanguageRecognitionTestCase.php
Normal file
52
draft/tests/Query/LanguageRecognitionTestCase.php
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
class Doctrine_Query_LanguageRecognition_TestCase extends Doctrine_UnitTestCase
|
||||||
|
{
|
||||||
|
public function assertValidDql($dql)
|
||||||
|
{
|
||||||
|
$parser = new Doctrine_Query_Parser($dql);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$parser->parse();
|
||||||
|
$this->pass();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail($e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function assertInvalidDql($dql)
|
||||||
|
{
|
||||||
|
$parser = new Doctrine_Query_Parser($dql);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$parser->parse();
|
||||||
|
$this->fail();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->pass();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPlainFromClauseWithoutAlias()
|
||||||
|
{
|
||||||
|
$this->assertValidDql('FROM User');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPlainFromClauseWithAlias()
|
||||||
|
{
|
||||||
|
$this->assertValidDql('FROM User u');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSelectSingleComponentWithAsterisk()
|
||||||
|
{
|
||||||
|
$this->assertValidDql('SELECT u.* FROM User u');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSelectSingleComponentWithMultipleColumns()
|
||||||
|
{
|
||||||
|
$this->assertValidDql('SELECT u.name, u.type FROM User u');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSelectMultipleComponentsWithAsterisk()
|
||||||
|
{
|
||||||
|
$this->assertValidDql('SELECT u.*, p.* FROM User u, u.Phonenumber p');
|
||||||
|
}
|
||||||
|
}
|
@ -1,105 +1,176 @@
|
|||||||
<?php
|
<?php
|
||||||
spl_autoload_register(array('Doctrine', 'autoload'));
|
|
||||||
|
|
||||||
class Doctrine_Query_Scanner_TestCase extends Doctrine_UnitTestCase
|
class Doctrine_Query_Scanner_TestCase extends Doctrine_UnitTestCase
|
||||||
{
|
{
|
||||||
public function testScannerRecognizesIdentifierWithLengthOfOneCharacter()
|
public function testScannerRecognizesIdentifierWithLengthOfOneCharacter()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('u');
|
$scanner = new Doctrine_Query_Scanner('u');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_IDENTIFIER, $token['type']);
|
||||||
$this->assertEquals('u', $token->getValue());
|
$this->assertEqual('u', $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesIdentifierConsistingOfLetters()
|
public function testScannerRecognizesIdentifierConsistingOfLetters()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('someIdentifier');
|
$scanner = new Doctrine_Query_Scanner('someIdentifier');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_IDENTIFIER, $token['type']);
|
||||||
$this->assertEquals('someIdentifier', $token->getValue());
|
$this->assertEqual('someIdentifier', $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesIdentifierIncludingDigits()
|
public function testScannerRecognizesIdentifierIncludingDigits()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('s0m31d3nt1f13r');
|
$scanner = new Doctrine_Query_Scanner('s0m31d3nt1f13r');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_IDENTIFIER, $token['type']);
|
||||||
$this->assertEquals('s0m31d3nt1f13r', $token->getValue());
|
$this->assertEqual('s0m31d3nt1f13r', $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesIdentifierIncludingUnderscore()
|
public function testScannerRecognizesIdentifierIncludingUnderscore()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('some_identifier');
|
$scanner = new Doctrine_Query_Scanner('some_identifier');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_IDENTIFIER, $token['type']);
|
||||||
$this->assertEquals('some_identifier', $token->getValue());
|
$this->assertEqual('some_identifier', $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesDecimalInteger()
|
public function testScannerRecognizesDecimalInteger()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('1234');
|
$scanner = new Doctrine_Query_Scanner('1234');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_NUMERIC, $token['type']);
|
||||||
$this->assertEquals(1234, $token->getValue());
|
$this->assertEqual(1234, $token['value']);
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesNegativeDecimalInteger()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('-123');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
|
||||||
$this->assertEquals(-123, $token->getValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesFloat()
|
public function testScannerRecognizesFloat()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('1.234');
|
$scanner = new Doctrine_Query_Scanner('1.234');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_NUMERIC, $token['type']);
|
||||||
$this->assertEquals(1.234, $token->getValue());
|
$this->assertEqual(1.234, $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesFloatWithExponent()
|
public function testScannerRecognizesFloatWithExponent()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('1.2e3');
|
$scanner = new Doctrine_Query_Scanner('1.2e3');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_NUMERIC, $token['type']);
|
||||||
$this->assertEquals(1.2e3, $token->getValue());
|
$this->assertEqual(1.2e3, $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesFloatWithNegativeExponent()
|
public function testScannerRecognizesFloatWithNegativeExponent()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner('7E-10');
|
$scanner = new Doctrine_Query_Scanner('7E-10');
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_NUMERIC, $token['type']);
|
||||||
$this->assertEquals(7E-10, $token->getValue());
|
$this->assertEqual(7E-10, $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesStringContainingWhitespace()
|
public function testScannerRecognizesStringContainingWhitespace()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner("'This is a string.'");
|
$scanner = new Doctrine_Query_Scanner("'This is a string.'");
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_STRING, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_STRING, $token['type']);
|
||||||
$this->assertEquals("'This is a string.'", $token->getValue());
|
$this->assertEqual("'This is a string.'", $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testScannerRecognizesStringContainingSingleQuotes()
|
public function testScannerRecognizesStringContainingSingleQuotes()
|
||||||
{
|
{
|
||||||
$scanner = new Doctrine_Query_Scanner("'abc''defg'''");
|
$scanner = new Doctrine_Query_Scanner("'abc''defg'''");
|
||||||
|
|
||||||
$token = $scanner->scan();
|
$token = $scanner->next();
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_STRING, $token->getType());
|
$this->assertEqual(Doctrine_Query_Token::T_STRING, $token['type']);
|
||||||
$this->assertEquals("'abc''defg'''", $token->getValue());
|
$this->assertEqual("'abc''defg'''", $token['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testScannerTokenizesASimpleQueryCorrectly()
|
||||||
|
{
|
||||||
|
$dql = "SELECT u.* FROM User u WHERE u.name = 'Jack O''Neil'";
|
||||||
|
$scanner = new Doctrine_Query_Scanner($dql);
|
||||||
|
|
||||||
|
$tokens = array(
|
||||||
|
array(
|
||||||
|
'value' => 'SELECT',
|
||||||
|
'type' => Doctrine_Query_Token::T_SELECT,
|
||||||
|
'position' => 0
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'u',
|
||||||
|
'type' => Doctrine_Query_Token::T_IDENTIFIER,
|
||||||
|
'position' => 7
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => '.',
|
||||||
|
'type' => Doctrine_Query_Token::T_NONE,
|
||||||
|
'position' => 8
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => '*',
|
||||||
|
'type' => Doctrine_Query_Token::T_NONE,
|
||||||
|
'position' => 9
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'FROM',
|
||||||
|
'type' => Doctrine_Query_Token::T_FROM,
|
||||||
|
'position' => 11
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'User',
|
||||||
|
'type' => Doctrine_Query_Token::T_IDENTIFIER,
|
||||||
|
'position' => 16
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'u',
|
||||||
|
'type' => Doctrine_Query_Token::T_IDENTIFIER,
|
||||||
|
'position' => 21
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'WHERE',
|
||||||
|
'type' => Doctrine_Query_Token::T_WHERE,
|
||||||
|
'position' => 23
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'u',
|
||||||
|
'type' => Doctrine_Query_Token::T_IDENTIFIER,
|
||||||
|
'position' => 29
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => '.',
|
||||||
|
'type' => Doctrine_Query_Token::T_NONE,
|
||||||
|
'position' => 30
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => 'name',
|
||||||
|
'type' => Doctrine_Query_Token::T_IDENTIFIER,
|
||||||
|
'position' => 31
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => '=',
|
||||||
|
'type' => Doctrine_Query_Token::T_NONE,
|
||||||
|
'position' => 36
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => "'Jack O''Neil'",
|
||||||
|
'type' => Doctrine_Query_Token::T_STRING,
|
||||||
|
'position' => 38
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($tokens as $expected) {
|
||||||
|
$actual = $scanner->next();
|
||||||
|
$this->assertEqual($expected['value'], $actual['value']);
|
||||||
|
$this->assertEqual($expected['type'], $actual['type']);
|
||||||
|
$this->assertEqual($expected['position'], $actual['position']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->assertNull($scanner->next());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,105 +0,0 @@
|
|||||||
<?php
|
|
||||||
spl_autoload_register(array('Doctrine', 'autoload'));
|
|
||||||
|
|
||||||
class Doctrine_Query_Scanner_TestCase extends Doctrine_UnitTestCase
|
|
||||||
{
|
|
||||||
public function testScannerRecognizesIdentifierWithLengthOfOneCharacter()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('u');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
|
||||||
$this->assertEquals('u', $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesIdentifierConsistingOfLetters()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('someIdentifier');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
|
||||||
$this->assertEquals('someIdentifier', $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesIdentifierIncludingDigits()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('s0m31d3nt1f13r');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
|
||||||
$this->assertEquals('s0m31d3nt1f13r', $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesIdentifierIncludingUnderscore()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('some_identifier');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_IDENTIFIER, $token->getType());
|
|
||||||
$this->assertEquals('some_identifier', $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesDecimalInteger()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('1234');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
|
||||||
$this->assertEquals(1234, $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesNegativeDecimalInteger()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('-123');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
|
||||||
$this->assertEquals(-123, $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesFloat()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('1.234');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
|
||||||
$this->assertEquals(1.234, $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesFloatWithExponent()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('1.2e3');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
|
||||||
$this->assertEquals(1.2e3, $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesFloatWithNegativeExponent()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner('7E-10');
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_NUMERIC, $token->getType());
|
|
||||||
$this->assertEquals(7E-10, $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesStringContainingWhitespace()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner("'This is a string.'");
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_STRING, $token->getType());
|
|
||||||
$this->assertEquals("'This is a string.'", $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testScannerRecognizesStringContainingSingleQuotes()
|
|
||||||
{
|
|
||||||
$scanner = new Doctrine_Query_Scanner("'abc''defg'''");
|
|
||||||
|
|
||||||
$token = $scanner->scan();
|
|
||||||
$this->assertEquals(Doctrine_Query_Token::T_STRING, $token->getType());
|
|
||||||
$this->assertEquals("'abc''defg'''", $token->getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -3,15 +3,23 @@ error_reporting(E_ALL | E_STRICT);
|
|||||||
ini_set('max_execution_time', 900);
|
ini_set('max_execution_time', 900);
|
||||||
ini_set('date.timezone', 'GMT+0');
|
ini_set('date.timezone', 'GMT+0');
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/DoctrineTest.php');
|
set_include_path(
|
||||||
|
dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . 'tests' .
|
||||||
|
PATH_SEPARATOR . get_include_path()
|
||||||
|
);
|
||||||
|
|
||||||
|
require_once 'DoctrineTest.php';
|
||||||
require_once dirname(__FILE__) . '/../../lib/Doctrine.php';
|
require_once dirname(__FILE__) . '/../../lib/Doctrine.php';
|
||||||
spl_autoload_register(array('Doctrine', 'autoload'));
|
|
||||||
spl_autoload_register(array('DoctrineTest','autoload'));
|
|
||||||
function autoload($className)
|
function autoload($className)
|
||||||
{
|
{
|
||||||
$class = dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR
|
if (class_exists($className, false)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$class = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR
|
||||||
. str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
|
. str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
|
||||||
print $class;
|
|
||||||
if (file_exists($class)) {
|
if (file_exists($class)) {
|
||||||
require_once($class);
|
require_once($class);
|
||||||
|
|
||||||
@ -22,11 +30,14 @@ function autoload($className)
|
|||||||
}
|
}
|
||||||
|
|
||||||
spl_autoload_register('autoload');
|
spl_autoload_register('autoload');
|
||||||
|
spl_autoload_register(array('Doctrine', 'autoload'));
|
||||||
|
spl_autoload_register(array('DoctrineTest','autoload'));
|
||||||
|
|
||||||
$test = new DoctrineTest();
|
$test = new DoctrineTest();
|
||||||
//TICKET test cases
|
//TICKET test cases
|
||||||
$queryTests = new GroupTest('Query tests', 'queries');
|
$queryTests = new GroupTest('Query tests', 'queries');
|
||||||
$queryTests->addTestCase(new Doctrine_Query_Scanner_TestCase());
|
$queryTests->addTestCase(new Doctrine_Query_Scanner_TestCase());
|
||||||
|
$queryTests->addTestCase(new Doctrine_Query_LanguageRecognition_TestCase());
|
||||||
|
|
||||||
$test->addTestCase($queryTests);
|
$test->addTestCase($queryTests);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user