Display materialized views

This commit is contained in:
Dan Sosedoff 2016-01-14 21:30:19 -06:00
parent 2721a90455
commit 3af20f9327
4 changed files with 38 additions and 32 deletions

View File

@ -25,9 +25,10 @@ type Result struct {
} }
type Objects struct { type Objects struct {
Tables []string `json:"tables"` Tables []string `json:"tables"`
Views []string `json:"views"` Views []string `json:"views"`
Sequences []string `json:"sequences"` MaterializedViews []string `json:"materialized_views"`
Sequences []string `json:"sequences"`
} }
// Due to big int number limitations in javascript, numbers should be encoded // Due to big int number limitations in javascript, numbers should be encoded
@ -115,9 +116,10 @@ func ObjectsFromResult(res *Result) map[string]*Objects {
if objects[schema] == nil { if objects[schema] == nil {
objects[schema] = &Objects{ objects[schema] = &Objects{
Tables: []string{}, Tables: []string{},
Views: []string{}, Views: []string{},
Sequences: []string{}, MaterializedViews: []string{},
Sequences: []string{},
} }
} }
@ -126,6 +128,8 @@ func ObjectsFromResult(res *Result) map[string]*Objects {
objects[schema].Tables = append(objects[schema].Tables, name) objects[schema].Tables = append(objects[schema].Tables, name)
case "view": case "view":
objects[schema].Views = append(objects[schema].Views, name) objects[schema].Views = append(objects[schema].Views, name)
case "materialized_view":
objects[schema].MaterializedViews = append(objects[schema].MaterializedViews, name)
case "sequence": case "sequence":
objects[schema].Sequences = append(objects[schema].Sequences, name) objects[schema].Sequences = append(objects[schema].Sequences, name)
} }

File diff suppressed because one or more lines are too long

View File

@ -130,7 +130,7 @@ FROM
LEFT JOIN LEFT JOIN
pg_catalog.pg_namespace n ON n.oid = c.relnamespace pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE WHERE
c.relkind IN ('r','v','S','s','') AND c.relkind IN ('r','v','m','S','s','') AND
n.nspname !~ '^pg_toast' AND n.nspname !~ '^pg_toast' AND
n.nspname NOT IN ('information_schema', 'pg_catalog') n.nspname NOT IN ('information_schema', 'pg_catalog')
ORDER BY 1, 2` ORDER BY 1, 2`

View File

@ -95,15 +95,17 @@ function buildSchemaSection(name, objects) {
var section = ""; var section = "";
var titles = { var titles = {
"tables": "Tables", "tables": "Tables",
"views": "Views", "views": "Views",
"sequences": "Sequences" "materialized_views": "Materialized Views",
"sequences": "Sequences"
}; };
var icons = { var icons = {
"tables": '<i class="fa fa-table"></i>', "tables": '<i class="fa fa-table"></i>',
"views": '<i class="fa fa-table"></i>', "views": '<i class="fa fa-table"></i>',
"sequences": '<i class="fa fa-circle-o"></i>' "materialized_views": '<i class="fa fa-table"></i>',
"sequences": '<i class="fa fa-circle-o"></i>'
}; };
var klass = ""; var klass = "";
@ -113,7 +115,7 @@ function buildSchemaSection(name, objects) {
section += "<div class='schema-name'><i class='fa fa-folder-o'></i><i class='fa fa-folder-open-o'></i> " + name + "</div>"; section += "<div class='schema-name'><i class='fa fa-folder-o'></i><i class='fa fa-folder-open-o'></i> " + name + "</div>";
section += "<div class='schema-container'>"; section += "<div class='schema-container'>";
for (group of ["tables", "views", "sequences"]) { for (group of ["tables", "views", "materialized_views", "sequences"]) {
if (objects[group].length == 0) continue; if (objects[group].length == 0) continue;
group_klass = ""; group_klass = "";