■ ■ ■ ■ ■ ■
server/src-lib/Hasura/GraphQL/Schema/Select.hs
skipped 910 lines 911 911 mkNumericAggFields name 912 912 | name == Name._sum = traverse mkColumnAggField 913 913 | otherwise = traverse \columnInfo -> 914 - pure $ 915 - P.selection_ 916 - (ciName columnInfo) 917 - (ciDescription columnInfo) 918 - (P.nullable P.float) 919 - $> IR.CFCol (ciColumn columnInfo) (ciType columnInfo) 914 + pure $! do 915 + let !cfcol = IR.CFCol (ciColumn columnInfo) (ciType columnInfo) 916 + P.selection_ 917 + (ciName columnInfo) 918 + (ciDescription columnInfo) 919 + (P.nullable P.float) 920 + $> cfcol 920 921 921 922 mkColumnAggField :: ColumnInfo b -> m (FieldParser n (IR.ColFld b)) 922 923 mkColumnAggField columnInfo = do skipped 66 lines 989 990 let columnName = ciColumn columnInfo 990 991 selectPermissions <- hoistMaybe $ tableSelectPermissions roleName tableInfo 991 992 guard $ columnName `Map.member` spiCols selectPermissions 992 - let caseBoolExp = join $ Map.lookup columnName (spiCols selectPermissions) 993 - caseBoolExpUnpreparedValue = 994 - (fmap . fmap) partialSQLExpToUnpreparedValue <$> caseBoolExp 993 + let ! caseBoolExp = join $ Map.lookup columnName (spiCols selectPermissions) 994 + ! caseBoolExpUnpreparedValue = 995 + (fmap . fmap) partialSQLExpToUnpreparedValue <$! > caseBoolExp 995 996 pathArg = scalarSelectionArgumentsParser $ ciType columnInfo 996 997 -- In an inherited role, when a column is part of all the select 997 998 -- permissions which make up the inherited role then the nullability skipped 16 lines 1014 1015 -- allow the case analysis only on nullable columns. 1015 1016 nullability = ciIsNullable columnInfo || isJust caseBoolExp 1016 1017 field <- lift $ columnParser (ciType columnInfo) (G.Nullability nullability) 1017 - pure $ 1018 + pure $! 1018 1019 P.selection fieldName (ciDescription columnInfo) pathArg field 1019 1020 <&> IR.mkAnnColumnField (ciColumn columnInfo) (ciType columnInfo) caseBoolExpUnpreparedValue 1020 1021 FIRelationship relationshipInfo -> skipped 240 lines