Search Shortcut cmd + k | ctrl + k
brew

Get locally homebrew casks, packages and formulas and their dependencies as nicely types tables

Maintainer(s): adriens

Installing and Loading

INSTALL brew FROM community;
LOAD brew;

Example

-- Get brew version
SELECT brew_version() as brew_version;

-- View all configuration with categories
SELECT name, value, category FROM brew_config();

-- Run brew doctor to check system health (categorized)
FROM brew_doctor();

-- Get all casks
from brew_casks();

-- Get all packages
from brew_packages();

-- Get all formulas
from brew_formulas();

-- Get dependencies between packages
from brew_dependencies();

-- Reporting : Find outdated packages
SELECT name, version FROM brew_packages() WHERE outdated = true;

-- Create brew_packages table with constraints
CREATE OR REPLACE TEMP TABLE brew_packages (
  tap VARCHAR,
  name VARCHAR PRIMARY KEY,
  version VARCHAR,
  type VARCHAR,
  description VARCHAR,
  homepage VARCHAR,
  license VARCHAR,
  installed_on_request BOOLEAN,
  installed_as_dependency BOOLEAN,
  installed_time TIMESTAMP,
  outdated BOOLEAN,
  pinned BOOLEAN,
  deprecated BOOLEAN,
  disabled BOOLEAN,
  poured_from_bottle BOOLEAN,
  built_as_bottle BOOLEAN,
  dependencies VARCHAR,
  aliases VARCHAR,
  deprecation_reason VARCHAR,
  disable_reason VARCHAR,
  caveats VARCHAR,
  size_bytes BIGINT
);

-- Populate from the function
INSERT INTO brew_packages
  SELECT * FROM brew_packages();

-- Create brew_dependencies table with foreign key constraints
CREATE OR REPLACE TEMP TABLE brew_dependencies (
    name VARCHAR,
    dependency VARCHAR,
    FOREIGN KEY (name) REFERENCES brew_packages(name),
    FOREIGN KEY (dependency) REFERENCES brew_packages(name)
);

-- Populate from brew_packages function
INSERT INTO brew_dependencies
SELECT
    name,
    unnest(string_split(dependencies, ', ')) as dependency
FROM brew_packages()
WHERE dependencies IS NOT NULL
ORDER BY name;

SELECT 
  tap, 
  count(*) as package_count
FROM brew_packages
GROUP BY tap
ORDER BY package_count DESC;

Added Functions

function_name function_type description comment examples
brew_casks table Returns the installed casks NULL [from brew_casks()]
brew_packages table Returns the installed packages, casks and formulas NULL [from brew_packages()]
brew_formulas table Returns the installed formulas NULL [from brew_formulas()]
brew_dependencies table Return a table with two columns : the package and the pakage that relies on it. One row per dependency Useful to produce a graph of dependencies and security reports [from brew_dependencies]
brew_config table NULL NULL NULL
brew_doctor table NULL NULL NULL
brew_version scalar NULL NULL NULL

Overloaded Functions

This extension does not add any function overloads.

Added Types

This extension does not add any types.

Added Settings

This extension does not add any settings.