@@ -33,55 +33,62 @@ class LogScaleFieldValue(BaseQueryFieldValue):
3333
3434 def apply_value (self , value : Union [str , int ]) -> str :
3535 if isinstance (value , str ) and '"' in value :
36- value = value .translate (str .maketrans ({'"' : r'\"' }))
36+ value = re .sub (r'(?<!\\)"' , r'\"' , value )
37+ if isinstance (value , str ) and '/' in value :
38+ value = re .sub (r'(?<!\\)/' , r'\/' , value )
3739 return value
3840
41+ def apply_field_name (self , field_name : str ) -> str :
42+ if not field_name .isalpha ():
43+ return f'"{ field_name } "'
44+ return field_name
45+
3946 def equal_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
4047 if isinstance (value , list ):
4148 return f"({ self .or_token .join (self .equal_modifier (field = field , value = v ) for v in value )} )"
42- return f'{ field } =" { self .apply_value (value )} " '
49+ return f'{ self . apply_field_name ( field_name = field ) } =/ { self .apply_value (value )} /i '
4350
4451 def less_modifier (self , field : str , value : Union [int , str ]) -> str :
45- return f'{ field } <"{ self .apply_value (value )} "'
52+ return f'{ self . apply_field_name ( field_name = field ) } <"{ self .apply_value (value )} "'
4653
4754 def less_or_equal_modifier (self , field : str , value : Union [int , str ]) -> str :
48- return f'{ field } <="{ self .apply_value (value )} "'
55+ return f'{ self . apply_field_name ( field_name = field ) } <="{ self .apply_value (value )} "'
4956
5057 def greater_modifier (self , field : str , value : Union [int , str ]) -> str :
51- return f'{ field } >"{ self .apply_value (value )} "'
58+ return f'{ self . apply_field_name ( field_name = field ) } >"{ self .apply_value (value )} "'
5259
5360 def greater_or_equal_modifier (self , field : str , value : Union [int , str ]) -> str :
54- return f'{ field } >="{ self .apply_value (value )} "'
61+ return f'{ self . apply_field_name ( field_name = field ) } >="{ self .apply_value (value )} "'
5562
5663 def not_equal_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
5764 if isinstance (value , list ):
5865 return f"({ self .or_token .join ([self .not_equal_modifier (field = field , value = v ) for v in value ])} )"
59- return f'{ field } !=" { self .apply_value (value )} " '
66+ return f'{ self . apply_field_name ( field_name = field ) } !=/ { self .apply_value (value )} /i '
6067
6168 def contains_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
6269 if isinstance (value , list ):
6370 return f"({ self .or_token .join (self .contains_modifier (field = field , value = v ) for v in value )} )"
64- return f'{ field } ="* { self .apply_value (value )} *" '
71+ return f'{ self . apply_field_name ( field_name = field ) } =/ { self .apply_value (value )} /i '
6572
6673 def endswith_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
6774 if isinstance (value , list ):
6875 return f"({ self .or_token .join (self .endswith_modifier (field = field , value = v ) for v in value )} )"
69- return f'{ field } ="* { self .apply_value (value )} " '
76+ return f'{ self . apply_field_name ( field_name = field ) } =/ { self .apply_value (value )} $/i '
7077
7178 def startswith_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
7279 if isinstance (value , list ):
7380 return f"({ self .or_token .join (self .startswith_modifier (field = field , value = v ) for v in value )} )"
74- return f'{ field } =" { self .apply_value (value )} *" '
81+ return f'{ self . apply_field_name ( field_name = field ) } =/^ { self .apply_value (value )} /i '
7582
7683 def regex_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
7784 if isinstance (value , list ):
7885 return f"({ self .or_token .join (self .regex_modifier (field = field , value = v ) for v in value )} )"
79- return f'{ field } =" /{ self .apply_value (value )} /" '
86+ return f'{ self . apply_field_name ( field_name = field ) } = /{ self .apply_value (value )} /'
8087
8188 def keywords (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
8289 if isinstance (value , list ):
8390 return f"({ self .or_token .join (self .keywords (field = field , value = v ) for v in value )} )"
84- return f'" { self .apply_value (value )} " '
91+ return f'/ { self .apply_value (value )} /i '
8592
8693
8794class LogScaleQueryRender (BaseQueryRender ):
0 commit comments