diff --git a/libraries/sqlparser.lib.php b/libraries/sqlparser.lib.php index b99ba814be..c7fe15b7ce 100644 --- a/libraries/sqlparser.lib.php +++ b/libraries/sqlparser.lib.php @@ -3041,5 +3041,18 @@ function PMA_SQP_getParserDataMap() 'PMA_SQPdata_column_type' => $PMA_SQPdata_column_type, ); } +/** + * Get Parser analyze Map from parse_analyze_inc.php + * + * @param array $sql_query The SQL string + * @param array $db Current DB + * + * @return Array analyze Map from parse_analyze_inc.php + */ +function PMA_SQP_getParserAnalyzeMap($sql_query, $db) +{ + include 'libraries/parse_analyze.inc.php'; + return $analyzed_sql_results; +} ?> diff --git a/test/libraries/PMA_SQL_parse_analyze_test.php b/test/libraries/PMA_SQL_parse_analyze_test.php new file mode 100644 index 0000000000..61a6723c38 --- /dev/null +++ b/test/libraries/PMA_SQL_parse_analyze_test.php @@ -0,0 +1,67 @@ +assertEquals( + array( + 'type' => 'alpha_reservedWord', + 'data' => 'select', + 'pos' => 6, + 'forbidden' => true, + ), + $data['parsed_sql'][0] + ); + $this->assertEquals( + 'select * from PMA.PMAParse', + $data['analyzed_sql'][0]['unsorted_query'] + ); + + $this->assertTrue($data['is_select']); + $this->assertFalse($data['is_group']); + $this->assertFalse($data['is_show']); + + //update statement + $sql_query = "UPDATE `11`.`pma_bookmark` SET `id` = '2' WHERE `pma_bookmark`.`id` = 1;"; + $db = "PMA"; + $data = PMA_SQP_getParserAnalyzeMap($sql_query, $db); + + $this->assertEquals( + array( + 'type' => 'alpha_reservedWord', + 'data' => 'UPDATE', + 'pos' => 6, + 'forbidden' => true, + ), + $data['parsed_sql'][0] + ); + $this->assertEquals( + $sql_query, + $data['analyzed_sql'][0]['unsorted_query'] + ); + $this->assertFalse($data['is_group']); + $this->assertFalse($data['is_show']); + $this->assertTrue($data['is_affected']); + $this->assertFalse($data['is_select']); + } +} + +?>