| I understand the primary premise about the difficulty with testing SQL and fully agree with it. I do have a question though - while I understand how functors can help make the problem easier to tackle, I am not sure I fully understand how functors are different from a similar existing tool - stored procedures. Some DB flavors: - can take tables as arguments to stored procedures
- can return tables
- also offer the additional benefit of being able to run almost all flavors of SQL commands ( DDL, DML, DQL, DCL, TCL) in those stored procedures Netezza stored procedures, for example, can do what you describe here: https://www.ibm.com/docs/en/netezza?topic=nsg-return-result-... As can SQL Server & Oracle (which both return cursors, which are just ordered tables): https://learn.microsoft.com/en-us/sql/relational-databases/s... https://docs.oracle.com/cd/B28359_01/appdev.111/b28843/tdddg... Am I missing something fundamental here? How are functors different from stored procedures? To me, they seem to be just a sub-class / sub-type of stored procedures. |
(Okay, maybe you can find a few cases where stored procs work decently, but in general both composability and performance will be much worse than the proposed functors.)