@@ -121,6 +121,18 @@ applyStaticDatabaseOptimization dep@(AddInclusionDependency _ _) = return $ Righ
122applyStaticDatabaseOptimization (RemoveInclusionDependency name) = return $ Right (RemoveInclusionDependency name)
122applyStaticDatabaseOptimization (RemoveInclusionDependency name) = return $ Right (RemoveInclusionDependency name)
124+applyStaticDatabaseOptimization (AddNotification name triggerExpr resultExpr) = do
125+ eTriggerExprOpt <- applyStaticRelationalOptimization triggerExpr
126+ case eTriggerExprOpt of
127+ Left err -> pure $ Left err
128+ Right triggerExprOpt -> do
129+ eResultExprOpt <- applyStaticRelationalOptimization resultExpr
130+ case eResultExprOpt of
131+ Left err -> pure $ Left err
132+ Right resultExprOpt -> pure (Right (AddNotification name triggerExprOpt resultExprOpt))
134+applyStaticDatabaseOptimization notif@(RemoveNotification _) = pure (Right notif)
124--optimization: from pgsql lists- check for join condition referencing foreign key- if join projection project away the referenced table, then it does not need to be scanned
136--optimization: from pgsql lists- check for join condition referencing foreign key- if join projection project away the referenced table, then it does not need to be scanned
126--applyStaticDatabaseOptimization (MultipleExpr exprs) = return $ Right $ MultipleExpr exprs
138--applyStaticDatabaseOptimization (MultipleExpr exprs) = return $ Right $ MultipleExpr exprs