diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index 8dc49e1071e07cedc9af72ae10d08bb43f67642f..aec2116503464047bd6d4b55331949d2072adc74 100644
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -101,35 +101,26 @@ struct columns {
 
 static AST_RWLIST_HEAD_STATIC(psql_columns, columns);
 
-#define LENGTHEN_BUF1(size)                                               \
-			do {                                                          \
-				/* Lengthen buffer, if necessary */                       \
-				if (ast_str_strlen(sql) + size + 1 > ast_str_size(sql)) { \
-					if (ast_str_make_space(&sql, ((ast_str_size(sql) + size + 3) / 512 + 1) * 512) != 0) {	\
-						ast_log(LOG_ERROR, "Unable to allocate sufficient memory.  Insert CDR failed.\n"); \
-						ast_free(sql);                                    \
-						ast_free(sql2);                                   \
-						AST_RWLIST_UNLOCK(&psql_columns);                 \
-						ast_mutex_unlock(&pgsql_lock);                    \
-						return -1;                                        \
-					}                                                     \
-				}                                                         \
-			} while (0)
-
-#define LENGTHEN_BUF2(size)                               \
-			do {                                          \
-				if (ast_str_strlen(sql2) + size + 1 > ast_str_size(sql2)) {  \
-					if (ast_str_make_space(&sql2, ((ast_str_size(sql2) + size + 3) / 512 + 1) * 512) != 0) {	\
-						ast_log(LOG_ERROR, "Unable to allocate sufficient memory.  Insert CDR failed.\n");	\
-						ast_free(sql);                    \
-						ast_free(sql2);                   \
+#define LENGTHEN_BUF(size, var_sql) \
+			do { \
+				/* Lengthen buffer, if necessary */ \
+				if (ast_str_strlen(var_sql) + size + 1 > ast_str_size(var_sql)) { \
+					if (ast_str_make_space(&var_sql, ((ast_str_size(var_sql) + size + 3) / 512 + 1) * 512) != 0) { \
+						ast_log(LOG_ERROR, "Unable to allocate sufficient memory. Insert CDR '%s:%s' failed.\n", pghostname, table); \
+						ast_free(sql); \
+						ast_free(sql2); \
 						AST_RWLIST_UNLOCK(&psql_columns); \
-						ast_mutex_unlock(&pgsql_lock);    \
-						return -1;                        \
-					}                                     \
-				}                                         \
+						ast_mutex_unlock(&pgsql_lock); \
+						return -1; \
+					} \
+				} \
 			} while (0)
 
+#define LENGTHEN_BUF1(size) \
+	LENGTHEN_BUF(size, sql);
+#define LENGTHEN_BUF2(size) \
+	LENGTHEN_BUF(size, sql2);
+
 /*! \brief Handle the CLI command cdr show pgsql status */
 static char *handle_cdr_pgsql_status(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {