Implement UPPER/LOWER; minor Fixes

This commit is contained in:
Pijus Kamandulis
2024-02-24 20:00:47 +02:00
parent f37c664c1a
commit f356f26d26
12 changed files with 394 additions and 183 deletions

View File

@@ -190,6 +190,10 @@ func getFieldValue(field parsers.SelectItem, queryParameters map[string]interfac
return strings_IndexOf(typedValue.Arguments, queryParameters, row)
case parsers.FunctionCallToString:
return strings_ToString(typedValue.Arguments, queryParameters, row)
case parsers.FunctionCallUpper:
return strings_Upper(typedValue.Arguments, queryParameters, row)
case parsers.FunctionCallLower:
return strings_Lower(typedValue.Arguments, queryParameters, row)
case parsers.FunctionCallIsDefined:
return typeChecking_IsDefined(typedValue.Arguments, queryParameters, row)
case parsers.FunctionCallIn:

View File

@@ -101,6 +101,16 @@ func strings_ToString(arguments []interface{}, queryParameters map[string]interf
return convertToString(value)
}
func strings_Upper(arguments []interface{}, queryParameters map[string]interface{}, row RowType) string {
value := getFieldValue(arguments[0].(parsers.SelectItem), queryParameters, row)
return strings.ToUpper(convertToString(value))
}
func strings_Lower(arguments []interface{}, queryParameters map[string]interface{}, row RowType) string {
value := getFieldValue(arguments[0].(parsers.SelectItem), queryParameters, row)
return strings.ToLower(convertToString(value))
}
func getBoolFlag(arguments []interface{}, queryParameters map[string]interface{}, row RowType) bool {
ignoreCase := false
if len(arguments) > 2 && arguments[2] != nil {
@@ -117,10 +127,10 @@ func parseString(argument interface{}, queryParameters map[string]interface{}, r
exItem := argument.(parsers.SelectItem)
ex := getFieldValue(exItem, queryParameters, row)
if str1, ok := ex.(string); ok {
fmt.Println("StringEquals got parameters of wrong type")
return str1
}
fmt.Println("StringEquals got parameters of wrong type")
return ""
}