@@ -24,7 +24,6 @@ |
||
24 | 24 | } |
25 | 25 | |
26 | 26 | /** |
27 | - * @param string $caller |
|
28 | 27 | */ |
29 | 28 | public function isOk($parameters = null) |
30 | 29 | { |
@@ -635,6 +635,9 @@ discard block |
||
635 | 635 | }); |
636 | 636 | } |
637 | 637 | |
638 | + /** |
|
639 | + * @param \Closure $callback |
|
640 | + */ |
|
638 | 641 | private static function array_map_deep($array, $callback) |
639 | 642 | { |
640 | 643 | $new = array(); |
@@ -661,7 +664,7 @@ discard block |
||
661 | 664 | * @param array $parameters |
662 | 665 | * @param string $delimiter |
663 | 666 | * @param bool|string $wrapInBrackets |
664 | - * @param int|number $indent |
|
667 | + * @param integer $indent |
|
665 | 668 | * @param int $conditionsMode |
666 | 669 | * |
667 | 670 | * @return null|string |
@@ -57,6 +57,9 @@ discard block |
||
57 | 57 | $this->allTables = array(); |
58 | 58 | } |
59 | 59 | |
60 | + /** |
|
61 | + * @param string $txt |
|
62 | + */ |
|
60 | 63 | public static function dbgprint($txt) |
61 | 64 | { |
62 | 65 | if (isset($_ENV['DEBUG'])) { |
@@ -95,6 +98,9 @@ discard block |
||
95 | 98 | return 'DELETE'; |
96 | 99 | } |
97 | 100 | |
101 | + /** |
|
102 | + * @param string $column |
|
103 | + */ |
|
98 | 104 | public static function getColumnNameFor($column) |
99 | 105 | { |
100 | 106 | if (strtolower($column) === 'uid') { |
@@ -198,6 +204,10 @@ discard block |
||
198 | 204 | return ($res >= 1); |
199 | 205 | } |
200 | 206 | |
207 | + /** |
|
208 | + * @param string $table |
|
209 | + * @param string $column |
|
210 | + */ |
|
201 | 211 | protected function isCLOBColumn($table, $column) |
202 | 212 | { |
203 | 213 | $tables = end($this->allTables); |
@@ -314,6 +324,9 @@ discard block |
||
314 | 324 | return 'SELECT '.$sql; |
315 | 325 | } |
316 | 326 | |
327 | + /** |
|
328 | + * @param string $sql |
|
329 | + */ |
|
317 | 330 | private function correctColRefStatement($sql) |
318 | 331 | { |
319 | 332 | $alias = ''; |
@@ -237,6 +237,10 @@ |
||
237 | 237 | |
238 | 238 | # backticks are not balanced within one token, so we have |
239 | 239 | # to re-combine some tokens |
240 | + |
|
241 | + /** |
|
242 | + * @param integer $idx |
|
243 | + */ |
|
240 | 244 | private function balanceCharacter($tokens, $idx, $char) |
241 | 245 | { |
242 | 246 | $token_count = count($tokens); |
@@ -43,7 +43,6 @@ discard block |
||
43 | 43 | /** |
44 | 44 | * Prints an array only if debug mode is on. |
45 | 45 | * |
46 | - * @param array $s |
|
47 | 46 | * @param bool $return, if true, the formatted array is returned via return parameter |
48 | 47 | */ |
49 | 48 | protected function preprint($arr, $return = false) |
@@ -80,6 +79,7 @@ discard block |
||
80 | 79 | |
81 | 80 | /** |
82 | 81 | * Revokes the escaping characters from an expression. |
82 | + * @param string $sql |
|
83 | 83 | */ |
84 | 84 | protected function revokeEscaping($sql) |
85 | 85 | { |
@@ -73,6 +73,9 @@ discard block |
||
73 | 73 | return $parsed; |
74 | 74 | } |
75 | 75 | |
76 | + /** |
|
77 | + * @param string $sql |
|
78 | + */ |
|
76 | 79 | private function findPositionWithinString($sql, $value, $expr_type) |
77 | 80 | { |
78 | 81 | $offset = 0; |
@@ -130,6 +133,10 @@ discard block |
||
130 | 133 | return $pos; |
131 | 134 | } |
132 | 135 | |
136 | + /** |
|
137 | + * @param integer $charPos |
|
138 | + * @param integer $key |
|
139 | + */ |
|
133 | 140 | private function lookForBaseExpression($sql, &$charPos, &$parsed, $key, &$backtracking) |
134 | 141 | { |
135 | 142 | if (!is_numeric($key)) { |
@@ -44,7 +44,7 @@ |
||
44 | 44 | { |
45 | 45 | private static $allowedOnOperator = array("\t", "\n", "\r", ' ', ',', '(', ')', '_', "'", '"'); |
46 | 46 | private static $allowedOnOther = array("\t", "\n", "\r", ' ', ',', '(', ')', '<', '>', '*', '+', '-', '/', '|', |
47 | - '&', '=', '!', ';', ); |
|
47 | + '&', '=', '!', ';', ); |
|
48 | 48 | |
49 | 49 | private function printPos($text, $sql, $charPos, $key, $parsed, $backtracking) |
50 | 50 | { |
@@ -51,6 +51,9 @@ discard block |
||
51 | 51 | } |
52 | 52 | } |
53 | 53 | |
54 | + /** |
|
55 | + * @param string|boolean $sql |
|
56 | + */ |
|
54 | 57 | public function parse($sql, $calcPositions = false) |
55 | 58 | { |
56 | 59 | #lex the SQL statement |
@@ -499,6 +502,9 @@ discard block |
||
499 | 502 | return $this->processSQLParts($out); |
500 | 503 | } |
501 | 504 | |
505 | + /** |
|
506 | + * @param boolean $out |
|
507 | + */ |
|
502 | 508 | private function processSQLParts($out) |
503 | 509 | { |
504 | 510 | if (!$out) { |
@@ -565,6 +571,7 @@ discard block |
||
565 | 571 | /** |
566 | 572 | * A SET list is simply a list of key = value expressions separated by comma (,). |
567 | 573 | * This function produces a list of the key/value expressions. |
574 | + * @param string $base_expr |
|
568 | 575 | */ |
569 | 576 | private function getAssignment($base_expr) |
570 | 577 | { |
@@ -574,6 +581,9 @@ discard block |
||
574 | 581 | 'sub_tree' => $assignment, ); |
575 | 582 | } |
576 | 583 | |
584 | + /** |
|
585 | + * @param string $expression |
|
586 | + */ |
|
577 | 587 | private function getVariableType($expression) |
578 | 588 | { |
579 | 589 | // $expression must contain only upper-case characters |
@@ -601,6 +611,7 @@ discard block |
||
601 | 611 | |
602 | 612 | /** |
603 | 613 | * It can be UPDATE SET or SET alone. |
614 | + * @param boolean $isUpdate |
|
604 | 615 | */ |
605 | 616 | private function process_set_list($tokens, $isUpdate) |
606 | 617 | { |
@@ -730,6 +741,9 @@ discard block |
||
730 | 741 | return (trim($token) === ''); |
731 | 742 | } |
732 | 743 | |
744 | + /** |
|
745 | + * @param string $token |
|
746 | + */ |
|
733 | 747 | private function isCommentToken($token) |
734 | 748 | { |
735 | 749 | return isset($token[0]) && isset($token[1]) |
@@ -1490,6 +1504,7 @@ discard block |
||
1490 | 1504 | |
1491 | 1505 | /** |
1492 | 1506 | * This method handles INSERT and REPLACE statements. |
1507 | + * @param string $token_category |
|
1493 | 1508 | */ |
1494 | 1509 | private function processInsertOrReplace($tokenList, $token_category) |
1495 | 1510 | { |
@@ -571,7 +571,7 @@ discard block |
||
571 | 571 | $assignment = $this->process_expr_list($this->splitSQLIntoTokens($base_expr)); |
572 | 572 | |
573 | 573 | return array('expr_type' => ExpressionType::EXPRESSION, 'base_expr' => trim($base_expr), |
574 | - 'sub_tree' => $assignment, ); |
|
574 | + 'sub_tree' => $assignment, ); |
|
575 | 575 | } |
576 | 576 | |
577 | 577 | private function getVariableType($expression) |
@@ -843,7 +843,7 @@ discard block |
||
843 | 843 | || $this->isFunction($prev) || $this->isExpression($prev) || $this->isSubQuery($prev) |
844 | 844 | || $this->isColumnReference($prev) || $this->isBracketExpression($prev)) { |
845 | 845 | $alias = array('as' => false, 'name' => trim($last['base_expr']), |
846 | - 'base_expr' => trim($last['base_expr']), ); |
|
846 | + 'base_expr' => trim($last['base_expr']), ); |
|
847 | 847 | #remove the last token |
848 | 848 | array_pop($tokens); |
849 | 849 | $base_expr = implode('', $tokens); |
@@ -873,7 +873,7 @@ discard block |
||
873 | 873 | } |
874 | 874 | |
875 | 875 | return array('expr_type' => $type, 'alias' => $alias, 'base_expr' => trim($base_expr), |
876 | - 'sub_tree' => $processed, ); |
|
876 | + 'sub_tree' => $processed, ); |
|
877 | 877 | } |
878 | 878 | |
879 | 879 | /** |
@@ -1013,9 +1013,9 @@ discard block |
||
1013 | 1013 | } |
1014 | 1014 | # loop init |
1015 | 1015 | return array('expression' => '', 'token_count' => 0, 'table' => '', 'alias' => false, 'join_type' => '', |
1016 | - 'next_join_type' => '', 'saved_join_type' => $parseInfo['saved_join_type'], |
|
1017 | - 'ref_type' => false, 'ref_expr' => false, 'base_expr' => false, 'sub_tree' => false, |
|
1018 | - 'subquery' => '', ); |
|
1016 | + 'next_join_type' => '', 'saved_join_type' => $parseInfo['saved_join_type'], |
|
1017 | + 'ref_type' => false, 'ref_expr' => false, 'base_expr' => false, 'sub_tree' => false, |
|
1018 | + 'subquery' => '', ); |
|
1019 | 1019 | } |
1020 | 1020 | |
1021 | 1021 | private function processFromExpression(&$parseInfo) |
@@ -1099,7 +1099,7 @@ discard block |
||
1099 | 1099 | } |
1100 | 1100 | |
1101 | 1101 | return array('expr_type' => $parseInfo['type'], 'base_expr' => $parseInfo['expr'], |
1102 | - 'direction' => $parseInfo['dir'], ); |
|
1102 | + 'direction' => $parseInfo['dir'], ); |
|
1103 | 1103 | } |
1104 | 1104 | |
1105 | 1105 | private function initParseInfoForOrder() |
@@ -37,7 +37,7 @@ |
||
37 | 37 | class LexerSplitter |
38 | 38 | { |
39 | 39 | private static $splitters = array("\r\n", '!=', '>=', '<=', '<>', ':=', '\\', '&&', '>', '<', '|', '=', '^', '(', |
40 | - ')', "\t", "\n", "'", '"', '`', ',', '@', ' ', '+', '-', '*', '/', ';', ); |
|
40 | + ')', "\t", "\n", "'", '"', '`', ',', '@', ' ', '+', '-', '*', '/', ';', ); |
|
41 | 41 | private $tokenSize; |
42 | 42 | private $hashSet; |
43 | 43 |
@@ -36,102 +36,102 @@ discard block |
||
36 | 36 | class PHPSQLParserConstants |
37 | 37 | { |
38 | 38 | protected static $reserved = array('ABS', 'ACOS', 'ADDDATE', 'ADDTIME', 'AES_ENCRYPT', 'AES_DECRYPT', 'AGAINST', |
39 | - 'ASCII', 'ASIN', 'ATAN', 'AVG', 'BENCHMARK', 'BIN', 'BIT_AND', 'BIT_OR', |
|
40 | - 'BITCOUNT', 'BITLENGTH', 'CAST', 'CEILING', 'CHAR', 'CHAR_LENGTH', |
|
41 | - 'CHARACTER_LENGTH', 'CHARSET', 'COALESCE', 'COERCIBILITY', 'COLLATION', |
|
42 | - 'COMPRESS', 'CONCAT', 'CONCAT_WS', 'CONNECTION_ID', 'CONV', 'CONVERT', |
|
43 | - 'CONVERT_TZ', 'COS', 'COT', 'COUNT', 'CRC32', 'CURDATE', 'CURRENT_USER', |
|
44 | - 'CURRVAL', 'CURTIME', 'DATABASE', 'DATETIME', 'DATE_ADD', 'DATE_DIFF', |
|
45 | - 'DATE_FORMAT', 'DATE_SUB', 'DAY', 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', |
|
46 | - 'DAYOFYEAR', 'DECODE', 'DEFAULT', 'DEGREES', 'DES_DECRYPT', 'DES_ENCRYPT', |
|
47 | - 'ELT', 'ENCODE', 'ENCRYPT', 'EXP', 'EXPORT_SET', 'EXTRACT', 'FIELD', |
|
48 | - 'FIND_IN_SET', 'FLOOR', 'FORMAT', 'FOUND_ROWS', 'FROM_DAYS', 'FROM_UNIXTIME', |
|
49 | - 'GET_FORMAT', 'GET_LOCK', 'GROUP_CONCAT', 'GREATEST', 'HEX', 'HOUR', 'IF', |
|
50 | - 'IFNULL', 'IN', 'INET_ATON', 'INET_NTOA', 'INSERT', 'INSTR', 'INTERVAL', |
|
51 | - 'IS_FREE_LOCK', 'IS_USED_LOCK', 'LAST_DAY', 'LAST_INSERT_ID', 'LCASE', 'LEAST', |
|
52 | - 'LEFT', 'LENGTH', 'LN', 'LOAD_FILE', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATE', |
|
53 | - 'LOG', 'LOG2', 'LOG10', 'LOWER', 'LPAD', 'LTRIM', 'MAKE_SET', 'MAKEDATE', |
|
54 | - 'MAKETIME', 'MASTER_POS_WAIT', 'MATCH', 'MAX', 'MD5', 'MICROSECOND', 'MID', |
|
55 | - 'MIN', 'MINUTE', 'MOD', 'MONTH', 'MONTHNAME', 'NEXTVAL', 'NOW', 'NULLIF', 'OCT', |
|
56 | - 'OCTET_LENGTH', 'OLD_PASSWORD', 'ORD', 'PASSWORD', 'PERIOD_ADD', 'PERIOD_DIFF', |
|
57 | - 'PI', 'POSITION', 'POW', 'POWER', 'QUARTER', 'QUOTE', 'RADIANS', 'RAND', |
|
58 | - 'RELEASE_LOCK', 'REPEAT', 'REPLACE', 'REVERSE', 'RIGHT', 'ROUND', 'ROW_COUNT', |
|
59 | - 'RPAD', 'RTRIM', 'SEC_TO_TIME', 'SECOND', 'SESSION_USER', 'SHA', 'SHA1', 'SIGN', |
|
60 | - 'SOUNDEX', 'SPACE', 'SQRT', 'STD', 'STDDEV', 'STDDEV_POP', 'STDDEV_SAMP', |
|
61 | - 'STRCMP', 'STR_TO_DATE', 'SUBDATE', 'SUBSTRING', 'SUBSTRING_INDEX', 'SUBTIME', |
|
62 | - 'SUM', 'SYSDATE', 'SYSTEM_USER', 'TAN', 'TIME', 'TIMEDIFF', 'TIMESTAMP', |
|
63 | - 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS', |
|
64 | - 'TRIM', 'TRUNCATE', 'UCASE', 'UNCOMPRESS', 'UNCOMPRESSED_LENGTH', 'UNHEX', |
|
65 | - 'UNIX_TIMESTAMP', 'UPPER', 'USER', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', |
|
66 | - 'UUID', 'VAR_POP', 'VAR_SAMP', 'VARIANCE', 'VERSION', 'WEEK', 'WEEKDAY', |
|
67 | - 'WEEKOFYEAR', 'YEAR', 'YEARWEEK', 'ADD', 'ALL', 'ALTER', 'ANALYZE', 'AND', 'AS', |
|
68 | - 'ASC', 'ASENSITIVE', 'AUTO_INCREMENT', 'BDB', 'BEFORE', 'BERKELEYDB', 'BETWEEN', |
|
69 | - 'BIGINT', 'BINARY', 'BLOB', 'BOTH', 'BY', 'CALL', 'CASCADE', 'CASE', 'CHANGE', |
|
70 | - 'CHAR', 'CHARACTER', 'CHECK', 'COLLATE', 'COLUMN', 'COLUMNS', 'CONDITION', |
|
71 | - 'CONNECTION', 'CONSTRAINT', 'CONTINUE', 'CREATE', 'CROSS', 'CURRENT_DATE', |
|
72 | - 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURSOR', 'DATABASE', 'DATABASES', |
|
73 | - 'DAY_HOUR', 'DAY_MICROSECOND', 'DAY_MINUTE', 'DAY_SECOND', 'DEC', 'DECIMAL', |
|
74 | - 'DECLARE', 'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DETERMINISTIC', |
|
75 | - 'DISTINCT', 'DISTINCTROW', 'DIV', 'DOUBLE', 'DROP', 'ELSE', 'ELSEIF', 'END', |
|
76 | - 'ENCLOSED', 'ESCAPED', 'EXISTS', 'EXIT', 'EXPLAIN', 'FALSE', 'FETCH', 'FIELDS', |
|
77 | - 'FLOAT', 'FOR', 'FORCE', 'FOREIGN', 'FOUND', 'FRAC_SECOND', 'FROM', 'FULLTEXT', |
|
78 | - 'GRANT', 'GROUP', 'HAVING', 'HIGH_PRIORITY', 'HOUR_MICROSECOND', 'HOUR_MINUTE', |
|
79 | - 'HOUR_SECOND', 'IF', 'IGNORE', 'IN', 'INDEX', 'INFILE', 'INNER', 'INNODB', |
|
80 | - 'INOUT', 'INSENSITIVE', 'INSERT', 'INT', 'INTEGER', 'INTERVAL', 'INTO', |
|
81 | - 'IO_THREAD', 'IS', 'ITERATE', 'JOIN', 'KEY', 'KEYS', 'KILL', 'LEADING', 'LEAVE', |
|
82 | - 'LEFT', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCK', |
|
83 | - 'LONG', 'LONGBLOB', 'LONGTEXT', 'LOOP', 'LOW_PRIORITY', 'MASTER_SERVER_ID', |
|
84 | - 'MATCH', 'MEDIUMBLOB', 'MEDIUMINT', 'MEDIUMTEXT', 'MIDDLEINT', |
|
85 | - 'MINUTE_MICROSECOND', 'MINUTE_SECOND', 'MOD', 'NATURAL', 'NOT', |
|
86 | - 'NO_WRITE_TO_BINLOG', 'NULL', 'NUMERIC', 'ON', 'OPTIMIZE', 'OPTION', |
|
87 | - 'OPTIONALLY', 'OR', 'ORDER', 'OUT', 'OUTER', 'OUTFILE', 'PRECISION', 'PRIMARY', |
|
88 | - 'PRIVILEGES', 'PROCEDURE', 'PURGE', 'READ', 'REAL', 'REFERENCES', 'REGEXP', |
|
89 | - 'RENAME', 'REPEAT', 'REPLACE', 'REQUIRE', 'RESTRICT', 'RETURN', 'REVOKE', |
|
90 | - 'RIGHT', 'RLIKE', 'SECOND_MICROSECOND', 'SELECT', 'SENSITIVE', 'SEPARATOR', |
|
91 | - 'SET', 'SHOW', 'SMALLINT', 'SOME', 'SONAME', 'SPATIAL', 'SPECIFIC', 'SQL', |
|
92 | - 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNING', 'SQL_BIG_RESULT', |
|
93 | - 'SQL_CALC_FOUND_ROWS', 'SQL_SMALL_RESULT', 'SQL_TSI_DAY', 'SQL_TSI_FRAC_SECOND', |
|
94 | - 'SQL_TSI_HOUR', 'SQL_TSI_MINUTE', 'SQL_TSI_MONTH', 'SQL_TSI_QUARTER', |
|
95 | - 'SQL_TSI_SECOND', 'SQL_TSI_WEEK', 'SQL_TSI_YEAR', 'SSL', 'STARTING', |
|
96 | - 'STRAIGHT_JOIN', 'STRIPED', 'TABLE', 'TABLES', 'TERMINATED', 'THEN', |
|
97 | - 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TINYBLOB', 'TINYINT', 'TINYTEXT', 'TO', |
|
98 | - 'TRAILING', 'TRUE', 'UNDO', 'UNION', 'UNIQUE', 'UNLOCK', 'UNSIGNED', 'UPDATE', |
|
99 | - 'USAGE', 'USE', 'USER_RESOURCES', 'USING', 'UTC_DATE', 'UTC_TIME', |
|
100 | - 'UTC_TIMESTAMP', 'VALUES', 'VARBINARY', 'VARCHAR', 'VARCHARACTER', 'VARYING', |
|
101 | - 'WHEN', 'WHERE', 'WHILE', 'WITH', 'WRITE', 'XOR', 'YEAR_MONTH', 'ZEROFILL', ); |
|
39 | + 'ASCII', 'ASIN', 'ATAN', 'AVG', 'BENCHMARK', 'BIN', 'BIT_AND', 'BIT_OR', |
|
40 | + 'BITCOUNT', 'BITLENGTH', 'CAST', 'CEILING', 'CHAR', 'CHAR_LENGTH', |
|
41 | + 'CHARACTER_LENGTH', 'CHARSET', 'COALESCE', 'COERCIBILITY', 'COLLATION', |
|
42 | + 'COMPRESS', 'CONCAT', 'CONCAT_WS', 'CONNECTION_ID', 'CONV', 'CONVERT', |
|
43 | + 'CONVERT_TZ', 'COS', 'COT', 'COUNT', 'CRC32', 'CURDATE', 'CURRENT_USER', |
|
44 | + 'CURRVAL', 'CURTIME', 'DATABASE', 'DATETIME', 'DATE_ADD', 'DATE_DIFF', |
|
45 | + 'DATE_FORMAT', 'DATE_SUB', 'DAY', 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', |
|
46 | + 'DAYOFYEAR', 'DECODE', 'DEFAULT', 'DEGREES', 'DES_DECRYPT', 'DES_ENCRYPT', |
|
47 | + 'ELT', 'ENCODE', 'ENCRYPT', 'EXP', 'EXPORT_SET', 'EXTRACT', 'FIELD', |
|
48 | + 'FIND_IN_SET', 'FLOOR', 'FORMAT', 'FOUND_ROWS', 'FROM_DAYS', 'FROM_UNIXTIME', |
|
49 | + 'GET_FORMAT', 'GET_LOCK', 'GROUP_CONCAT', 'GREATEST', 'HEX', 'HOUR', 'IF', |
|
50 | + 'IFNULL', 'IN', 'INET_ATON', 'INET_NTOA', 'INSERT', 'INSTR', 'INTERVAL', |
|
51 | + 'IS_FREE_LOCK', 'IS_USED_LOCK', 'LAST_DAY', 'LAST_INSERT_ID', 'LCASE', 'LEAST', |
|
52 | + 'LEFT', 'LENGTH', 'LN', 'LOAD_FILE', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATE', |
|
53 | + 'LOG', 'LOG2', 'LOG10', 'LOWER', 'LPAD', 'LTRIM', 'MAKE_SET', 'MAKEDATE', |
|
54 | + 'MAKETIME', 'MASTER_POS_WAIT', 'MATCH', 'MAX', 'MD5', 'MICROSECOND', 'MID', |
|
55 | + 'MIN', 'MINUTE', 'MOD', 'MONTH', 'MONTHNAME', 'NEXTVAL', 'NOW', 'NULLIF', 'OCT', |
|
56 | + 'OCTET_LENGTH', 'OLD_PASSWORD', 'ORD', 'PASSWORD', 'PERIOD_ADD', 'PERIOD_DIFF', |
|
57 | + 'PI', 'POSITION', 'POW', 'POWER', 'QUARTER', 'QUOTE', 'RADIANS', 'RAND', |
|
58 | + 'RELEASE_LOCK', 'REPEAT', 'REPLACE', 'REVERSE', 'RIGHT', 'ROUND', 'ROW_COUNT', |
|
59 | + 'RPAD', 'RTRIM', 'SEC_TO_TIME', 'SECOND', 'SESSION_USER', 'SHA', 'SHA1', 'SIGN', |
|
60 | + 'SOUNDEX', 'SPACE', 'SQRT', 'STD', 'STDDEV', 'STDDEV_POP', 'STDDEV_SAMP', |
|
61 | + 'STRCMP', 'STR_TO_DATE', 'SUBDATE', 'SUBSTRING', 'SUBSTRING_INDEX', 'SUBTIME', |
|
62 | + 'SUM', 'SYSDATE', 'SYSTEM_USER', 'TAN', 'TIME', 'TIMEDIFF', 'TIMESTAMP', |
|
63 | + 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS', |
|
64 | + 'TRIM', 'TRUNCATE', 'UCASE', 'UNCOMPRESS', 'UNCOMPRESSED_LENGTH', 'UNHEX', |
|
65 | + 'UNIX_TIMESTAMP', 'UPPER', 'USER', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', |
|
66 | + 'UUID', 'VAR_POP', 'VAR_SAMP', 'VARIANCE', 'VERSION', 'WEEK', 'WEEKDAY', |
|
67 | + 'WEEKOFYEAR', 'YEAR', 'YEARWEEK', 'ADD', 'ALL', 'ALTER', 'ANALYZE', 'AND', 'AS', |
|
68 | + 'ASC', 'ASENSITIVE', 'AUTO_INCREMENT', 'BDB', 'BEFORE', 'BERKELEYDB', 'BETWEEN', |
|
69 | + 'BIGINT', 'BINARY', 'BLOB', 'BOTH', 'BY', 'CALL', 'CASCADE', 'CASE', 'CHANGE', |
|
70 | + 'CHAR', 'CHARACTER', 'CHECK', 'COLLATE', 'COLUMN', 'COLUMNS', 'CONDITION', |
|
71 | + 'CONNECTION', 'CONSTRAINT', 'CONTINUE', 'CREATE', 'CROSS', 'CURRENT_DATE', |
|
72 | + 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURSOR', 'DATABASE', 'DATABASES', |
|
73 | + 'DAY_HOUR', 'DAY_MICROSECOND', 'DAY_MINUTE', 'DAY_SECOND', 'DEC', 'DECIMAL', |
|
74 | + 'DECLARE', 'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DETERMINISTIC', |
|
75 | + 'DISTINCT', 'DISTINCTROW', 'DIV', 'DOUBLE', 'DROP', 'ELSE', 'ELSEIF', 'END', |
|
76 | + 'ENCLOSED', 'ESCAPED', 'EXISTS', 'EXIT', 'EXPLAIN', 'FALSE', 'FETCH', 'FIELDS', |
|
77 | + 'FLOAT', 'FOR', 'FORCE', 'FOREIGN', 'FOUND', 'FRAC_SECOND', 'FROM', 'FULLTEXT', |
|
78 | + 'GRANT', 'GROUP', 'HAVING', 'HIGH_PRIORITY', 'HOUR_MICROSECOND', 'HOUR_MINUTE', |
|
79 | + 'HOUR_SECOND', 'IF', 'IGNORE', 'IN', 'INDEX', 'INFILE', 'INNER', 'INNODB', |
|
80 | + 'INOUT', 'INSENSITIVE', 'INSERT', 'INT', 'INTEGER', 'INTERVAL', 'INTO', |
|
81 | + 'IO_THREAD', 'IS', 'ITERATE', 'JOIN', 'KEY', 'KEYS', 'KILL', 'LEADING', 'LEAVE', |
|
82 | + 'LEFT', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCK', |
|
83 | + 'LONG', 'LONGBLOB', 'LONGTEXT', 'LOOP', 'LOW_PRIORITY', 'MASTER_SERVER_ID', |
|
84 | + 'MATCH', 'MEDIUMBLOB', 'MEDIUMINT', 'MEDIUMTEXT', 'MIDDLEINT', |
|
85 | + 'MINUTE_MICROSECOND', 'MINUTE_SECOND', 'MOD', 'NATURAL', 'NOT', |
|
86 | + 'NO_WRITE_TO_BINLOG', 'NULL', 'NUMERIC', 'ON', 'OPTIMIZE', 'OPTION', |
|
87 | + 'OPTIONALLY', 'OR', 'ORDER', 'OUT', 'OUTER', 'OUTFILE', 'PRECISION', 'PRIMARY', |
|
88 | + 'PRIVILEGES', 'PROCEDURE', 'PURGE', 'READ', 'REAL', 'REFERENCES', 'REGEXP', |
|
89 | + 'RENAME', 'REPEAT', 'REPLACE', 'REQUIRE', 'RESTRICT', 'RETURN', 'REVOKE', |
|
90 | + 'RIGHT', 'RLIKE', 'SECOND_MICROSECOND', 'SELECT', 'SENSITIVE', 'SEPARATOR', |
|
91 | + 'SET', 'SHOW', 'SMALLINT', 'SOME', 'SONAME', 'SPATIAL', 'SPECIFIC', 'SQL', |
|
92 | + 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNING', 'SQL_BIG_RESULT', |
|
93 | + 'SQL_CALC_FOUND_ROWS', 'SQL_SMALL_RESULT', 'SQL_TSI_DAY', 'SQL_TSI_FRAC_SECOND', |
|
94 | + 'SQL_TSI_HOUR', 'SQL_TSI_MINUTE', 'SQL_TSI_MONTH', 'SQL_TSI_QUARTER', |
|
95 | + 'SQL_TSI_SECOND', 'SQL_TSI_WEEK', 'SQL_TSI_YEAR', 'SSL', 'STARTING', |
|
96 | + 'STRAIGHT_JOIN', 'STRIPED', 'TABLE', 'TABLES', 'TERMINATED', 'THEN', |
|
97 | + 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TINYBLOB', 'TINYINT', 'TINYTEXT', 'TO', |
|
98 | + 'TRAILING', 'TRUE', 'UNDO', 'UNION', 'UNIQUE', 'UNLOCK', 'UNSIGNED', 'UPDATE', |
|
99 | + 'USAGE', 'USE', 'USER_RESOURCES', 'USING', 'UTC_DATE', 'UTC_TIME', |
|
100 | + 'UTC_TIMESTAMP', 'VALUES', 'VARBINARY', 'VARCHAR', 'VARCHARACTER', 'VARYING', |
|
101 | + 'WHEN', 'WHERE', 'WHILE', 'WITH', 'WRITE', 'XOR', 'YEAR_MONTH', 'ZEROFILL', ); |
|
102 | 102 | |
103 | 103 | protected static $parameterizedFunctions = array('ABS', 'ACOS', 'ADDDATE', 'ADDTIME', 'AES_ENCRYPT', 'AES_DECRYPT', |
104 | - 'AGAINST', 'ASCII', 'ASIN', 'ATAN', 'AVG', 'BENCHMARK', 'BIN', |
|
105 | - 'BIT_AND', 'BIT_OR', 'BITCOUNT', 'BITLENGTH', 'CAST', 'CEILING', |
|
106 | - 'CHAR', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'CHARSET', 'COALESCE', |
|
107 | - 'COERCIBILITY', 'COLLATION', 'COMPRESS', 'CONCAT', 'CONCAT_WS', |
|
108 | - 'CONV', 'CONVERT', 'CONVERT_TZ', 'COS', 'COT', 'COUNT', 'CRC32', |
|
109 | - 'CURRVAL', 'DATE_ADD', 'DATE_DIFF', 'DATE_FORMAT', 'DATE_SUB', |
|
110 | - 'DAY', 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', |
|
111 | - 'DECODE', 'DEFAULT', 'DEGREES', 'DES_DECRYPT', 'DES_ENCRYPT', |
|
112 | - 'ELT', 'ENCODE', 'ENCRYPT', 'EXP', 'EXPORT_SET', 'EXTRACT', |
|
113 | - 'FIELD', 'FIND_IN_SET', 'FLOOR', 'FORMAT', 'FROM_DAYS', |
|
114 | - 'FROM_UNIXTIME', 'GET_FORMAT', 'GET_LOCK', 'GROUP_CONCAT', |
|
115 | - 'GREATEST', 'HEX', 'HOUR', 'IF', 'IFNULL', 'IN', 'INET_ATON', |
|
116 | - 'INET_NTOA', 'INSERT', 'INSTR', 'INTERVAL', 'IS_FREE_LOCK', |
|
117 | - 'IS_USED_LOCK', 'LAST_DAY', 'LCASE', 'LEAST', 'LEFT', 'LENGTH', |
|
118 | - 'LN', 'LOAD_FILE', 'LOCATE', 'LOG', 'LOG2', 'LOG10', 'LOWER', |
|
119 | - 'LPAD', 'LTRIM', 'MAKE_SET', 'MAKEDATE', 'MAKETIME', |
|
120 | - 'MASTER_POS_WAIT', 'MATCH', 'MAX', 'MD5', 'MICROSECOND', 'MID', |
|
121 | - 'MIN', 'MINUTE', 'MOD', 'MONTH', 'MONTHNAME', 'NEXTVAL', 'NULLIF', |
|
122 | - 'OCT', 'OCTET_LENGTH', 'OLD_PASSWORD', 'ORD', 'PASSWORD', |
|
123 | - 'PERIOD_ADD', 'PERIOD_DIFF', 'PI', 'POSITION', 'POW', 'POWER', |
|
124 | - 'QUARTER', 'QUOTE', 'RADIANS', 'RELEASE_LOCK', 'REPEAT', |
|
125 | - 'REPLACE', 'REVERSE', 'RIGHT', 'ROUND', 'RPAD', 'RTRIM', |
|
126 | - 'SEC_TO_TIME', 'SECOND', 'SHA', 'SHA1', 'SIGN', 'SOUNDEX', |
|
127 | - 'SPACE', 'SQRT', 'STD', 'STDDEV', 'STDDEV_POP', 'STDDEV_SAMP', |
|
128 | - 'STRCMP', 'STR_TO_DATE', 'SUBDATE', 'SUBSTRING', |
|
129 | - 'SUBSTRING_INDEX', 'SUBTIME', 'SUM', 'TAN', 'TIME', 'TIMEDIFF', |
|
130 | - 'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', |
|
131 | - 'TIME_TO_SEC', 'TO_DAYS', 'TRIM', 'TRUNCATE', 'UCASE', |
|
132 | - 'UNCOMPRESS', 'UNCOMPRESSED_LENGTH', 'UNHEX', 'UPPER', 'VAR_POP', |
|
133 | - 'VAR_SAMP', 'VARIANCE', 'WEEK', 'WEEKDAY', 'WEEKOFYEAR', 'YEAR', |
|
134 | - 'YEARWEEK', ); |
|
104 | + 'AGAINST', 'ASCII', 'ASIN', 'ATAN', 'AVG', 'BENCHMARK', 'BIN', |
|
105 | + 'BIT_AND', 'BIT_OR', 'BITCOUNT', 'BITLENGTH', 'CAST', 'CEILING', |
|
106 | + 'CHAR', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'CHARSET', 'COALESCE', |
|
107 | + 'COERCIBILITY', 'COLLATION', 'COMPRESS', 'CONCAT', 'CONCAT_WS', |
|
108 | + 'CONV', 'CONVERT', 'CONVERT_TZ', 'COS', 'COT', 'COUNT', 'CRC32', |
|
109 | + 'CURRVAL', 'DATE_ADD', 'DATE_DIFF', 'DATE_FORMAT', 'DATE_SUB', |
|
110 | + 'DAY', 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', |
|
111 | + 'DECODE', 'DEFAULT', 'DEGREES', 'DES_DECRYPT', 'DES_ENCRYPT', |
|
112 | + 'ELT', 'ENCODE', 'ENCRYPT', 'EXP', 'EXPORT_SET', 'EXTRACT', |
|
113 | + 'FIELD', 'FIND_IN_SET', 'FLOOR', 'FORMAT', 'FROM_DAYS', |
|
114 | + 'FROM_UNIXTIME', 'GET_FORMAT', 'GET_LOCK', 'GROUP_CONCAT', |
|
115 | + 'GREATEST', 'HEX', 'HOUR', 'IF', 'IFNULL', 'IN', 'INET_ATON', |
|
116 | + 'INET_NTOA', 'INSERT', 'INSTR', 'INTERVAL', 'IS_FREE_LOCK', |
|
117 | + 'IS_USED_LOCK', 'LAST_DAY', 'LCASE', 'LEAST', 'LEFT', 'LENGTH', |
|
118 | + 'LN', 'LOAD_FILE', 'LOCATE', 'LOG', 'LOG2', 'LOG10', 'LOWER', |
|
119 | + 'LPAD', 'LTRIM', 'MAKE_SET', 'MAKEDATE', 'MAKETIME', |
|
120 | + 'MASTER_POS_WAIT', 'MATCH', 'MAX', 'MD5', 'MICROSECOND', 'MID', |
|
121 | + 'MIN', 'MINUTE', 'MOD', 'MONTH', 'MONTHNAME', 'NEXTVAL', 'NULLIF', |
|
122 | + 'OCT', 'OCTET_LENGTH', 'OLD_PASSWORD', 'ORD', 'PASSWORD', |
|
123 | + 'PERIOD_ADD', 'PERIOD_DIFF', 'PI', 'POSITION', 'POW', 'POWER', |
|
124 | + 'QUARTER', 'QUOTE', 'RADIANS', 'RELEASE_LOCK', 'REPEAT', |
|
125 | + 'REPLACE', 'REVERSE', 'RIGHT', 'ROUND', 'RPAD', 'RTRIM', |
|
126 | + 'SEC_TO_TIME', 'SECOND', 'SHA', 'SHA1', 'SIGN', 'SOUNDEX', |
|
127 | + 'SPACE', 'SQRT', 'STD', 'STDDEV', 'STDDEV_POP', 'STDDEV_SAMP', |
|
128 | + 'STRCMP', 'STR_TO_DATE', 'SUBDATE', 'SUBSTRING', |
|
129 | + 'SUBSTRING_INDEX', 'SUBTIME', 'SUM', 'TAN', 'TIME', 'TIMEDIFF', |
|
130 | + 'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', |
|
131 | + 'TIME_TO_SEC', 'TO_DAYS', 'TRIM', 'TRUNCATE', 'UCASE', |
|
132 | + 'UNCOMPRESS', 'UNCOMPRESSED_LENGTH', 'UNHEX', 'UPPER', 'VAR_POP', |
|
133 | + 'VAR_SAMP', 'VARIANCE', 'WEEK', 'WEEKDAY', 'WEEKOFYEAR', 'YEAR', |
|
134 | + 'YEARWEEK', ); |
|
135 | 135 | |
136 | 136 | protected static $functions = array('ABS', 'ACOS', 'ADDDATE', 'ADDTIME', 'AES_ENCRYPT', 'AES_DECRYPT', 'AGAINST', |
137 | 137 | 'ASCII', 'ASIN', 'ATAN', 'AVG', 'BENCHMARK', 'BIN', 'BIT_AND', 'BIT_OR', |
@@ -165,6 +165,6 @@ discard block |
||
165 | 165 | 'VERSION', 'WEEK', 'WEEKDAY', 'WEEKOFYEAR', 'YEAR', 'YEARWEEK', ); |
166 | 166 | |
167 | 167 | protected static $aggregateFunctions = array('AVG', 'SUM', 'COUNT', 'MIN', 'MAX', 'STDDEV', 'STDDEV_SAMP', |
168 | - 'STDDEV_POP', 'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'GROUP_CONCAT', |
|
169 | - 'BIT_AND', 'BIT_OR', 'BIT_XOR', ); |
|
168 | + 'STDDEV_POP', 'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'GROUP_CONCAT', |
|
169 | + 'BIT_AND', 'BIT_OR', 'BIT_XOR', ); |
|
170 | 170 | } |