awslabs.redshift-mcp-server 0.0.9__py3-none-any.whl → 0.0.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,4 +14,4 @@
14
14
 
15
15
  """awslabs.redshift-mcp-server"""
16
16
 
17
- __version__ = '0.0.9'
17
+ __version__ = '0.0.11'
@@ -263,27 +263,50 @@ async def _execute_protected_statement(
263
263
  session_id=session_id,
264
264
  )
265
265
 
266
- # Execute user SQL with parameters
267
- user_query_id = await _execute_statement(
268
- cluster_info=cluster_info,
269
- cluster_identifier=cluster_identifier,
270
- database_name=database_name,
271
- sql=sql,
272
- parameters=parameters,
273
- session_id=session_id,
274
- )
266
+ # Execute user SQL with parameters, ensuring transaction is always closed
267
+ user_query_id = None
268
+ user_sql_error = None
275
269
 
276
- # Execute END statement to close transaction
277
- await _execute_statement(
278
- cluster_info=cluster_info,
279
- cluster_identifier=cluster_identifier,
280
- database_name=database_name,
281
- sql='END;',
282
- session_id=session_id,
283
- )
270
+ try:
271
+ user_query_id = await _execute_statement(
272
+ cluster_info=cluster_info,
273
+ cluster_identifier=cluster_identifier,
274
+ database_name=database_name,
275
+ sql=sql,
276
+ parameters=parameters,
277
+ session_id=session_id,
278
+ )
279
+ except Exception as e:
280
+ user_sql_error = e
281
+ logger.error(f'User SQL execution failed: {e}')
282
+
283
+ # Always execute END statement to close transaction
284
+ try:
285
+ await _execute_statement(
286
+ cluster_info=cluster_info,
287
+ cluster_identifier=cluster_identifier,
288
+ database_name=database_name,
289
+ sql='END;',
290
+ session_id=session_id,
291
+ )
292
+ except Exception as end_error:
293
+ logger.error(f'END statement execution failed: {end_error}')
294
+ if user_sql_error:
295
+ # Both failed - raise combined error
296
+ raise Exception(
297
+ f'User SQL failed: {user_sql_error}; END statement failed: {end_error}'
298
+ )
299
+ else:
300
+ # Only END failed
301
+ raise end_error
302
+
303
+ # If user SQL failed but END succeeded, raise user SQL error
304
+ if user_sql_error:
305
+ raise user_sql_error
284
306
 
285
307
  # Get results from user query
286
308
  data_client = client_manager.redshift_data_client()
309
+ assert user_query_id is not None, 'user_query_id should not be None at this point'
287
310
  results_response = data_client.get_statement_result(Id=user_query_id)
288
311
  return results_response, user_query_id
289
312
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: awslabs.redshift-mcp-server
3
- Version: 0.0.9
3
+ Version: 0.0.11
4
4
  Summary: An AWS Labs Model Context Protocol (MCP) server for Redshift
5
5
  Project-URL: homepage, https://awslabs.github.io/mcp/
6
6
  Project-URL: docs, https://awslabs.github.io/mcp/servers/redshift-mcp-server/
@@ -0,0 +1,12 @@
1
+ awslabs/__init__.py,sha256=WuqxdDgUZylWNmVoPKiK7qGsTB_G4UmuXIrJ-VBwDew,731
2
+ awslabs/redshift_mcp_server/__init__.py,sha256=8DVGZt1w7Ce3QiW02QChX2feXiR3SOlPBkTGSiKEuGc,674
3
+ awslabs/redshift_mcp_server/consts.py,sha256=Ou07Q81KMsSw1AYKrU4sawCjbeD2tovQCnYVc5CPWyk,4302
4
+ awslabs/redshift_mcp_server/models.py,sha256=p6oKcVz4xfaqQzXjJrZK9YlfuUnzMDCphXbTK1LT1k4,6437
5
+ awslabs/redshift_mcp_server/redshift.py,sha256=K6rhKTgOQjZs3ffnNsRpGk4xGZsKqIaebpIjXzfJcZQ,30695
6
+ awslabs/redshift_mcp_server/server.py,sha256=msHWX_g8g82kM705wgWjkeK0vVEou_Cz1emEI7VuDPM,26503
7
+ awslabs_redshift_mcp_server-0.0.11.dist-info/METADATA,sha256=Q1_K0YD7lvBDXy2AK8HAHEMzGspIbox2ftgX6fu2_Po,16661
8
+ awslabs_redshift_mcp_server-0.0.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
9
+ awslabs_redshift_mcp_server-0.0.11.dist-info/entry_points.txt,sha256=o2G-onpmq80KMTQw2OrY1G07GmwPaurcJcIqfvMR9Sw,88
10
+ awslabs_redshift_mcp_server-0.0.11.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
11
+ awslabs_redshift_mcp_server-0.0.11.dist-info/licenses/NOTICE,sha256=iIvfV8gFGERQ7xLtxV8bD_Lsrj9KOIPpvk49qp5-K0c,95
12
+ awslabs_redshift_mcp_server-0.0.11.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- awslabs/__init__.py,sha256=WuqxdDgUZylWNmVoPKiK7qGsTB_G4UmuXIrJ-VBwDew,731
2
- awslabs/redshift_mcp_server/__init__.py,sha256=8_vNDaN2KJ-FKrcdrNOrmb6Jk5dePWVq4vOFFjSwMRY,673
3
- awslabs/redshift_mcp_server/consts.py,sha256=Ou07Q81KMsSw1AYKrU4sawCjbeD2tovQCnYVc5CPWyk,4302
4
- awslabs/redshift_mcp_server/models.py,sha256=p6oKcVz4xfaqQzXjJrZK9YlfuUnzMDCphXbTK1LT1k4,6437
5
- awslabs/redshift_mcp_server/redshift.py,sha256=ljmLLXXUpAN-wkpxu9rNNOCqYMCCLvGXWNVKDzOTMfA,29821
6
- awslabs/redshift_mcp_server/server.py,sha256=msHWX_g8g82kM705wgWjkeK0vVEou_Cz1emEI7VuDPM,26503
7
- awslabs_redshift_mcp_server-0.0.9.dist-info/METADATA,sha256=PNwyFlMRZMWYPiZ9qNBTmV2n2_fcyTTQQSsyeu5jv9o,16660
8
- awslabs_redshift_mcp_server-0.0.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
9
- awslabs_redshift_mcp_server-0.0.9.dist-info/entry_points.txt,sha256=o2G-onpmq80KMTQw2OrY1G07GmwPaurcJcIqfvMR9Sw,88
10
- awslabs_redshift_mcp_server-0.0.9.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
11
- awslabs_redshift_mcp_server-0.0.9.dist-info/licenses/NOTICE,sha256=iIvfV8gFGERQ7xLtxV8bD_Lsrj9KOIPpvk49qp5-K0c,95
12
- awslabs_redshift_mcp_server-0.0.9.dist-info/RECORD,,