blob: 7b51c3fe7caf184d3c08e03b435db4e3700b9a06 [file] [log] [blame]
admin7b613c72006-09-24 18:05:17 +00001<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * Code Igniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
8 * @author Rick Ellis
9 * @copyright Copyright (c) 2006, pMachine, Inc.
10 * @license http://www.codeignitor.com/user_guide/license.html
11 * @link http://www.codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
15
16// ------------------------------------------------------------------------
17
18/**
19 * Postgre Utility Class
20 *
21 * @category Database
22 * @author Rick Ellis
23 * @link http://www.codeigniter.com/user_guide/database/
24 */
admina5e812c2006-09-25 02:17:30 +000025class CI_DB_postgre_utility extends CI_DB_utility {
26
admin7b613c72006-09-24 18:05:17 +000027
28 /**
admin6ca6f942006-09-25 02:51:08 +000029 * Create database
30 *
admin6cec6a52006-09-25 06:56:49 +000031 * @access private
admin6ca6f942006-09-25 02:51:08 +000032 * @param string the database name
33 * @return bool
34 */
admin6cec6a52006-09-25 06:56:49 +000035 function _create_database($name)
admin6ca6f942006-09-25 02:51:08 +000036 {
admin6cec6a52006-09-25 06:56:49 +000037 return "CREATE DATABASE ".$name;
admin6ca6f942006-09-25 02:51:08 +000038 }
39
40 // --------------------------------------------------------------------
41
42 /**
43 * Drop database
44 *
admin83b05a82006-09-25 21:06:46 +000045 * @access private
admin6ca6f942006-09-25 02:51:08 +000046 * @param string the database name
47 * @return bool
48 */
admin83b05a82006-09-25 21:06:46 +000049 function _drop_database($name)
admin6ca6f942006-09-25 02:51:08 +000050 {
admin83b05a82006-09-25 21:06:46 +000051 return "DROP DATABASE ".$name;
admin6ca6f942006-09-25 02:51:08 +000052 }
53
54 // --------------------------------------------------------------------
55
56 /**
admin72496372006-09-25 03:44:04 +000057 * List databases
58 *
admin83b05a82006-09-25 21:06:46 +000059 * @access private
admin72496372006-09-25 03:44:04 +000060 * @return bool
61 */
admin83b05a82006-09-25 21:06:46 +000062 function _list_databases()
admin72496372006-09-25 03:44:04 +000063 {
admin83b05a82006-09-25 21:06:46 +000064 return "SELECT datname FROM pg_database";
admin72496372006-09-25 03:44:04 +000065 }
admin9cd4e8e2006-09-25 23:26:25 +000066
67 // --------------------------------------------------------------------
68
69 /**
70 * Show table query
71 *
72 * Generates a platform-specific query string so that the table names can be fetched
73 *
74 * @access private
75 * @return string
76 */
77 function _list_tables()
78 {
79 return "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'";
80 }
81
admin4ceac2d2006-09-25 06:40:16 +000082 // --------------------------------------------------------------------
83
84 /**
85 * Drop Table
86 *
admin83b05a82006-09-25 21:06:46 +000087 * @access private
admin4ceac2d2006-09-25 06:40:16 +000088 * @return bool
89 */
admin83b05a82006-09-25 21:06:46 +000090 function _drop_table($table)
admin4ceac2d2006-09-25 06:40:16 +000091 {
admin83b05a82006-09-25 21:06:46 +000092 return "DROP TABLE ".$this->db->_escape_table($name)." CASCADE";
admin4ceac2d2006-09-25 06:40:16 +000093 }
admin72496372006-09-25 03:44:04 +000094
95 // --------------------------------------------------------------------
96
97 /**
adminab4f61b2006-09-25 22:12:32 +000098 * Optimize table query
99 *
admin4a2ed692006-09-29 01:14:52 +0000100 * Is table optimization supported in Postgre?
adminab4f61b2006-09-25 22:12:32 +0000101 *
102 * @access private
103 * @param string the table name
104 * @return object
105 */
106 function _optimize_table($table)
107 {
admin4a2ed692006-09-29 01:14:52 +0000108 return FALSE;
adminab4f61b2006-09-25 22:12:32 +0000109 }
110
111 // --------------------------------------------------------------------
112
113 /**
114 * Repair table query
115 *
admin4a2ed692006-09-29 01:14:52 +0000116 * Are table repairs supported in Postgre?
adminab4f61b2006-09-25 22:12:32 +0000117 *
118 * @access private
119 * @param string the table name
120 * @return object
121 */
122 function _repair_table($table)
123 {
admin4a2ed692006-09-29 01:14:52 +0000124 return return FALSE;
adminab4f61b2006-09-25 22:12:32 +0000125 }
126
admina5e812c2006-09-25 02:17:30 +0000127
admin7b613c72006-09-24 18:05:17 +0000128}
129
130?>