From 044a7b945f28b837b3fc987f236cee28e0429e46 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean@malleable.com>
Date: Sun, 29 Jun 2008 12:06:46 +0000
Subject: [PATCH] Quote column names when inserting CDRs into postgres to avoid
 conflicts with reserved words.

(closes issue #12947)
Reported by: panolex


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@126274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 cdr/cdr_pgsql.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index ffc520358b..e4d9b692c0 100644
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -146,8 +146,8 @@ static int pgsql_log(struct ast_cdr *cdr)
 			if (!value) {
 				if (cur->notnull && !cur->hasdefault) {
 					/* Field is NOT NULL (but no default), must include it anyway */
-					LENGTHEN_BUF1(strlen(cur->name));
-					lensql += snprintf(sql + lensql, sizesql - lensql, "%s,", cur->name);
+					LENGTHEN_BUF1(strlen(cur->name) + 2);
+					lensql += snprintf(sql + lensql, sizesql - lensql, "\"%s\",", cur->name);
 					LENGTHEN_BUF2(3);
 					strcat(sql2, "'',");
 					lensql2 += 3;
@@ -155,8 +155,8 @@ static int pgsql_log(struct ast_cdr *cdr)
 				continue;
 			}
 			
-			LENGTHEN_BUF1(strlen(cur->name));
-			lensql += snprintf(sql + lensql, sizesql - lensql, "%s,", cur->name);
+			LENGTHEN_BUF1(strlen(cur->name) + 2);
+			lensql += snprintf(sql + lensql, sizesql - lensql, "\"%s\",", cur->name);
 
 			if (strcmp(cur->name, "start") == 0 || strcmp(cur->name, "calldate") == 0) {
 				if (strncmp(cur->type, "int", 3) == 0) {
-- 
GitLab