What steps will reproduce the problem?
1. Attempt to create an SQL string with a source that has
[GROUP] => Array
(
[0] => Array
(
[expr_type] => pos
[base_expr] => 1
)
)
What is the expected output? What do you see instead?
Expected output is an SQL query.
What I see is:
PHP Fatal error: Uncaught exception 'UnableToCreateSQLException' with message
'unknown expr_type in GROUP[0] pos' in
/path/PHP-SQL-Parser/php-sql-creator.php:182
Stack trace:
#0 /path/PHP-SQL-Parser/php-sql-creator.php(77):
PHPSQLCreator->processGROUP(Array)
#1 /path/PHP-SQL-Parser/php-sql-creator.php(53):
PHPSQLCreator->processSelectStatement(Array)
#2 /path/PHP-SQL-Parser/php-sql-creator.php(40): PHPSQLCreator->create(Array)
#3 /path/class.php(177): PHPSQLCreator->__construct(Array)
#4 /path/class.php(91): cache->refreshData()
#5 /path/script.php(84): cache->__construct(Object(defaults), 'select
`ID`,...', 0, 120, '`stop`')
#6 {main}
thrown in /path/PHP-SQL-Parser/php-sql-creator.php on line 182
What version of the product are you using? On what operating system?
php-sql-parser-20120822.zip, Debian
Please provide any additional information below.
Changing line 584 from
if ($parsed['expr_type'] !== 'colref') {
to
if ($parsed['expr_type'] !== 'colref' && $parsed['expr_type'] !== 'pos') {
fixed the issue, but I'm not familiar with the code enough to know if that will
break other cases. Another thought was adding an argument to processColRef(),
$context, to allow for selectively allowing expr_type to be colref, pos, or
both based on where in the SQL statement it is.
Original issue reported on code.google.com by swe...@gmail.com on 4 Jan 2013 at 1:45
Original issue reported on code.google.com by
swe...@gmail.com
on 4 Jan 2013 at 1:45