Skip to content

Instantly share code, notes, and snippets.

Avatar

Florian Klein docteurklein

View GitHub Profile
View test.sql
load 'age';
SET search_path = ag_catalog, "$user", public;
create table if not exists history (year, event) as values (1996, 'postgresql'), (2016, 'agensgraph');
select drop_graph('g', true);
select create_graph('g');
select * from cypher('g', $$
create (:dev {name: 'someone', year: 2015})
View README.md

declarative DDL

what?

Define your database schema in a declarative way, by providing the wanted state, and this tool will calculate a diff to reconcile it with reality.

how?

Let's imagine a scenario:

@docteurklein
docteurklein / index.md
Last active May 7, 2020
Work on a cabal dependency to contribute upstream
View index.md

Work on a cabal dependency to contribute upstream

The haskell dependency management can be quite intimidating at first, but after a while you get used to it and realize it's very similar to rust's cargo (so many things are similar between rust and haskell, by the way).

One of the things I found particularly easy (once you know how) is to edit a dependency locally to work on it.

So imagine you have a cabal project with a dependency:

View dbal-mig.php
use Doctrine\DBAL\Schema\Comparator;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DriverManager;
$connFrom = DriverManager::getConnection([
'url' => "mysql://root:root@127.0.0.1/test1",
], new Configuration);
$connTo = DriverManager::getConnection([
@docteurklein
docteurklein / 0_setup.sql
Last active Jan 14, 2020
psql -v ON_ERROR_STOP=1 -c begin $(find . -name '*.sql' -printf ' -f %f\n' | sort -V | xargs) -c commit
View 0_setup.sql
create table if not exists migration (
id bigint primary key,
at timestamptz not null default clock_timestamp()
);
@docteurklein
docteurklein / migrate.sql
Created Jan 13, 2020
postgres-only transactional migration script
View migrate.sql
begin;
create table if not exists migration (id bigint primary key, at timestamptz not null default clock_timestamp());
drop function if exists migrate;
create function migrate() returns bigint language plpgsql as $$
declare current_migration bigint;
begin
select coalesce((select id from migration order by id desc limit 1), 0) into current_migration;
View gist:868dcd62c86d95e688130fea09f0e45a
create function es.project(event es.events) returns void
language plpgsql as $$
begin
case event.type
when 'user_registered' then
insert into es.active_users
(user_id , name , sha256 , updated_at) values
(event.aggregate_id , event.payload->>'name' , event.payload->>'sha256' , event.added_at);
when 'user_changed_password' then
update es.active_users set
View error.md
error[E0599]: no method named `map` found for type `postgres::notification::BlockingIter<'_>` in the current scope
  --> src/main.rs:24:19
   |
24 |     notifications.map(|notification| {
   |                   ^^^
   |
   = note: the method `map` exists but the following trait bounds were not satisfied:
           `&mut postgres::notification::BlockingIter<'_> : fallible_iterator::FallibleIterator`
           `&mut postgres::notification::BlockingIter<'_> : std::iter::Iterator`
View README.md
  • why is it that the haskell Text.CSV version is always around twice as slow?
  • how can I use ; as a column separator in the haskell Text.CSV version?
View gist:96ec8b7f126f92069e5a399acc5741cb
root@a77d04db26a6:/go/src/github.com/docker/docker# GOOS=darwin hack/make.sh binary
Removing bundles/
---> Making bundle: binary (in bundles/binary)
Building: bundles/binary-daemon/dockerd-dev
GOOS="darwin" GOARCH="" GOARM=""
# github.com/docker/docker/vendor/github.com/moby/buildkit/snapshot
vendor/github.com/moby/buildkit/snapshot/localmounter_unix.go:17:38: undefined: syscall.MNT_DETACH
# github.com/docker/docker/vendor/github.com/docker/libnetwork/osl
You can’t perform that action at this time.