constant DatabaseConnection_sqlsrv::RESERVED_REGEXP in Drupal driver for SQL Server and SQL Azure 7
Same name and namespace in other branches
- 7.3 sqlsrv/database.inc \DatabaseConnection_sqlsrv::RESERVED_REGEXP
- 7.2 sqlsrv/database.inc \DatabaseConnection_sqlsrv::RESERVED_REGEXP
This is the original replacement regexp from Microsoft.
We could probably simplify it a lot because queries only contain placeholders when we modify them.
NOTE: removed 'escape' from the list, because it explodes with LIKE xxx ESCAPE yyy syntax.
File
- sqlsrv/
database.inc, line 154 - Database interface code for Microsoft SQL Server.
Class
Code
const RESERVED_REGEXP = '/\\G
# Everything that follows a boundary that is not : or _.
\\b(?<![:\\[_])(?:
# Any reserved words, followed by a boundary that is not an opening parenthesis.
(action|admin|alias|any|are|array|at|begin|boolean|class|commit|contains|current|data|date|day|depth|domain|external|file|full|function|get|go|host|input|language|last|less|local|map|min|module|new|no|object|old|open|operation|parameter|parameters|path|plan|prefix|proc|public|ref|result|returns|role|row|rows|rule|save|search|second|section|session|size|state|statistics|temporary|than|time|timestamp|tran|translate|translation|trim|user|value|variable|view|without)
(?!\\()
|
# Or a normal word.
([a-z]+)
)\\b
|
\\b(
[^a-z\'"\\\\]+
)\\b
|
(?=[\'"])
(
" [^\\\\"] * (?: \\\\. [^\\\\"] *) * "
|
\' [^\\\\\']* (?: \\\\. [^\\\\\']*) * \'
)
/Six';