2121from typing import Optional , Union
2222
2323from app .translator .const import DEFAULT_VALUE_TYPE
24- from app .translator .core .context_vars import return_only_first_query_ctx_var
2524from app .translator .core .custom_types .tokens import LogicalOperatorType , OperatorType
2625from app .translator .core .custom_types .values import ValueType
2726from app .translator .core .escape_manager import EscapeManager
@@ -192,8 +191,8 @@ class PlatformQueryRender(QueryRender):
192191
193192 field_value_map = BaseQueryFieldValue (or_token = or_token )
194193
195- query_pattern = "{table} {query} {functions}"
196- raw_log_field_pattern_map : dict = None
194+ query_pattern = "{prefix} {query}{functions}"
195+ raw_log_field_pattern : str = None
197196
198197 def __init__ (self ):
199198 self .operator_map = {
@@ -202,6 +201,12 @@ def __init__(self):
202201 LogicalOperatorType .NOT : f" { self .not_token } " ,
203202 }
204203
204+ def query_concatenation (self , prefix : str , search : str , functions : str ) -> str :
205+ prefix = prefix if prefix else ""
206+ search = f" { search } " if search else ""
207+ functions = f" { functions } " if functions else ""
208+ return self .query_pattern .format (prefix = prefix , query = search , functions = functions ).strip ()
209+
205210 def generate_prefix (self , log_source_signature : LogSourceSignature , functions_prefix : str = "" ) -> str : # noqa: ARG002
206211 if str (log_source_signature ):
207212 return f"{ log_source_signature !s} { self .and_token } "
@@ -283,8 +288,7 @@ def finalize_query(
283288 * args , # noqa: ARG002
284289 ** kwargs , # noqa: ARG002
285290 ) -> str :
286- query = self .query_pattern .format (prefix = prefix , query = query , functions = functions ).strip ()
287-
291+ query = self .query_concatenation (prefix = prefix , search = query , functions = functions )
288292 query = self .wrap_query_with_meta_info (meta_info = meta_info , query = query )
289293 if not_supported_functions :
290294 rendered_not_supported = self .render_not_supported_functions (not_supported_functions )
@@ -325,23 +329,7 @@ def _generate_from_raw_query_container(self, query_container: RawQueryContainer)
325329 prefix = "" , query = query_container .query , functions = "" , meta_info = query_container .meta_info
326330 )
327331
328- def process_raw_log_field (self , field : str , field_type : str ) -> Optional [str ]:
329- if raw_log_field_pattern := self .raw_log_field_pattern_map .get (field_type ):
330- return raw_log_field_pattern .pattern .format (field = field )
331-
332- def process_raw_log_field_prefix (self , field : str , source_mapping : SourceMapping ) -> Optional [list ]:
333- if isinstance (field , list ):
334- list_of_prefix = []
335- for f in field :
336- if prepared_prefix := self .process_raw_log_field_prefix (field = f , source_mapping = source_mapping ):
337- list_of_prefix .extend (prepared_prefix )
338- return list_of_prefix
339- if raw_log_field_type := source_mapping .raw_log_fields .get (field ):
340- return [self .process_raw_log_field (field = field , field_type = raw_log_field_type )]
341-
342332 def generate_raw_log_fields (self , fields : list [Field ], source_mapping : SourceMapping ) -> str :
343- if self .raw_log_field_pattern_map is None :
344- return ""
345333 defined_raw_log_fields = []
346334 for field in fields :
347335 mapped_field = source_mapping .fields_mapping .get_platform_field_name (generic_field_name = field .source_name )
@@ -352,8 +340,10 @@ def generate_raw_log_fields(self, fields: list[Field], source_mapping: SourceMap
352340 )
353341 if not mapped_field and self .is_strict_mapping :
354342 raise StrictPlatformException (field_name = field .source_name , platform_name = self .details .name )
355- if field_prefix := self .process_raw_log_field_prefix (field = mapped_field , source_mapping = source_mapping ):
356- defined_raw_log_fields .extend (field_prefix )
343+ if mapped_field not in source_mapping .raw_log_fields :
344+ continue
345+ field_prefix = self .raw_log_field_pattern .format (field = mapped_field )
346+ defined_raw_log_fields .append (field_prefix )
357347 return "\n " .join (set (defined_raw_log_fields ))
358348
359349 def _generate_from_tokenized_query_container (self , query_container : TokenizedQueryContainer ) -> str :
@@ -384,8 +374,6 @@ def _generate_from_tokenized_query_container(self, query_container: TokenizedQue
384374 meta_info = query_container .meta_info ,
385375 source_mapping = source_mapping ,
386376 )
387- if return_only_first_query_ctx_var .get () is True :
388- return finalized_query
389377 queries_map [source_mapping .source_id ] = finalized_query
390378 if not queries_map and errors :
391379 raise errors [0 ]
0 commit comments