DPL:Manual - DPL with PostgreSQL

From FollowTheScore
Revision as of 14:45, 19 January 2011 by FreddyVulto (talk | contribs) (DPL Patch)
Jump to: navigation, search
Manual PostgreSQL

Database Functions

The code of this extenstion uses some MySQL-specific functions which don't exist in PostgreSQL. In order to avoid patching each new version of DyanmicPageList, I suggest to run the following script on your postgres Database (from the postgres account). This simply emulates the MySQL functions.

create schema mysql;

grant usage on schema mysql to public;

alter user wikiuser set search_path to mediawiki, public, mysql;

create or replace function mysql.concat(text, text) returns text
as $function$
  begin
    return $1 || $2;
  end;
$function$ language plpgsql immutable strict;

create or replace function mysql.if(boolean, text, text) returns text
as $function$
  begin
    if $1 then
      return $2;
    else
      return $3;
    end if;
  end;
$function$ language plpgsql immutable strict;

create or replace function mysql.ifnull(text, text) returns text
as $function$
    select coalesce($1, $2) as result
$function$ language 'sql';

DPL Patches

DPL uses (at least at version 1.7.5) a LIMIT syntax that is not suitable for PostgreSQL and leads to SQL errors. In the corresponding bug report, a small patch is posted that solves this issue.

DPL uses parentheses around JOIN tables that is not suitable for PostgreSQL and leads to SQL errors. In the corresponding Issue:Crash on ordermethod=category,sortkey on PostgreSQL-based Mediawiki (patch included), a small patch is posted that solves this issue.