Skip to content

Instantly share code, notes, and snippets.

@adunstan
adunstan / Claude generated table DDL function (v3)
Created August 11, 2025 15:25
Claude generated table DDL function (v3)
(See v2)
Query:
Modify this so it's a Postgres builtin function, callable from SQL. The code should be designed to be added to ruleutils.c
==============================================================================================================================
reply:
I've rewritten the code to be a proper PostgreSQL builtin function that would be added to ruleutils.c. Here are the key changes and design decisions:
@adunstan
adunstan / Claude generated table DDl function (v2)
Created August 11, 2025 15:01
Claude generated table DDl function (v2)
The query:
Write a C function for postgresql to return the creation DDL for a table.
Don't use SPI. The function should include unlogged, temporary, and partitioned tables.
Type names should be fetched using the get_typename_with_typemod function.
It should include all relevant column properties such as collation, storage and compression method, and table properties
such as commit behaviour, storage, and tablespace
=========================================================================================================================================
@adunstan
adunstan / Claude generated get_table_ddl function
Last active August 11, 2025 14:04
Claude generated get_table_ddl function
This is Claude's description of the code:
=============================================================================================================================
This C function creates a PostgreSQL extension function called get_table_ddl that generates the CREATE TABLE DDL for a given table without using SPI. Here's what it does:
Key Features:
Takes a table name as input (supports schema.table format)
Returns the complete CREATE TABLE statement as text
Handles column definitions with proper data types and type modifiers
@adunstan
adunstan / Vagrantfile
Created September 1, 2024 12:29
Wordpress with Postgres Vagrant recipe
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'qemu'
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
@adunstan
adunstan / gist:bd50b322e3507bc377134eb6ee1a6974
Last active March 4, 2024 01:55
gitlab get list of repos via API
curl --header "Authorization: Bearer <your_access_token>" https://gitlab.example.com/api/v4/projects |
jq -c -r '.[]|[.http_url_to_repo, .visibility]'
# works with private token or OAuth token
@adunstan
adunstan / gist:6fd1c167e772276701e19457d235ddf5
Last active May 8, 2020 14:11
get a list of repos for an org and the private flag via github API
curl -H "Authorization: token $token" -s "https://api.github.com/orgs/$orgname/repos?per_page=100&page=$pagenum" | \
jq -c -r '.[]|[.html_url, .private]'
@adunstan
adunstan / scrub_strings.pl
Last active August 4, 2019 13:57
obscure_strings
perl -p -e "local \$/ = undef; my \$log = <>; \$log =~ s/('|\\\$[a-zA-Z0-9_]*\\\$)(.*)\$1/\$1 . (q[X] x length(\$2)) . \$1/gme; print \$log;" /tmp/logsamp
@adunstan
adunstan / appveyor-cranges.yml
Last active October 15, 2017 12:38
setup for cranges appveyor
# appveyor.yml
before_build:
- set PATH=C:\Program Files\PostgreSQL\9.6\bin;%PATH%
- cmake -G "Visual Studio 14 2015 Win64"
- dir
- pg_config
build:
project: cranges.sln
@adunstan
adunstan / appveyor.yml
Last active June 3, 2018 11:58
Setup for appveyor builds
# appveyor.yml
install:
- cinst winflexbison
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64'
before_build:
- net user testuser Blurfl9426! /add
- rename c:\ProgramData\chocolatey\bin\win_flex.exe flex.exe
- rename c:\ProgramData\chocolatey\bin\win_bison.exe bison.exe
- curl -S -O https://gist.githubusercontent.com/adunstan/7f18e5db33bb2d73f69ff8c9337a4e6c/raw/buildsetup.pl
@echo off
rem see http://stackoverflow.com/questions/9946322/how-to-generate-an-import-library-lib-file-from-a-dll#9946390
rem see also http://www.postgresql-archive.org/MSVC-pl-perl-error-message-is-not-verbose-enough-td5913411.html
rem see also https://postgr.es/m/CABcP5fjEjgOsh097cWnQrsK9yCswo4DZxp-V47DKCH-MxY9Gig@mail.gmail.com
REM Usage: dll2lib [32|64] some-file.dll
REM
REM Generates some-file.lib from some-file.dll, making an intermediate