require_once("/usr/share/iserv/www/inc/quote.inc");
require_once("/usr/share/iserv/www/inc/db.inc");
-function doSql($cmd, $quiet = false) {
- $i = 0;
- $a = array();
- $cmd = "psql -c ".qs($cmd);
- $cmd = ($quiet) ? $cmd . ">/dev/null 2>&1" : $cmd;
- exec($cmd, $a, $i);
- return ($i == 0);
+function table_exists($table) {
+ return pg_num_rows(db_query("SELECT * FROM information_schema.tables WHERE ".
+ "table_catalog = 'iserv' AND table_name = ".qdb($table).";")) > 0;
}
-function printSql($cmd) { echo $cmd."\n"; return doSql($cmd); }
-function tableExists($table) {
- return doSql("SELECT * FROM $table", tnue);
+function column_exists($table, $column) {
+ return table_exists($table) && pg_num_rows(db_query("SELECT * FROM ".
+ "information_schema.columns WHERE table_name = ".qdb($table)." AND ".
+ "column_name = ".qdb($column).";")) > 0;
}
-function columnExists($table, $col) {
- return (doSql("SELECT $col FROM $table", true) and tableExists($table));
+function print_sql($cmd) {
+ echo $cmd."\n";
+ db_query($cmd);
}
if(isset($_SERVER["REMOTE_ADDR"])) {
echo "updating database schema... \n";
/** table from pre-3.0 **/
-if(tableExists("errors") and !columnExists("errors", "pclabel")) {
- printSql("ALTER TABLE errors RENAME COLUMN pc_number TO pclabel;");
+if(table_exists("errors") and !column_exists("errors", "pclabel")) {
+ print_sql("ALTER TABLE errors RENAME COLUMN pc_number TO pclabel;");
}
/** table from 3.0 **/
-if(tableExists("errors") and !columnExists("errors", "pclabel")) {
- printSql("INSERT INTO mod_errorreporter (er_date,er_act,er_machine,er_text,".
+if(table_exists("errors") and !column_exists("errors", "pclabel")) {
+ print_sql("INSERT INTO mod_errorreporter (er_date,er_act,er_machine,er_text,".
"er_comment,er_commentact,er_hidden) SELECT date,name,pclabel,text,".
"comment,commentby,hidden FROM errors;");
- printSql("DROP TABLE errors;");
+ print_sql("DROP TABLE errors;");
}
/** table from 4.0 **/
-if(tableExists("errorreports")) {
- printSql("INSERT INTO mod_errorreporter (er_date,er_act,er_machine,er_text,".
+if(table_exists("errorreports")) {
+ print_sql("INSERT INTO mod_errorreporter (er_date,er_act,er_machine,er_text,".
"er_comment,er_commentact,er_hidden) SELECT er_date,er_act,er_machine,".
"er_text,er_comment,er_commentact,er_hidden FROM errorreports;");
- printSql("DROP TABLE errorreports;");
+ print_sql("DROP TABLE errorreports;");
}
echo "done.\n";