| @@ 330-346 (lines=17) @@ | ||
| 327 | // to achieve TRIM functionality. |
|
| 328 | return "RTRIM(LTRIM($params[0]))"; |
|
| 329 | break; |
|
| 330 | case ODataConstants::STRFUN_SUBSTRING: |
|
| 331 | if (count($params) == 3) { |
|
| 332 | // 3 Param version of OData substring |
|
| 333 | return "SUBSTRING($params[0], $params[1] + 1, $params[2])"; |
|
| 334 | } else { |
|
| 335 | // 2 Params version of OData substring |
|
| 336 | // We don't have the same function for SQL Server, we have only: |
|
| 337 | // |
|
| 338 | // SUBSTRING ( value_expression , start_expression , length_expression ) |
|
| 339 | // http://msdn.microsoft.com/en-us/library/ms187748.aspx |
|
| 340 | // |
|
| 341 | // If the sum of start_expression and length_expression is greater than the number of characters |
|
| 342 | // in value_expression, the whole value expression beginning at start_expression is returned |
|
| 343 | // In OData substring function the index start from 0, in SQL Server its from 1 |
|
| 344 | return "SUBSTRING($params[0], $params[1] + 1, LEN($params[0]))"; |
|
| 345 | } |
|
| 346 | break; |
|
| 347 | case ODataConstants::STRFUN_SUBSTRINGOF: |
|
| 348 | return "(CHARINDEX($params[0], $params[1]) != 0)"; |
|
| 349 | break; |
|
| @@ 271-275 (lines=5) @@ | ||
| 268 | case ODataConstants::STRFUN_TRIM: |
|
| 269 | return "TRIM($params[0])"; |
|
| 270 | break; |
|
| 271 | case ODataConstants::STRFUN_SUBSTRING: |
|
| 272 | return count($params) == 3 ? |
|
| 273 | "SUBSTRING($params[0], $params[1] + 1, $params[2])" : |
|
| 274 | "SUBSTRING($params[0], $params[1] + 1)"; |
|
| 275 | break; |
|
| 276 | case ODataConstants::STRFUN_SUBSTRINGOF: |
|
| 277 | return "(LOCATE($params[0], $params[1]) > 0)"; |
|
| 278 | break; |
|
| @@ 267-270 (lines=4) @@ | ||
| 264 | case ODataConstants::STRFUN_TRIM: |
|
| 265 | return "TRIM($params[0])"; |
|
| 266 | ||
| 267 | case ODataConstants::STRFUN_SUBSTRING: |
|
| 268 | return count($params) == 3 ? |
|
| 269 | "SUBSTRING($params[0], $params[1] + 1, $params[2])" : |
|
| 270 | "SUBSTRING($params[0], $params[1] + 1)"; |
|
| 271 | ||
| 272 | case ODataConstants::STRFUN_SUBSTRINGOF: |
|
| 273 | return "(LOCATE($params[0], $params[1]) > 0)"; |
|
| @@ 274-277 (lines=4) @@ | ||
| 271 | case ODataConstants::STRFUN_TRIM: |
|
| 272 | return "trim($params[0])"; |
|
| 273 | ||
| 274 | case ODataConstants::STRFUN_SUBSTRING: |
|
| 275 | return count($params) == 3 ? |
|
| 276 | "substr($params[0], $params[1], $params[2])" : |
|
| 277 | "substr($params[0], $params[1])"; |
|
| 278 | ||
| 279 | case ODataConstants::STRFUN_SUBSTRINGOF: |
|
| 280 | return "(strpos($params[1], $params[0]) !== false)"; |
|