xref: /plugin/strata/driver/pgsql.php (revision 5153720fcc1dd2b6e63035d45f7c2bc32e429371)
1*5153720fSfkaag71<?php
2*5153720fSfkaag71/**
3*5153720fSfkaag71 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
4*5153720fSfkaag71 * @author     Steven te Brinke <s.tebrinke@utwente.nl>
5*5153720fSfkaag71 */
6*5153720fSfkaag71// must be run within Dokuwiki
7*5153720fSfkaag71if(!defined('DOKU_INC')) die('Meh.');
8*5153720fSfkaag71
9*5153720fSfkaag71require_once(DOKU_PLUGIN.'strata/driver/driver.php');
10*5153720fSfkaag71
11*5153720fSfkaag71/**
12*5153720fSfkaag71 * The MySQL database driver.
13*5153720fSfkaag71 */
14*5153720fSfkaag71class plugin_strata_driver_pgsql extends plugin_strata_driver {
15*5153720fSfkaag71
16*5153720fSfkaag71    public function stringCompare() {
17*5153720fSfkaag71        return 'ILIKE';
18*5153720fSfkaag71    }
19*5153720fSfkaag71
20*5153720fSfkaag71    public function castToNumber($val) {
21*5153720fSfkaag71        return "SUBSTRING($val FROM E'^(-?[0-9]+\\\\.?[0-9]*)')::numeric";
22*5153720fSfkaag71    }
23*5153720fSfkaag71
24*5153720fSfkaag71    public function orderBy($val) {
25*5153720fSfkaag71        return array(
26*5153720fSfkaag71            "$val IS NOT NULL",
27*5153720fSfkaag71            $this->castToNumber($val),
28*5153720fSfkaag71            $val
29*5153720fSfkaag71        );
30*5153720fSfkaag71    }
31*5153720fSfkaag71
32*5153720fSfkaag71    public function isInitialized() {
33*5153720fSfkaag71        return $this->_db->query("SELECT * FROM pg_tables WHERE schemaname = 'public' AND tablename = 'data'")->rowCount() != 0;
34*5153720fSfkaag71    }
35*5153720fSfkaag71}
36