emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/pq e9e1998796 10/63: Handle booleans and fix some NULL


From: ELPA Syncer
Subject: [elpa] externals/pq e9e1998796 10/63: Handle booleans and fix some NULL handling.
Date: Mon, 14 Feb 2022 23:24:18 -0500 (EST)

branch: externals/pq
commit e9e199879686662182f17e66848d89cb508b65a5
Author: Andreas Seltenreich <andreas+git@ansel.ydns.eu>
Commit: Andreas Seltenreich <andreas+git@ansel.ydns.eu>

    Handle booleans and fix some NULL handling.
---
 pq.c    | 9 ++++++++-
 test.el | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/pq.c b/pq.c
index 40f7158dee..fb3a12be4f 100644
--- a/pq.c
+++ b/pq.c
@@ -92,13 +92,20 @@ Fpq_connectdb (emacs_env *env, int nargs, emacs_value 
args[], void *data)
 static emacs_value
 pq_getvalue_internal(emacs_env *env, PGresult *res, int row, int column)
 {
+  if (PQgetisnull(res, row, column))
+    return Qnil;
+
   char *result = PQgetvalue(res, row, column);
+  if (!result)
+    return Qnil;
 
   switch(PQftype(res, column)) {
+  case BOOLOID:
+    return ('t' == *result) ? Qt : Qnil;
   case INT2OID:
   case INT4OID:
   case OIDOID:
-      return env->make_integer(env, atol(result));
+    return env->make_integer(env, atol(result));
   case INT8OID:
   case FLOAT4OID:
   case FLOAT8OID:
diff --git a/test.el b/test.el
index 80fc0dab58..cf7e92e6e9 100644
--- a/test.el
+++ b/test.el
@@ -14,7 +14,7 @@
 ;; "'mo''oo\"oo'"
 (pq:escapeIdentifier con "moo'oo\"oo")
 ;; "\"moo'oo\"\"oo\""
+(pq:query con "select true, false, NULL, version()")
 (setq con (pq:connectdb))
-(pq:query con "select version()")
 (setq con nil)
 (garbage-collect)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]