[HN Gopher] Show HN: Using SQL's Turing completeness to build Te...
       ___________________________________________________________________
        
       Show HN: Using SQL's Turing completeness to build Tetris
        
       Author : nffaria
       Score  : 145 points
       Date   : 2024-09-04 12:28 UTC (2 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | abhgh wrote:
       | Cool project! I remember I had coded a Reinforcement Learning
       | (RL) assignment long ago back in college with just SQL (I was
       | familiar with Oracle back then, so that's what I had used). The
       | course instructor was amused, more so when he saw how loops were
       | implemented: I had a "loop" table with a sequence of N numbers in
       | a column, and used to join with it to "loop" N times!
        
       | jihadjihad wrote:
       | It seems at first to be a toy or silly intellectual exercise, but
       | after reading the whole thing it really feels like an example of
       | how constraints can lead to creative solutions. Can't log to
       | stdout in the recursive CTE's loop? Maybe `RAISE NOTICE` will
       | work. Can't take user input from the query itself? What if we
       | stored the input in a table locally and read from that instead
       | with `dblink`?
       | 
       | It's just a lot of fun, kudos for hacking this together, this is
       | the sort of thing that makes me love software so much.
        
         | nffaria wrote:
         | Thanks for the kind words, it was exactly like you described.
         | Many times I thought it would not be possible after hitting
         | some of those walls, but luckily there was always a way around
         | them.
        
           | tanelpoder wrote:
           | I once wrote a top-like tool in Oracle's sqlplus client, that
           | is _not_ designed for building self-refreshing terminal UI
           | display apps. Just to see if I could do it, had to get
           | creative too. Used pipelined PL /SQL functions with never-
           | ending output stream and a sleep function within it and had
           | to carefully match the sqlplus "fetch array size" with number
           | of rows returned in a batch from the pipelined function.
           | Called it MOATS - the Mother of All Tuning Scripts - and then
           | someone took the idea further and built v2.0 with added
           | colors and charts, etc:
           | 
           | The v2.0 UI GIF is here: https://github.com/dbsid/moats_rac
        
         | written-beyond wrote:
         | I will admit that in the past I've used `RAISE NOTICE` quite
         | frequently for debugging difficult to navigate PL/pgSQL
         | procedures.
        
       | otteromkram wrote:
       | This is awesome. I did linear regression in T-SQL once and it's a
       | fun way to figure out what you can do with the language (eg - if
       | you're unfamiliar with CTEs or cursors).
       | 
       | I'll definitely be checking this out later. Thanks for the post!
        
       | foreigner wrote:
       | This is great but even more impressive than the code is all the
       | documentation and explanation of how it works. Well done!
        
       | gigatexal wrote:
       | This is really really cool. Very cool work and welcome to HN!
        
       | fishtoaster wrote:
       | This is hilarious and amazing. But moreso than most such cool
       | hack projects, it has a great writeup. The author really did a
       | great job walking through how it worked. Love it.
        
       ___________________________________________________________________
       (page generated 2024-09-06 23:00 UTC)