pike.git/
lib/
modules/
Sql.pmod/
pgsql_util.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2020-02-25
2020-02-25 01:10:52 by Stephen R. van den Berg <srb@cuci.nl>
a5b0b317e2c5b50244a36b240e7a283ae528faf1 (
15
lines) (+
8
/-
7
)
[
Show
|
Annotate
]
Branch:
8.0
pgsql: Simplify error handling for users.
209:
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);
1511:
replenishrows(); }
-
private void releaseconditions() {
+
private void releaseconditions(
void|int aborted
) {
_unnamedportalkey = _unnamedstatementkey = 0; if (!datarowtypes) { if (_state != PURGED && !delayederror)
1519:
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) {
1542:
_state = CLOSED; } datarows->write(1); // Signal EOF
-
releaseconditions();
+
releaseconditions(
statusccomplete == "ABORT"
);
} protected void destroy() {
1758:
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 = ([]);
1769:
private int warningscollected; final int(0..1) invalidatecache; private Thread.Queue qportals;
-
final mixed delayederror;
+
final function (:void) readyforquery_cb; final string host;