Fix quoting of objects names for external utilities. Fixes #1603, fixes #1220, fixes #1221

This commit is contained in:
Khushboo Vashi 2016-10-21 14:57:19 +01:00 committed by Dave Page
parent aef508ff91
commit 5a1795e4a0
7 changed files with 28 additions and 26 deletions

View File

@ -276,7 +276,7 @@ def create_backup_job(sid):
server.username,
'--no-password',
'--database',
driver.qtIdent(conn, server.maintenance_db)
server.maintenance_db
]
if 'role' in data and data['role']:
args.append('--role')
@ -428,14 +428,14 @@ def create_backup_objects_job(sid):
set_value('no_of_jobs', '--jobs', True)
for s in data['schemas']:
args.extend(['--schema', driver.qtIdent(conn, s)])
args.extend(['--schema', s])
for s, t in data['tables']:
args.extend([
'--table', driver.qtIdent(conn, s, t)
])
args.append(driver.qtIdent(conn, data['database']))
args.append(data['database'])
try:
p = BatchProcess(

View File

@ -747,20 +747,20 @@ TODO LIST FOR BACKUP:
var treeInfo = node.getTreeNodeHierarchy.apply(node, [i]);
// Set current database into model
this.view.model.set('database', treeInfo.database.label);
this.view.model.set('database', treeInfo.database._label);
// We will remove once object tree is implemented
// If selected node is Schema then add it in model
if(d._type == 'schema') {
var schemas = [];
schemas.push(d.label);
schemas.push(d._label);
this.view.model.set('schemas', schemas);
}
// If selected node is Table then add it in model along with
// its schema
if(d._type == 'table') {
this.view.model.set(
'tables', [[treeInfo.schema.label, d.label]]
'tables', [[treeInfo.schema._label, d._label]]
);
}

View File

@ -206,8 +206,11 @@ def create_import_export_job(sid):
storage_dir = storage_dir.replace('/', '\\')
data['filename'] = data['filename'].replace('\\', '\\\\')
data['filename'] = os.path.join(storage_dir, data['filename'].lstrip('/'))
else:
elif storage_dir:
data['filename'] = os.path.join(storage_dir, data['filename'].lstrip('/'))
else:
data['filename'] = data['filename']
else:
return make_json_response(
data={'status': False, 'info': 'Please specify a valid file'}
@ -254,8 +257,7 @@ def create_import_export_job(sid):
args = [
'--host', server.host, '--port', str(server.port),
'--username', server.username, '--dbname',
driver.qtIdent(conn, data['database']),
'--username', server.username, '--dbname', data['database'],
'--command', query
]

View File

@ -400,9 +400,9 @@ define(
treeInfo = n.getTreeNodeHierarchy.apply(n, [i])
this.view.model.set({
'database': treeInfo.database.label,
'schema': treeInfo.schema.label,
'table': treeInfo.table.label
'database': treeInfo.database._label,
'schema': treeInfo.schema._label,
'table': treeInfo.table._label
});
var self = this,
baseUrl = "{{ url_for('import_export.index') }}" +

View File

@ -217,7 +217,7 @@ def create_maintenance_job(sid, did):
args = [
'--host', server.host, '--port', str(server.port),
'--username', server.username, '--dbname',
driver.qtIdent(conn, data['database']),
data['database'],
'--command', query
]

View File

@ -295,21 +295,21 @@ define(
var treeInfo = node.getTreeNodeHierarchy.apply(node, [i]);
if (treeInfo.schema != undefined) {
schema = treeInfo.schema.label;
schema = treeInfo.schema._label;
}
if (treeInfo.table != undefined) {
table = treeInfo.table.label;
table = treeInfo.table._label;
}
if (treeInfo.primary_key != undefined) {
primary_key = treeInfo.primary_key.label;
primary_key = treeInfo.primary_key._label;
} else if (treeInfo.unique_constraint != undefined) {
unique_constraint = treeInfo.unique_constraint.label;
unique_constraint = treeInfo.unique_constraint._label;
} else if (treeInfo.index != undefined) {
index = treeInfo.index.label;
index = treeInfo.index._label;
}
this.view.model.set({'database': treeInfo.database.label,
this.view.model.set({'database': treeInfo.database._label,
'schema': schema,
'table': table,
'primary_key': primary_key,

View File

@ -472,26 +472,26 @@ define([
var info = node.getTreeNodeHierarchy.apply(node, [i]),
m = this.view.model;
// Set current node info into model
m.set('database', info.database.label);
m.set('database', info.database._label);
if (!m.get('custom')) {
switch (d._type) {
case 'schema':
m.set('schemas', d.label);
m.set('schemas', d._label);
break;
case 'table':
m.set('tables', [info.schema.label, d.label]);
m.set('tables', [info.schema._label, d._label]);
break;
case 'function':
m.set('functions', [info.schema.label, d.label]);
m.set('functions', [info.schema._label, d._label]);
break;
case 'index':
m.set('indexes', [info.schema.label, d.label]);
m.set('indexes', [info.schema._label, d._label]);
break;
case 'trigger':
m.set('triggers', [info.schema.label, d.label]);
m.set('triggers', [info.schema._label, d._label]);
break;
case 'trigger_func':
m.set('trigger_funcs', [info.schema.label, d.label]);
m.set('trigger_funcs', [info.schema._label, d._label]);
break;
}
} else {