pike.git/
lib/
modules/
Sql.pmod/
pgsql_util.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2020-02-25
2020-02-25 00:59:55 by Stephen R. van den Berg <srb@cuci.nl>
3d6e3c84317155c0717a7134cd913225a19b01d0 (
15
lines) (+
8
/-
7
)
[
Show
|
Annotate
]
Branch:
master
pgsql: Simplify error handling for users.
210:
if (!objectp(parent->pgsqlsess)) parent->untolderror = 0; else if (parent->pgsqlsess)
-
parent->pgsqlsess->untolderror = 0;
-
parent
.
delayederror = 0;
+
parent->pgsqlsess->untolderror =
parent->pgsqlsess->delayederror =
0;
+
parent
->
delayederror = 0;
if (stringp(err)) err = ({err, backtrace()[..<2]}); throw(err);
1694:
replenishrows(); }
-
private void releaseconditions() {
+
private void releaseconditions(
void|int aborted
) {
_unnamedportalkey = _unnamedstatementkey = 0; if (!datarowtypes) { if (_state != PURGED && !delayederror)
1702:
datarowtypes = ({}); _ddescribe->broadcast(); }
-
if (delayederror && pgsqlsess && !pgsqlsess.delayederror)
+
if (
aborted &&
delayederror && pgsqlsess && !pgsqlsess.delayederror)
pgsqlsess.delayederror = delayederror; // Preserve error upstream
-
pgsqlsess = 0;
+
pgsqlsess = 0;
// Sever connection to upstream
} final void _releasesession(void|string statusccomplete) {
1725:
_state = CLOSED; } datarows->write(1); // Signal EOF
-
releaseconditions();
+
releaseconditions(
statusccomplete == "ABORT"
);
} protected void _destruct() {
1941:
private array(string) lastmessage = ({}); final int(0..1) clearmessage; final int(0..1) untolderror;
+
final mixed delayederror;
private mapping(string:array(mixed)) notifylist = ([]); final mapping(string:string) runtimeparameter; final mapping(string:mapping(string:mixed)) prepareds = ([]);
1952:
private int warningscollected; final int(0..1) invalidatecache; private Thread.Queue qportals;
-
final mixed delayederror;
+
final function (:void) readyforquery_cb; final string host;