MCPcopy Create free account
hub / github.com/apache/cloudberry / ECPGsetcommit

Function ECPGsetcommit

src/interfaces/ecpg/ecpglib/connect.c:170–205  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

168}
169
170bool
171ECPGsetcommit(int lineno, const char *mode, const char *connection_name)
172{
173 struct connection *con = ecpg_get_connection(connection_name);
174 PGresult *results;
175
176 if (!ecpg_init(con, connection_name, lineno))
177 return false;
178
179 ecpg_log("ECPGsetcommit on line %d: action \"%s\"; connection \"%s\"\n", lineno, mode, con->name);
180
181 if (con->autocommit && strncmp(mode, "off", strlen("off")) == 0)
182 {
183 if (PQtransactionStatus(con->connection) == PQTRANS_IDLE)
184 {
185 results = PQexec(con->connection, "begin transaction");
186 if (!ecpg_check_PQresult(results, lineno, con->connection, ECPG_COMPAT_PGSQL))
187 return false;
188 PQclear(results);
189 }
190 con->autocommit = false;
191 }
192 else if (!con->autocommit && strncmp(mode, "on", strlen("on")) == 0)
193 {
194 if (PQtransactionStatus(con->connection) != PQTRANS_IDLE)
195 {
196 results = PQexec(con->connection, "commit");
197 if (!ecpg_check_PQresult(results, lineno, con->connection, ECPG_COMPAT_PGSQL))
198 return false;
199 PQclear(results);
200 }
201 con->autocommit = true;
202 }
203
204 return true;
205}
206
207bool
208ECPGsetconn(int lineno, const char *connection_name)

Callers 11

mainFunction · 0.85
mainFunction · 0.85
fnFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
fnFunction · 0.85
mainFunction · 0.85

Calls 7

ecpg_get_connectionFunction · 0.85
ecpg_logFunction · 0.85
PQtransactionStatusFunction · 0.85
PQexecFunction · 0.85
ecpg_check_PQresultFunction · 0.85
PQclearFunction · 0.85
ecpg_initFunction · 0.70

Tested by 11

mainFunction · 0.68
mainFunction · 0.68
fnFunction · 0.68
mainFunction · 0.68
mainFunction · 0.68
mainFunction · 0.68
mainFunction · 0.68
mainFunction · 0.68
mainFunction · 0.68
fnFunction · 0.68
mainFunction · 0.68