fixes issue that generates an error message when getting table info, getting table schema, and exporting data for tables with uppercase letters

This commit is contained in:
Eric Dagenais 2018-04-11 05:54:50 -07:00 committed by Eric Dagenais
parent 2398035e53
commit 7b3e99b599
3 changed files with 13 additions and 4 deletions

View File

@ -203,7 +203,8 @@ func (client *Client) TableRowsCount(table string, opts RowsOptions) (*Result, e
} }
func (client *Client) TableInfo(table string) (*Result, error) { func (client *Client) TableInfo(table string) (*Result, error) {
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) { func (client *Client) TableIndexes(table string) (*Result, error) {

View File

@ -83,7 +83,7 @@ SELECT
character_maximum_length, character_maximum_length,
character_set_catalog, character_set_catalog,
column_default, 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 FROM
information_schema.columns information_schema.columns
WHERE 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() { function bindContextMenus() {
bindTableHeaderMenu(); bindTableHeaderMenu();
bindCurrentDatabaseMenu(); bindCurrentDatabaseMenu();
@ -878,7 +886,7 @@ function bindContextMenus() {
scopes: "li.schema-table", scopes: "li.schema-table",
onItem: function(context, e) { onItem: function(context, e) {
var el = $(e.target); var el = $(e.target);
var table = $(context[0]).data("id"); var table = getQuotedSchemaTableName($(context[0]).data("id"));
var action = el.data("action"); var action = el.data("action");
performTableAction(table, action, el); performTableAction(table, action, el);
} }
@ -891,7 +899,7 @@ function bindContextMenus() {
scopes: "li.schema-view", scopes: "li.schema-view",
onItem: function(context, e) { onItem: function(context, e) {
var el = $(e.target); var el = $(e.target);
var table = $(context[0]).data("id"); var table = getQuotedSchemaTableName($(context[0]).data("id"));
var action = el.data("action"); var action = el.data("action");
performViewAction(table, action, el); performViewAction(table, action, el);
} }