PL/Swift allows you to write custom SQL functions and types for the PostgreSQL database server in the Swift programming language.
It does what? Assume you have a Swift function which turns an integer into a base36 encoded String, to replicate the trick used by URL shorteners (“goo.gl/QvohfE”):
func base36_encode(_ v: Int) -> String { return String(v, radix: 36) } and now you would like to use that in a SQL query, like so:
helge=# SELECT base36_encode(31337); base36_encode --------------- o6h (1 row) This is what PL/Swift does. It helps you expose your Swift functions to PostgreSQL.
Does this make sense? Very likely not, it depends, as usual. But no. It doesn’t. Consider this a neat demo, not something you should do in the real world.
Another useful example?
import cows func plcows_vaca() -> String { return cows.vaca() // returns a random ASCII cow } helge=# SELECT plcows_vaca(); plcows_vaca ---------------------------- ((----)) + ((oooo)) + ///-----\\\/// + ///||| ||| + *** ||||||---||| + ^^^^^^ ^^^ + where milkshakes come from (1 row) Documentation
PL/Swift documentation can be found here: pl-swift.github.io/docs/.
A small tutorial can be found over here: PL/Swift - PostgreSQL Functions in Swift.
