4444from typing import List
4545
4646from .server_context import ServerContext
47+ from .utils import waf_encode
4748
4849_default_timeout = 60 * 5 # 5 minutes
4950
@@ -231,6 +232,7 @@ def execute_sql(
231232 parameters : dict = None ,
232233 required_version : float = None ,
233234 timeout : int = _default_timeout ,
235+ waf_encode_sql : bool = True
234236):
235237 """
236238 Execute sql query against a LabKey server.
@@ -248,11 +250,12 @@ def execute_sql(
248250 :param parameters: parameter values to pass through to a parameterized query
249251 :param required_version: Api version of response
250252 :param timeout: timeout of request in seconds (defaults to 30s)
253+ :param waf_encode_sql: WAF encode sql in request (defaults to True)
251254 :return:
252255 """
253256 url = server_context .build_url ("query" , "executeSql.api" , container_path = container_path )
254257
255- payload = {"schemaName" : schema_name , "sql" : sql }
258+ payload = {"schemaName" : schema_name , "sql" : waf_encode ( sql ) if waf_encode_sql else sql }
256259
257260 if container_filter is not None :
258261 payload ["containerFilter" ] = container_filter
@@ -484,6 +487,7 @@ def execute_sql(
484487 parameters : dict = None ,
485488 required_version : float = None ,
486489 timeout : int = _default_timeout ,
490+ waf_encode_sql : bool = True
487491 ):
488492 return execute_sql (
489493 self .server_context ,
@@ -498,6 +502,7 @@ def execute_sql(
498502 parameters ,
499503 required_version ,
500504 timeout ,
505+ waf_encode_sql
501506 )
502507
503508 @functools .wraps (insert_rows )
0 commit comments