mirror of
https://github.com/moodle/moodle.git
synced 2025-07-10 00:46:32 +02:00
MDL-81073 badges: better Oracle support for expiry filter.
Avoid the following error by casting the bound parameter: ORA-00932: inconsistent datatypes: expected CHAR got NUMBER.
This commit is contained in:
@ -284,6 +284,8 @@ class badge extends base {
|
|||||||
* @return filter[]
|
* @return filter[]
|
||||||
*/
|
*/
|
||||||
protected function get_all_filters(): array {
|
protected function get_all_filters(): array {
|
||||||
|
global $DB;
|
||||||
|
|
||||||
$badgealias = $this->get_table_alias('badge');
|
$badgealias = $this->get_table_alias('badge');
|
||||||
|
|
||||||
// Name.
|
// Name.
|
||||||
@ -330,9 +332,9 @@ class badge extends base {
|
|||||||
'expiry',
|
'expiry',
|
||||||
new lang_string('expirydate', 'core_badges'),
|
new lang_string('expirydate', 'core_badges'),
|
||||||
$this->get_entity_name(),
|
$this->get_entity_name(),
|
||||||
"CASE
|
"CASE WHEN {$badgealias}.expiredate IS NULL AND {$badgealias}.expireperiod IS NULL
|
||||||
WHEN {$badgealias}.expiredate IS NULL AND {$badgealias}.expireperiod IS NULL THEN :{$parammaxint}
|
THEN " . $DB->sql_cast_char2int(":{$parammaxint}") . "
|
||||||
ELSE COALESCE({$badgealias}.expiredate, {$badgealias}.expireperiod + :{$paramtime})
|
ELSE COALESCE({$badgealias}.expiredate, {$badgealias}.expireperiod + :{$paramtime})
|
||||||
END",
|
END",
|
||||||
[$parammaxint => 2147483647, $paramtime => time()]
|
[$parammaxint => 2147483647, $paramtime => time()]
|
||||||
))
|
))
|
||||||
|
Reference in New Issue
Block a user