1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-24 20:13:22 +01:00

[ticket/10942] Add a comment why we cast to sql_case()

PHPBB3-10942
This commit is contained in:
Joas Schilling 2012-06-20 23:30:31 +02:00
parent 089e5f5c79
commit c71f604327
5 changed files with 5 additions and 0 deletions

View File

@ -96,6 +96,7 @@ class dbal_mssql extends dbal
*/
function sql_case($condition, $action_true, $action_false = false)
{
// To ensure, that both expressions have the same type, we cast them to varchar manually
$sql_case = 'CASE WHEN ' . $condition;
$sql_case .= ' THEN CAST(' . $action_true . ' AS VARCHAR)';
$sql_case .= ($action_false !== false) ? ' ELSE CAST(' . $action_false . ' AS VARCHAR)' : '';

View File

@ -114,6 +114,7 @@ class dbal_mssql_odbc extends dbal
*/
function sql_case($condition, $action_true, $action_false = false)
{
// To ensure, that both expressions have the same type, we cast them to varchar manually
$sql_case = 'CASE WHEN ' . $condition;
$sql_case .= ' THEN CAST(' . $action_true . ' AS VARCHAR)';
$sql_case .= ($action_false !== false) ? ' ELSE CAST(' . $action_false . ' AS VARCHAR)' : '';

View File

@ -262,6 +262,7 @@ class dbal_mssqlnative extends dbal
*/
function sql_case($condition, $action_true, $action_false = false)
{
// To ensure, that both expressions have the same type, we cast them to varchar manually
$sql_case = 'CASE WHEN ' . $condition;
$sql_case .= ' THEN CAST(' . $action_true . ' AS VARCHAR)';
$sql_case .= ($action_false !== false) ? ' ELSE CAST(' . $action_false . ' AS VARCHAR)' : '';

View File

@ -94,6 +94,7 @@ class dbal_oracle extends dbal
*/
function sql_case($condition, $action_true, $action_false = false)
{
// To ensure, that both expressions have the same type, we cast them to clob manually
$sql_case = 'CASE WHEN ' . $condition;
$sql_case .= ' THEN CAST(' . $action_true . ' AS clob)';
$sql_case .= ($action_false !== false) ? ' ELSE CAST(' . $action_false . ' AS clob)' : '';

View File

@ -159,6 +159,7 @@ class dbal_postgres extends dbal
*/
function sql_case($condition, $action_true, $action_false = false)
{
// To ensure, that both expressions have the same type, we cast them to text manually
$sql_case = 'CASE WHEN ' . $condition;
$sql_case .= ' THEN CAST(' . $action_true . ' AS TEXT)';
$sql_case .= ($action_false !== false) ? ' ELSE CAST(' . $action_false . ' AS TEXT)' : '';