aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2010-02-23 23:46:43 +0000
committerNils Adermann <naderman@naderman.de>2010-02-23 23:46:43 +0000
commit3a48b03547ca5704cc422a6ebe24ecb4b8b17797 (patch)
treeb924f19816627fcb968c9a04d0b538f6104c75f4 /phpBB/includes/db
parentd3459b3f493ddd06b51f345897dc99368a328326 (diff)
downloadforums-3a48b03547ca5704cc422a6ebe24ecb4b8b17797.tar
forums-3a48b03547ca5704cc422a6ebe24ecb4b8b17797.tar.gz
forums-3a48b03547ca5704cc422a6ebe24ecb4b8b17797.tar.bz2
forums-3a48b03547ca5704cc422a6ebe24ecb4b8b17797.tar.xz
forums-3a48b03547ca5704cc422a6ebe24ecb4b8b17797.zip
Merging r10491 and r10492: Add sql_bit_or() dbal method. Add ability to enable quick reply in all forums. -- Voila ;-)
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_7@10529 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/db')
-rw-r--r--phpBB/includes/db/dbal.php18
-rw-r--r--phpBB/includes/db/firebird.php5
-rw-r--r--phpBB/includes/db/oracle.php5
3 files changed, 28 insertions, 0 deletions
diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php
index a962696bb8..eeddf1f41b 100644
--- a/phpBB/includes/db/dbal.php
+++ b/phpBB/includes/db/dbal.php
@@ -430,6 +430,24 @@ class dbal
}
/**
+ * Run binary OR operator on DB column.
+ * Results in sql statement: "{$column_name} | (1 << {$bit}) {$compare}"
+ *
+ * @param string $column_name The column name to use
+ * @param int $bit The value to use for the OR operator, will be converted to (1 << $bit). Is used by options, using the number schema... 0, 1, 2...29
+ * @param string $compare Any custom SQL code after the check (for example "= 0")
+ */
+ function sql_bit_or($column_name, $bit, $compare = '')
+ {
+ if (method_exists($this, '_sql_bit_or'))
+ {
+ return $this->_sql_bit_or($column_name, $bit, $compare);
+ }
+
+ return $column_name . ' | ' . (1 << $bit) . (($compare) ? ' ' . $compare : '');
+ }
+
+ /**
* Run more than one insert statement.
*
* @param string $table table name to run the statements on
diff --git a/phpBB/includes/db/firebird.php b/phpBB/includes/db/firebird.php
index fb1ef44c55..e554b0f2fb 100644
--- a/phpBB/includes/db/firebird.php
+++ b/phpBB/includes/db/firebird.php
@@ -451,6 +451,11 @@ class dbal_firebird extends dbal
return 'BIN_AND(' . $column_name . ', ' . (1 << $bit) . ')' . (($compare) ? ' ' . $compare : '');
}
+ function _sql_bit_or($column_name, $bit, $compare = '')
+ {
+ return 'BIN_OR(' . $column_name . ', ' . (1 << $bit) . ')' . (($compare) ? ' ' . $compare : '');
+ }
+
/**
* return sql error array
* @access private
diff --git a/phpBB/includes/db/oracle.php b/phpBB/includes/db/oracle.php
index 63cdb7126d..55b3599800 100644
--- a/phpBB/includes/db/oracle.php
+++ b/phpBB/includes/db/oracle.php
@@ -622,6 +622,11 @@ class dbal_oracle extends dbal
return 'BITAND(' . $column_name . ', ' . (1 << $bit) . ')' . (($compare) ? ' ' . $compare : '');
}
+ function _sql_bit_or($column_name, $bit, $compare = '')
+ {
+ return 'BITOR(' . $column_name . ', ' . (1 << $bit) . ')' . (($compare) ? ' ' . $compare : '');
+ }
+
/**
* return sql error array
* @access private