Update pg_stat_activity call for pgsql 9.2
authorMark Wong <markwkm@gmail.com>
Tue, 19 Mar 2013 03:08:20 +0000 (20:08 -0700)
committerMark Wong <markwkm@gmail.com>
Tue, 19 Mar 2013 03:11:33 +0000 (20:11 -0700)
Also reorganize the source tree per pgxn recommendations.

14 files changed:
META.json [new file with mode: 0644]
Makefile
doc/PORTING [moved from PORTING with 100% similarity]
doc/README [moved from README with 100% similarity]
pg_proctab.control [new file with mode: 0644]
sql/pg_cputime.sql [moved from pg_cputime.sql.in with 100% similarity]
sql/pg_loadavg.sql [moved from pg_loadavg.sql.in with 100% similarity]
sql/pg_memusage.sql [moved from pg_memusage.sql.in with 100% similarity]
sql/pg_proctab.sql [moved from pg_proctab.sql.in with 100% similarity]
src/pg_common.h [moved from pg_common.h with 100% similarity]
src/pg_cputime.c [moved from pg_cputime.c with 100% similarity]
src/pg_loadavg.c [moved from pg_loadavg.c with 100% similarity]
src/pg_memusage.c [moved from pg_memusage.c with 100% similarity]
src/pg_proctab.c [moved from pg_proctab.c with 99% similarity]

diff --git a/META.json b/META.json
new file mode 100644 (file)
index 0000000..c0ce616
--- /dev/null
+++ b/META.json
@@ -0,0 +1,44 @@
+{
+   "name": "pg_proctab",
+   "abstract": "Access operating system process tables from PostgreSQL",
+   "description": "pg_proctab is a collection of stored functions that can access the operating systems process table so that system statitics can be queried through the database.",
+   "version": "0.0.4",
+   "maintainer": "Mark Wong",
+   "license": {
+      "PostgreSQL": "http://www.postgresql.org/about/licence"
+   },
+   "provides": {
+      "pg_cputime": {
+         "abstract": "Processor statitics",
+         "file": "sql/pg_proctab.sql",
+         "version": "0.0.1"
+      },
+      "pg_loadavg": {
+         "abstract": "System load averages",
+         "file": "sql/pg_loadavg.sql",
+         "version": "0.0.1"
+      },
+      "pg_memusage": {
+         "abstract": "Memory usage",
+         "file": "sql/pg_memusage.sql",
+         "version": "0.0.1"
+      },
+      "pg_proctab": {
+         "abstract": "Operating system process table",
+         "file": "sql/pg_proctab.sql",
+         "version": "0.0.2"
+      }
+   },
+   "resources": {
+      "repository": {
+        "url":  "git://git.postgresql.org/git/pg_proctab.git",
+        "type": "git"
+      }
+   },
+   "release_status": "testing",
+   "generated_by": "Mark Wong",
+   "meta-spec": {
+      "version": "1.0.0",
+      "url": "http://pgxn.org/meta/spec.txt"
+   }
+}
index 735de0327463b211cfadbbc7f58775483b03609d..2f78f36b1b3aaa29a2d3ca5bbf9c88d5476e059d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,31 @@
-MODULES = pg_cputime pg_loadavg pg_memusage pg_proctab
-DATA_built = pg_cputime.sql pg_loadavg.sql pg_memusage.sql pg_proctab.sql
+EXTENSION = pg_proctab
+EXTVERSION := $(shell grep default_version $(EXTENSION).control | \
+               sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/")
 
+DATA := $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
+DOCS := $(wildcard doc/*)
+MODULES := $(patsubst %.c,%,$(wildcard src/*.c))
 PG_CONFIG = pg_config
+PG91 := $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes)
+
+ifeq ($(PG91),yes)
+all: sql/$(EXTENSION)--$(EXTVERSION).sql
+
+sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
+       cp $< $@
+
+DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql
+EXTRA_CLEAN = sql/$(EXTENSION)--$(EXTVERSION).sql
+endif
+
+# Determine the database version in order to build with the right queries.
+
+PG_VERSION := $(shell $(PG_CONFIG) --version | sed -n 's/PostgreSQL \([0-9]*\.[0-9]*\).*/\1/p')
+PG_VERSION_LT92 := $(shell expr $PG_VERSION '<' 9.2)
+
+ifeq ($(PG_VERSION_LT92),1)
+PG_CPPFLAGS = -DPG91=1
+endif
+
 PGXS := $(shell $(PG_CONFIG) --pgxs)
 include $(PGXS)
similarity index 100%
rename from PORTING
rename to doc/PORTING
similarity index 100%
rename from README
rename to doc/README
diff --git a/pg_proctab.control b/pg_proctab.control
new file mode 100644 (file)
index 0000000..b915d71
--- /dev/null
@@ -0,0 +1,5 @@
+# pg_proctab extension
+comment = 'Access operating system process table'
+default_version = '0.0.4'
+module_pathname = '$libdir/pg_proctab'
+relocatable = true
similarity index 100%
rename from pg_cputime.sql.in
rename to sql/pg_cputime.sql
similarity index 100%
rename from pg_loadavg.sql.in
rename to sql/pg_loadavg.sql
similarity index 100%
rename from pg_memusage.sql.in
rename to sql/pg_memusage.sql
similarity index 100%
rename from pg_proctab.sql.in
rename to sql/pg_proctab.sql
similarity index 100%
rename from pg_common.h
rename to src/pg_common.h
similarity index 100%
rename from pg_cputime.c
rename to src/pg_cputime.c
similarity index 100%
rename from pg_loadavg.c
rename to src/pg_loadavg.c
similarity index 100%
rename from pg_memusage.c
rename to src/pg_memusage.c
similarity index 99%
rename from pg_proctab.c
rename to src/pg_proctab.c
index 755bd8bbf5321d971c11d3ec56cb42c35a588905..9315c1c1ce15074b5a6b787f7f3dde16b6a4bbe4 100644 (file)
 
 #define FULLCOMM_LEN 1024
 
+#ifdef PG91
 #define GET_PIDS \
                "SELECT procpid " \
                "FROM pg_stat_activity"
+#else
+#define GET_PIDS \
+               "SELECT pid " \
+               "FROM pg_stat_activity"
+#endif /* PG91 */
 
 #ifdef __linux__
 #define GET_VALUE(value) \