From f2e791f44819266604079f2571fa9e050cb77af1 Mon Sep 17 00:00:00 2001 From: Yuanle Song <sylecn@gmail.com> Date: Sat, 23 Feb 2019 20:03:42 +0800 Subject: [PATCH] update c-libpq5 to use env variable --- README.org | 24 ++++++++++++++++++++++++ c-libpq5/Makefile | 4 +++- c-libpq5/bench | Bin 9680 -> 13592 bytes c-libpq5/bench.c | 20 ++++++++++++++++---- haskell-postgres-simple/Bench.hs | 13 +++++++++---- haskell-postgres-simple/Makefile | 4 ++++ haskell-postgres-simple/stack.yaml | 2 +- java-jdbc/Makefile | 2 +- python-psycopg2/Makefile | 2 +- 9 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 haskell-postgres-simple/Makefile diff --git a/README.org b/README.org index 589826b..733bd77 100644 --- a/README.org +++ b/README.org @@ -189,3 +189,27 @@ update time cost: 2.72s select time cost: 0.33s update time cost: 2.75s -- + +** 2019-02-23 pg 9.6, ghc 8.2.2, lts 11.7 +seconds: 0.249821547 +seconds: 2.703614265 +-- +seconds: 0.252873544 +seconds: 2.662445433 +-- +seconds: 0.244120763 +seconds: 2.655961013 +-- + +** 2019-02-23 pg 9.6, gcc 6.3.0, libpq-dev 10.3-1 +0.170 +2.598 +-- +0.172 +2.551 +-- +0.178 +2.562 +-- +0.172 +2.589 diff --git a/c-libpq5/Makefile b/c-libpq5/Makefile index 72b174d..a6eabcd 100644 --- a/c-libpq5/Makefile +++ b/c-libpq5/Makefile @@ -1,3 +1,5 @@ -CFLAGS = -std=c99 -O2 -fPIC -pedantic -Wall -Wextra -I/usr/include/postgresql +CFLAGS = -std=c99 -O2 -fPIC -pedantic -Wall -Wextra -Werror -I/usr/include/postgresql LDFLAGS = -lpq +run: bench + ./bench bench: bench.c diff --git a/c-libpq5/bench b/c-libpq5/bench index 2f019ab6a9ab8c3732ed5b791bb2848ed2901af0..72b059e29322aaa1d514c48b3ece902a6523076f 100755 GIT binary patch literal 13592 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 A5C8xG literal 9680 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 BpqBsu diff --git a/c-libpq5/bench.c b/c-libpq5/bench.c index 5928392..16a9552 100644 --- a/c-libpq5/bench.c +++ b/c-libpq5/bench.c @@ -3,6 +3,7 @@ */ #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <sys/time.h> #include <libpq-fe.h> @@ -23,7 +24,7 @@ select_test(PGconn *conn) res = PQexec(conn, "SELECT id, bar FROM foo"); if (PQresultStatus(res) != PGRES_TUPLES_OK) { - fprintf(stderr, "SELECT command failed: %s", + fprintf(stderr, "SELECT command failed: %s\n", PQerrorMessage(conn)); PQclear(res); exit_nicely(conn); @@ -40,7 +41,7 @@ update_test(PGconn *conn) res = PQexec(conn, "UPDATE foo SET bar=bar+1 WHERE id=1"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { - fprintf(stderr, "UPDATE command failed: %s", + fprintf(stderr, "UPDATE command failed: %s\n", PQerrorMessage(conn)); PQclear(res); exit_nicely(conn); @@ -59,13 +60,24 @@ int main() { struct timeval start, end; - const char *conninfo = "host=localhost dbname=t1 user=t1 password=fNfwREMqO69TB9YqE+/OzF5/k+s="; + const char *password; + const char *conninfo_part = "host=localhost dbname=t1 user=t1 password="; + char *conninfo; PGconn *conn; + password = getenv("PG_T1_PASSWORD"); + if (password == NULL) { + fprintf(stderr, "Please define PG_T1_PASSWORD environment variable\n"); + exit(1); + } + + conninfo = (char*) malloc(1 + strlen(conninfo_part) + strlen(password)); + strcat(conninfo, conninfo_part); + strcat(conninfo, password); conn = PQconnectdb(conninfo); if (PQstatus(conn) != CONNECTION_OK) { - fprintf(stderr, "Connection to database failed: %s", + fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); exit_nicely(conn); } diff --git a/haskell-postgres-simple/Bench.hs b/haskell-postgres-simple/Bench.hs index bfdb7f9..d71f03c 100644 --- a/haskell-postgres-simple/Bench.hs +++ b/haskell-postgres-simple/Bench.hs @@ -1,5 +1,6 @@ module Main where +import System.Environment (lookupEnv) import Control.Monad import Text.Printf import Data.Time.Clock @@ -26,7 +27,11 @@ timeit action = do main :: IO () main = do - conn <- connectPostgreSQL "host=localhost dbname=t1 user=t1 password=fNfwREMqO69TB9YqE+/OzF5/k+s=" - timeit $ selectTest conn - timeit $ updateTest conn - close conn + passwordMaybe <- lookupEnv "PG_T1_PASSWORD" + case passwordMaybe of + Nothing -> printf "Error: Please define PG_T1_PASSWORD environment variable" + Just password -> do + conn <- connectPostgreSQL "host=localhost dbname=t1 user=t1 password=62IWgtWiPCZdt8qu" + timeit $ selectTest conn + timeit $ updateTest conn + close conn diff --git a/haskell-postgres-simple/Makefile b/haskell-postgres-simple/Makefile new file mode 100644 index 0000000..b3466ff --- /dev/null +++ b/haskell-postgres-simple/Makefile @@ -0,0 +1,4 @@ +run: + stack build + stack exec bench +.PHONY: run diff --git a/haskell-postgres-simple/stack.yaml b/haskell-postgres-simple/stack.yaml index ecf897a..27ebe43 100644 --- a/haskell-postgres-simple/stack.yaml +++ b/haskell-postgres-simple/stack.yaml @@ -15,7 +15,7 @@ # resolver: # name: custom-snapshot # location: "./custom-snapshot.yaml" -resolver: lts-5.18 +resolver: lts-11.7 # User packages to be built. # Various formats can be used as shown in the example below. diff --git a/java-jdbc/Makefile b/java-jdbc/Makefile index f654181..4863325 100644 --- a/java-jdbc/Makefile +++ b/java-jdbc/Makefile @@ -1,3 +1,3 @@ run: - PG_T1_PASSWORD="62IWgtWiPCZdt8qu" ./gradlew build run + ./gradlew build run .PHONY: run diff --git a/python-psycopg2/Makefile b/python-psycopg2/Makefile index b587afe..f7bc82f 100644 --- a/python-psycopg2/Makefile +++ b/python-psycopg2/Makefile @@ -1,3 +1,3 @@ run: - PG_T1_PASSWORD="62IWgtWiPCZdt8qu" python bench.py + python bench.py .PHONY: run -- GitLab