Merge pull request #356 from ericdagenais/itn/table-quotes

Fixes relation not found errors when dealing with table names that have uppercase characters
This commit is contained in:
Dan Sosedoff
2018-06-26 22:23:48 -05:00
committed by GitHub
3 changed files with 13 additions and 4 deletions

View File

@@ -260,7 +260,8 @@ func (client *Client) TableInfo(table string) (*Result, error) {
if client.serverType == cockroachType {
return client.query(statements.TableInfoCockroach)
}
return client.query(statements.TableInfo, table)
schema, table := getSchemaAndTable(table)
return client.query(statements.TableInfo, fmt.Sprintf(`"%s"."%s"`, schema, table))
}
func (client *Client) TableIndexes(table string) (*Result, error) {

View File

@@ -90,7 +90,7 @@ SELECT
character_maximum_length,
character_set_catalog,
column_default,
pg_catalog.col_description(($1::text || '.' || $2::text)::regclass::oid, ordinal_position) as comment
pg_catalog.col_description(('"' || $1::text || '"."' || $2::text || '"')::regclass::oid, ordinal_position) as comment
FROM
information_schema.columns
WHERE

View File

@@ -865,6 +865,14 @@ function bindCurrentDatabaseMenu() {
});
}
function getQuotedSchemaTableName(table) {
if (typeof table === "string" && table.indexOf(".") > -1) {
var schemaTableComponents = table.split(".");
return ['"', schemaTableComponents[0], '"."', schemaTableComponents[1], '"'].join('');
}
return table;
}
function bindContextMenus() {
bindTableHeaderMenu();
bindCurrentDatabaseMenu();
@@ -878,7 +886,7 @@ function bindContextMenus() {
scopes: "li.schema-table",
onItem: function(context, e) {
var el = $(e.target);
var table = $(context[0]).data("id");
var table = getQuotedSchemaTableName($(context[0]).data("id"));
var action = el.data("action");
performTableAction(table, action, el);
}
@@ -891,7 +899,7 @@ function bindContextMenus() {
scopes: "li.schema-view",
onItem: function(context, e) {
var el = $(e.target);
var table = $(context[0]).data("id");
var table = getQuotedSchemaTableName($(context[0]).data("id"));
var action = el.data("action");
performViewAction(table, action, el);
}