Merge pull request #561 from galsalomon66/fix_non_handled_error_resonse

Fix non handled error response
This commit is contained in:
Casey Bodley 2024-07-05 15:04:39 +01:00 committed by GitHub
commit 38ab4c5638
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,6 +4,7 @@ import string
import re import re
import json import json
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
from botocore.exceptions import EventStreamError
import uuid import uuid
@ -277,6 +278,7 @@ def run_s3select(bucket,key,query,column_delim=",",row_delim="\n",quot_char='"',
s3 = get_client() s3 = get_client()
result = "" result = ""
result_status = {} result_status = {}
try: try:
r = s3.select_object_content( r = s3.select_object_content(
Bucket=bucket, Bucket=bucket,
@ -292,10 +294,17 @@ def run_s3select(bucket,key,query,column_delim=",",row_delim="\n",quot_char='"',
return result return result
if progress == False: if progress == False:
try:
for event in r['Payload']: for event in r['Payload']:
if 'Records' in event: if 'Records' in event:
records = event['Records']['Payload'].decode('utf-8') records = event['Records']['Payload'].decode('utf-8')
result += records result += records
except EventStreamError as c:
result = str(c)
return result
else: else:
result = [] result = []
max_progress_scanned = 0 max_progress_scanned = 0
@ -313,6 +322,7 @@ def run_s3select(bucket,key,query,column_delim=",",row_delim="\n",quot_char='"',
if 'End' in event: if 'End' in event:
result_status['End'] = event['End'] result_status['End'] = event['End']
if progress == False: if progress == False:
return result return result
else: else:
@ -1329,7 +1339,6 @@ def test_schema_definition():
# using the scheme on first line, query is using the attach schema # using the scheme on first line, query is using the attach schema
res_use = remove_xml_tags_from_result( run_s3select(bucket_name,csv_obj_name,"select c1,c3 from s3object;",csv_header_info="USE") ).replace("\n","") res_use = remove_xml_tags_from_result( run_s3select(bucket_name,csv_obj_name,"select c1,c3 from s3object;",csv_header_info="USE") ).replace("\n","")
# result of both queries should be the same # result of both queries should be the same
s3select_assert_result( res_ignore, res_use) s3select_assert_result( res_ignore, res_use)