blob: 0cb115e57343c9c10086e099c6a47949bacb7450 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
namespace eval Database {
# i have no idea why views were being discriminated against here
# when i first touched the code you could only make reports from tables
# i just commented out two lines below
# -cmaj
proc {getTablesList} {} {
global CurrentDB PgAcVar
set tlist {}
if {[catch {
# As of Postgres 7.1, testing for view-ness is not needed
# because relkind = 'r' eliminates views. But we should
# leave the code in for awhile yet, so as not to fail when
# running against older releases.
wpg_select $CurrentDB "select viewname from pg_views" rec {
set itsaview($rec(viewname)) 1
}
if {! $PgAcVar(pref,systemtables)} {
set sysconstraint "and (relname !~ '^pg_') and (relname !~ '^pga_')"
} else {
set sysconstraint ""
}
wpg_select $CurrentDB "select relname from pg_class where (relkind='r') or (relkind='v') $sysconstraint order by relname" rec {
# if {![info exists itsaview($rec(relname))]} {
lappend tlist $rec(relname)
# }
}
} gterrmsg]} {
showError $gterrmsg
}
return $tlist
}
proc {vacuum} {} {
global PgAcVar CurrentDB
if {$CurrentDB==""} return;
set PgAcVar(statusline,dbname) [format [intlmsg "vacuuming database %s ..."] $PgAcVar(currentdb,dbname)]
setCursor CLOCK
set pgres [wpg_exec $CurrentDB "vacuum;"]
catch {pg_result $pgres -clear}
setCursor DEFAULT
set PgAcVar(statusline,dbname) $PgAcVar(currentdb,dbname)
}
proc {getPgType} {oid} {
global CurrentDB
set temp "unknown"
wpg_select $CurrentDB "select typname from pg_type where oid=$oid" rec {
set temp $rec(typname)
}
return $temp
}
proc {executeUpdate} {sqlcmd} {
global CurrentDB
return [sql_exec noquiet $sqlcmd]
}
}
|