|
| 1 | +namespace eval Database { |
| 2 | + |
| 3 | +proc{getTablesList} {} { |
| 4 | +global CurrentDB PgAcVar |
| 5 | +set tlist {} |
| 6 | +if {[catch { |
| 7 | +wpg_select$CurrentDB"select c.relname,count(c.relname) from pg_class C, pg_rewrite R where (r.ev_class = C.oid) and (r.ev_type = '1') group by relname" rec { |
| 8 | +if {$rec(count)!=0} { |
| 9 | +set itsaview($rec(relname)) 1 |
| 10 | +} |
| 11 | +} |
| 12 | +if {!$PgAcVar(pref,systemtables)} { |
| 13 | +wpg_select$CurrentDB"select relname from pg_class where (relname !~ '^pg_') and (relkind='r') order by relname" rec { |
| 14 | +if {![regexp"^pga_"$rec(relname)]}then { |
| 15 | +if {![info exists itsaview($rec(relname))]} { |
| 16 | +lappend tlist$rec(relname) |
| 17 | +} |
| 18 | +} |
| 19 | +} |
| 20 | +}else { |
| 21 | +wpg_select$CurrentDB"select relname from pg_class where (relkind='r') order by relname" rec { |
| 22 | +if {![info exists itsaview($rec(relname))]} { |
| 23 | +lappend tlist$rec(relname) |
| 24 | +} |
| 25 | +} |
| 26 | +} |
| 27 | +} gterrmsg]} { |
| 28 | +showError$gterrmsg |
| 29 | +} |
| 30 | +return$tlist |
| 31 | +} |
| 32 | + |
| 33 | + |
| 34 | +proc{vacuum} {} { |
| 35 | +global PgAcVar CurrentDB |
| 36 | +if {$CurrentDB==""} return; |
| 37 | +set PgAcVar(statusline,dbname) [format [intlmsg"vacuuming database %s ..."]$PgAcVar(currentdb,dbname)] |
| 38 | +setCursor CLOCK |
| 39 | +set pgres [wpg_exec$CurrentDB"vacuum;"] |
| 40 | +catch {pg_result$pgres -clear} |
| 41 | +setCursor DEFAULT |
| 42 | +set PgAcVar(statusline,dbname)$PgAcVar(currentdb,dbname) |
| 43 | +} |
| 44 | + |
| 45 | + |
| 46 | +proc{getPgType} {oid} { |
| 47 | +global CurrentDB |
| 48 | +set temp"unknown" |
| 49 | +wpg_select$CurrentDB"select typname from pg_type where oid=$oid" rec { |
| 50 | +set temp$rec(typname) |
| 51 | +} |
| 52 | +return$temp |
| 53 | +} |
| 54 | + |
| 55 | + |
| 56 | +proc{executeUpdate} {sqlcmd} { |
| 57 | +global CurrentDB |
| 58 | +return [sql_exec noquiet$sqlcmd] |
| 59 | +} |
| 60 | + |
| 61 | +} |