Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: publish
on:
pull_request:
workflow_dispatch:
inputs:
tag:
default: latest
description: build tag
required: false
jobs:
publish-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build the pgsql Docker image
run: |
TAG_INPUT=${{ github.event.inputs.name }}
docker build . --tag ghcr.io/openimis/openimis-pgsql:${TAG_INPUT:-"latest"}
docker push ghcr.io/openimis/openimis-pgsql:${TAG_INPUT:-"latest"}
3 changes: 2 additions & 1 deletion concatenate_files.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/bin/bash

mkdir output
cat database\ scripts/*.sql > output/fullDemoDatabase.sql
cd database\ scripts
cat 00_dump.sql 0[2345]_*.sql demo_db.sql > ../output/fullDemoDatabase.sql
60 changes: 30 additions & 30 deletions database scripts/02_aux_functions.sql
Original file line number Diff line number Diff line change
@@ -1,144 +1,144 @@
/* Functions for Year, Quarter, and Month */
--Year
CREATE OR REPLACE FUNCTION YEAR(TIMESTAMP without TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".YEAR(TIMESTAMP without TIME ZONE) RETURNS INTEGER
AS $$
SELECT EXTRACT(YEAR FROM $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION YEAR(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".YEAR(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
AS $$
SELECT EXTRACT(YEAR FROM $1)::INTEGER;
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION YEAR(DATE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".YEAR(DATE) RETURNS INTEGER
AS $$
SELECT EXTRACT(YEAR FROM $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;

--Quarter
CREATE OR REPLACE FUNCTION QUARTER(TIMESTAMP without TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".QUARTER(TIMESTAMP without TIME ZONE) RETURNS INTEGER
AS $$
SELECT EXTRACT(QUARTER FROM $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION QUARTER(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".QUARTER(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
AS $$
SELECT EXTRACT(QUARTER FROM $1)::INTEGER;
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION QUARTER(DATE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".QUARTER(DATE) RETURNS INTEGER
AS $$
SELECT EXTRACT(QUARTER FROM $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;

--Month
CREATE OR REPLACE FUNCTION MONTH(TIMESTAMP without TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".MONTH(TIMESTAMP without TIME ZONE) RETURNS INTEGER
AS $$
SELECT EXTRACT(MONTH FROM $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION MONTH(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".MONTH(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
AS $$
SELECT EXTRACT(MONTH FROM $1)::INTEGER;
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION MONTH(DATE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".MONTH(DATE) RETURNS INTEGER
AS $$
SELECT EXTRACT(MONTH FROM $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;


/* DATEDIFF Functions for Year and Day */
--Year
CREATE OR REPLACE FUNCTION DATEDIFF_YEAR(TIMESTAMP without TIME ZONE, TIMESTAMP without TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".DATEDIFF_YEAR(TIMESTAMP without TIME ZONE, TIMESTAMP without TIME ZONE) RETURNS INTEGER
AS $$
SELECT (DATE_PART('year', $2) - DATE_PART('year', $1))::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DATEDIFF_YEAR(TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".DATEDIFF_YEAR(TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
AS $$
SELECT (DATE_PART('year', $2) - DATE_PART('year', $1))::INTEGER;
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION DATEDIFF_YEAR(DATE, DATE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".DATEDIFF_YEAR(DATE, DATE) RETURNS INTEGER
AS $$
SELECT (DATE_PART('year', $2) - DATE_PART('year', $1))::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;

--Day
CREATE OR REPLACE FUNCTION DATEDIFF_DAY(TIMESTAMP without TIME ZONE, TIMESTAMP without TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".DATEDIFF_DAY(TIMESTAMP without TIME ZONE, TIMESTAMP without TIME ZONE) RETURNS INTEGER
AS $$
SELECT DATE_PART('day', $2 - $1)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DATEDIFF_DAY(TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".DATEDIFF_DAY(TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH TIME ZONE) RETURNS INTEGER
AS $$
SELECT DATE_PART('day', $2 - $1)::INTEGER;
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION DATEDIFF_DAY(DATE, DATE) RETURNS INTEGER
CREATE OR REPLACE FUNCTION "public".DATEDIFF_DAY(DATE, DATE) RETURNS INTEGER
AS $$
SELECT ($2::DATE - $1::DATE)::INTEGER;
$$ LANGUAGE SQL IMMUTABLE;

/* Datename functions for Quarter*/
--Quarter
CREATE OR REPLACE FUNCTION DATENAME_Q(TIMESTAMP without TIME ZONE) RETURNS TEXT
CREATE OR REPLACE FUNCTION "public".DATENAME_Q(TIMESTAMP without TIME ZONE) RETURNS TEXT
AS $$
SELECT to_char($1, 'Q');
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DATENAME_Q(TIMESTAMP WITH TIME ZONE) RETURNS TEXT
CREATE OR REPLACE FUNCTION "public".DATENAME_Q(TIMESTAMP WITH TIME ZONE) RETURNS TEXT
AS $$
SELECT to_char($1, 'Q');
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION DATENAME_Q(DATE) RETURNS TEXT
CREATE OR REPLACE FUNCTION "public".DATENAME_Q(DATE) RETURNS TEXT
AS $$
SELECT to_char($1, 'Q');
$$ LANGUAGE SQL IMMUTABLE;

/* End of Month */
CREATE OR REPLACE FUNCTION EOMONTH(TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".EOMONTH(TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT date_trunc('month', $1) + interval '1 month' - interval '1 day';
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION EOMONTH(TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
CREATE OR REPLACE FUNCTION "public".EOMONTH(TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
AS $$
SELECT date_trunc('month', $1) + interval '1 month' - interval '1 day';
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION EOMONTH(DATE) RETURNS TIMESTAMP with TIME ZONE
CREATE OR REPLACE FUNCTION "public".EOMONTH(DATE) RETURNS TIMESTAMP with TIME ZONE
AS $$
SELECT date_trunc('month', $1) + interval '1 month' - interval '1 day';
$$ LANGUAGE SQL IMMUTABLE;

/* Dateadd functions for the other OpenIMIS functions*/
--Year
CREATE OR REPLACE FUNCTION DATEADD_YEAR(INTEGER, TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_YEAR(INTEGER, TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT $2 + ($1 * INTERVAL '1 year');
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DATEADD_YEAR(INTEGER, TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_YEAR(INTEGER, TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
AS $$
SELECT $2 + ($1 * INTERVAL '1 year');
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION DATEADD_YEAR(INTEGER, DATE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_YEAR(INTEGER, DATE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT $2 + ($1 * INTERVAL '1 year');
$$ LANGUAGE SQL IMMUTABLE;

--Month
CREATE OR REPLACE FUNCTION DATEADD_MONTH(INTEGER, TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_MONTH(INTEGER, TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT $2 + ($1 * INTERVAL '1 month');
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DATEADD_MONTH(INTEGER, TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_MONTH(INTEGER, TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
AS $$
SELECT $2 + ($1 * INTERVAL '1 month');
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION DATEADD_MONTH(INTEGER, DATE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_MONTH(INTEGER, DATE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT $2 + ($1 * INTERVAL '1 month');
$$ LANGUAGE SQL IMMUTABLE;

--DAY
CREATE OR REPLACE FUNCTION DATEADD_DAY(INTEGER, TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_DAY(INTEGER, TIMESTAMP without TIME ZONE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT $2 + $1 * INTERVAL '1 day';
$$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DATEADD_DAY(INTEGER, TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_DAY(INTEGER, TIMESTAMP WITH TIME ZONE) RETURNS TIMESTAMP with TIME ZONE
AS $$
SELECT $2 + $1 * INTERVAL '1 day';
$$ LANGUAGE SQL STABLE;
CREATE OR REPLACE FUNCTION DATEADD_DAY(INTEGER, DATE) RETURNS TIMESTAMP without TIME ZONE
CREATE OR REPLACE FUNCTION "public".DATEADD_DAY(INTEGER, DATE) RETURNS TIMESTAMP without TIME ZONE
AS $$
SELECT $2 + $1 * INTERVAL '1 day';
$$ LANGUAGE SQL IMMUTABLE;