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