Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Example of using Postgres for Recursive Tree SQL in a Rails app
Ruby JavaScript
branch: master
Failed to load latest commit information.
app
config
db Add seeds for development
lib Basic Rails application
log Basic Rails application
public
script Basic Rails application
spec Implement 'all descendent cat pictures'
vendor Basic Rails application
.gitignore
.rspec
Gemfile
Gemfile.lock
README.md
Rakefile
config.ru

README.md

Example application for demonstrating tree SQL

Setup

Obviously:

bundle

Edit config/database.yml as needed, then run:

rake db:setup db:test:prepare

Keep the tests passing:

rake

SQL

After seeding the database, you can run rails dbconsole and play with the following query:

WITH RECURSIVE search_tree(id, name, path) AS (
  SELECT id, name, ARRAY[id]
  FROM categories
  WHERE parent_id IS NULL
UNION ALL
  SELECT categories.id, categories.name, path || categories.id
  FROM search_tree
  JOIN categories ON categories.parent_id=search_tree.id
  WHERE NOT categories.id = ANY(path)
)
SELECT * FROM search_tree
ORDER BY path
;
Something went wrong with that request. Please try again.