1 /*PGR-GNU*****************************************************************
2 File: e_report.c
3
4 Function's developer:
5 Copyright (c) 2016 Celia Virginia Vergara Castillo
6 Mail: vicky_vergara@hotmail.com
7
8 ------
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23
24 ********************************************************************PGR-GNU*/
25
26 #include "c_common/postgres_connection.h"
27 #include "c_common/debug_macro.h"
28 #include "c_common/e_report.h"
29
30 void
pgr_notice(char * notice)31 pgr_notice(
32 char* notice) {
33 PGR_DBG("Returned notice message = %s", notice);
34
35 if (notice) {
36 ereport(NOTICE,
37 (errmsg("%s", notice)));
38 }
39 }
40
41 void
pgr_notice2(char * log,char * notice)42 pgr_notice2(
43 char* log,
44 char* notice) {
45 PGR_DBG("Returned log message = %s", log);
46 PGR_DBG("Returned notice message = %s", notice);
47
48 if (log) {
49 pgr_notice(notice);
50 return;
51 }
52
53 if (notice) {
54 ereport(NOTICE,
55 (errmsg("%s", notice),
56 errhint("%s", log)));
57 }
58 }
59
60 void
pgr_error(char * err)61 pgr_error(char* err) {
62 PGR_DBG("Returned error message = %s", err);
63
64 #if 0
65 char *error = NULL;
66 if (*err_msg) {
67 error = pgr_cstring2char(*err_msg);
68 free(*err_msg);
69 }
70 #endif
71 if (err) {
72 ereport(ERROR,
73 (errmsg_internal("Unexpected"),
74 errhint("%s", err)));
75 }
76 }
77
78 void
pgr_error2(char * log,char * err)79 pgr_error2(
80 char* log,
81 char* err) {
82 PGR_DBG("Returned log message = %s", log);
83 PGR_DBG("Returned error message = %s", err);
84
85 if (err) {
86 ereport(ERROR,
87 (errmsg_internal("%s", err),
88 errhint("%s", log)));
89 }
90 }
91
92 void
pgr_global_report(char * log,char * notice,char * err)93 pgr_global_report(
94 char* log,
95 char* notice,
96 char* err) {
97 if (!notice && log) {
98 ereport(DEBUG1,
99 (errmsg_internal("%s", log)));
100 }
101
102 if (notice) {
103 if (log) {
104 ereport(NOTICE,
105 (errmsg_internal("%s", notice),
106 errhint("%s", log)));
107 } else {
108 ereport(NOTICE,
109 (errmsg_internal("%s", notice)));
110 }
111 }
112
113 if (err) {
114 if (log) {
115 ereport(ERROR,
116 (errmsg_internal("%s", err),
117 errhint("%s", log)));
118 } else {
119 ereport(ERROR,
120 (errmsg_internal("%s", err)));
121 }
122 }
123 }
124