-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Labels
Description
As part of supporting aggregate functions add support for following functions:
MIN()
MAX()
Add min and max tag that can be used in selectClause structs as follows:
type TestSoqlStruct struct {
SelectClause NestedStruct `soql:"selectClause,tableName= Contact"`
GroupBy []string `soql:"groupByClause"`
}
type NestedStruct struct {
FirstName string `soql:"selectColumn,fieldName=FirstName"`
LastName string `soql:"selectColumn,fieldName=LastName"`
Count int `soql:"min,fieldName= CreatedDate"`
}
soqlStruct := TestSoqlStruct{
GroupBy: []string{"FirstName", "LastName"},
}
soqlQuery, err := Marshal(soqlStruct)
if err != nil {
fmt.Printf("Error in marshaling: %s\n", err.Error())
}
fmt.Println(soqlQuery)
This should result in SOQL as follows
SELECT FirstName, LastName, MIN(CreatedDate) FROM Contact GROUP BY FirstName, LastName'
Note that if fieldName is not specified then return ErrInvalidTag.
Same should apply for max tag as well.
Allow min and max to be used only for supported primitive data types
Reactions are currently unavailable