logoalt Hacker News

Chess in SQL

24 pointsby upmostlylast Sunday at 1:25 PM7 commentsview on HN

Comments

eelinkitoday at 6:12 AM

You could take this even further and add triggers to see if your move is legal or not. Or delete row with a conflict when you capture a piece.

upmostlylast Sunday at 1:28 PM

Author here.

I had the idea of building a working Chess game using purely SQL.

The chess framing is a bit of a trojan horse, honestly. The actual point is that SQL can represent any stateful 2D grid. Calendars, heatmaps, seating plans, game of life. The schema is always the same: two coordinate columns and a value. The pivot query doesn't change.

A few people have asked why not just use a 64-char string or an array type. You could! But you lose all the relational goodness: joins, aggregations, filtering by piece type. SELECT COUNT(*) FROM board WHERE piece = '♙' just works.

show 1 reply
jimgoneilltoday at 6:43 AM

And they didn’t call it ChessQL?

landsmantoday at 6:12 AM

Tool looks nice, but I would prefer such a tool written in a better (native?) language than JavaScript. Security is also important to me, so I only use open-source tools. I’m going to stick with DBeaver and DataGrip.

grimm8080today at 6:36 AM

Amazing, how do I play it?

FergusArgylltoday at 6:12 AM

Very cool! I think the dragon is missing a white rook - ascii chess pieces are heard to see...