diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php
index bf0dc15fad..c040fa8e2d 100644
--- a/phpBB/includes/db/dbal.php
+++ b/phpBB/includes/db/dbal.php
@@ -300,6 +300,18 @@ class dbal
return $sql_condition;
}
+ /**
+ * Build a concatenated string
+ *
+ * @param string $string1 Base SQL statement where we append the second one
+ * @param string $string2 SQL statement that is appended on the first statement
+ * @return string Concatenated string
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return 'CONCAT(' . $string1 . ', ' . $string2 . ')';
+ }
+
/**
* Returns whether results of a query need to be buffered to run a transaction while iterating over them.
*
diff --git a/phpBB/includes/db/firebird.php b/phpBB/includes/db/firebird.php
index 7709e8fdf5..884206d298 100644
--- a/phpBB/includes/db/firebird.php
+++ b/phpBB/includes/db/firebird.php
@@ -110,6 +110,14 @@ class dbal_firebird extends dbal
return ($raw) ? '2.1' : 'Firebird/Interbase';
}
+ /**
+ * {@inheritDoc}
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return $string1 . ' || ' . $string2;
+ }
+
/**
* SQL Transaction
* @access private
diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php
index abeabc389f..16b3b3c600 100644
--- a/phpBB/includes/db/mssql.php
+++ b/phpBB/includes/db/mssql.php
@@ -91,6 +91,14 @@ class dbal_mssql extends dbal
return ($this->sql_server_version) ? 'MSSQL
' . $this->sql_server_version : 'MSSQL';
}
+ /**
+ * {@inheritDoc}
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return $string1 . ' + ' . $string2;
+ }
+
/**
* SQL Transaction
* @access private
diff --git a/phpBB/includes/db/mssql_odbc.php b/phpBB/includes/db/mssql_odbc.php
index 6e24f4e9e8..c1ee1b43f0 100644
--- a/phpBB/includes/db/mssql_odbc.php
+++ b/phpBB/includes/db/mssql_odbc.php
@@ -109,6 +109,14 @@ class dbal_mssql_odbc extends dbal
return ($this->sql_server_version) ? 'MSSQL (ODBC)
' . $this->sql_server_version : 'MSSQL (ODBC)';
}
+ /**
+ * {@inheritDoc}
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return $string1 . ' + ' . $string2;
+ }
+
/**
* SQL Transaction
* @access private
diff --git a/phpBB/includes/db/mssqlnative.php b/phpBB/includes/db/mssqlnative.php
index 8a4503f111..db1bb86620 100644
--- a/phpBB/includes/db/mssqlnative.php
+++ b/phpBB/includes/db/mssqlnative.php
@@ -257,6 +257,14 @@ class dbal_mssqlnative extends dbal
return ($this->sql_server_version) ? 'MSSQL
' . $this->sql_server_version : 'MSSQL';
}
+ /**
+ * {@inheritDoc}
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return $string1 . ' + ' . $string2;
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php
index bf22cffafa..dddf615f9c 100644
--- a/phpBB/includes/db/postgres.php
+++ b/phpBB/includes/db/postgres.php
@@ -154,6 +154,14 @@ class dbal_postgres extends dbal
return ($raw) ? $this->sql_server_version : 'PostgreSQL ' . $this->sql_server_version;
}
+ /**
+ * {@inheritDoc}
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return $string1 . ' || ' . $string2;
+ }
+
/**
* SQL Transaction
* @access private
diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php
index 86bfa75a13..38aba0624e 100644
--- a/phpBB/includes/db/sqlite.php
+++ b/phpBB/includes/db/sqlite.php
@@ -72,6 +72,14 @@ class dbal_sqlite extends dbal
return ($raw) ? $this->sql_server_version : 'SQLite ' . $this->sql_server_version;
}
+ /**
+ * {@inheritDoc}
+ */
+ function sql_concatenate($string1, $string2)
+ {
+ return $string1 . ' || ' . $string2;
+ }
+
/**
* SQL Transaction
* @access private