From bd470f7d0188e7fa4d3aa3586e70eeb5a967bb9b Mon Sep 17 00:00:00 2001 From: navaneeth Date: Sun, 23 May 2021 22:41:27 +0530 Subject: [PATCH] Show proper error messages for pg query errors --- app/services/postgresql_query_service.rb | 34 +++++++++++++++++------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/app/services/postgresql_query_service.rb b/app/services/postgresql_query_service.rb index 09f55042ef..87bbd615a7 100644 --- a/app/services/postgresql_query_service.rb +++ b/app/services/postgresql_query_service.rb @@ -22,18 +22,32 @@ class PostgresqlQueryService def process - connection = get_cached_connection(data_source) - connection = create_connection unless connection + error = false - query_text = '' - query_text = if options['mode'] === 'gui' - send("generate_#{options['operation']}_query", options) - else - options['query'] - end + begin + connection = get_cached_connection(data_source) + connection = create_connection unless connection - result = connection.exec(query_text) - { status: 'success', data: result.to_a } + + query_text = '' + query_text = if options['mode'] === 'gui' + send("generate_#{options['operation']}_query", options) + else + options['query'] + end + + result = connection.exec(query_text) + + rescue StandardError => e + puts e + error = { message: e.message } + end + + if error + { status: 'error', code: 500, message: error[:message], data: error } + else + { status: 'success', data: result.to_a } + end end private