pgsql: Force binary decoding of UUID types.
pgsql: Fix support for binary UUID type transfer.
Sql: Stricter handling of zero.
Sql.pgsql_util: Fix incorrect prototype of done_cb
Added zero as return type on methods containing 'return 0'
pgsql: Ease out of early destructs.
pgsql: Inherited parts get destructed earlier.
pgsql: Verify objects are still live at these points.
Complex _sprintfs in destructed objects fixated.
pgsql: Exceptions in backtrace protection.
pgsql: Catch even more double traps.
pgsql: Attempt to avoid double traps.
pgsql: Reduce system call overhead.
pgsql: Simplify code.
pgsql: Clip _sprintf() in destructed objects.
pgsql: Attempt at preventing exceptions during backtrace display.
pgsql: Avoid recursive errors in case of async destruct.
pgsql: Make CALL return faster.
pgsql: Cater for exotic error case.
pgsql: Use DefaultBackend instead SmallBackend.
pgsql: Explicitly stop the shuffler to avoid fd-leaks.
pgsql: Use set_nodelay(), as documented.
TCP_NODELAY optimisations in pgsql and Shuffler.
pgsql: Shufflerised.
pgsql: Terminate early if the processloop has already folded.
pgsql: The connection cannot be closed at this point, so omit testing for it.
pgsql: Release portals that had background-exceptions during bind.
pgsql: Autoconvert to UTF-8 for types as CITEXT.
pgsql: Only wait for queries that have not closed their portals yet.
pgsql: Do not retry indefinitely.
pgsql: Speed up resync() again (using textonly-queries).
pgsql: Speed up resync().
pgsql: Release a portal only once (destructor becomes a no-op).
pgsql: Avoid a closemux mutex race in parallel queries.
pgsql: Synchronous resync() and fix portalstack for text-multiqueries.
pgsql: Disentangle potentially shared empty arrays.
pgsql: Simplify error handling for users.
Revert "pgsql: Eliminate output_to() usage." Reverted because the new write(Stdio.Buffer) does not work correctly. This reverts commit c3de6fbb7d0fc577e49bfcefbf00d33c0ba875b0.
pgsql: Eliminate output_to() usage.
pgsql: Cast integers to floats, when floats are desired.
pgsql: Avoid output_to() race on large requests.
pgsql: Do not pass along strings with NUL characters in UTF-8.
pgsql: 08P01 is a protocol error that is fatal.
pgsql: Closed portals should shut down the connection.
pgsql: Track back deadlock, explicitly release lock, speeds up code.
pgsql: Eliminate race for db connections still open at program exit.
Merge remote-tracking branch 'origin/master' into new_utf8
Sql: Protect lfuns.
Merge commit '722771973bd' into patches/lyslyskom22891031 * commit '722771973bd': (6177 commits) Verify that callablep responses are aligned with reality. ...
Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap * commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits) Removed the old typechecker. ...
pgsql: Autoterminate dangling database connections at program exit.
Merge remote-tracking branch 'origin/8.1' into gobject-introspection
pgsql: reset_dbsession() drains the pending error messages as well.
pgsql: Release lock on collision with another thread on the same portal.
pgsql: Simplify code; clear stmtifkey always.
pgsql: Improve _sprintf() formatting.
pgsql: Delay started() lock release to prevent early unlock by sendcmd().
pgsql: Make replenishrows() wait until the query has properly started.
pgsql: Fix regression error in adaptive buffer refill. sizeof(Thread.Queue()) is not equal to Thread.Queue()->size(). Fixes the calculation for adaptive buffer refills. Without this fix, it *will* result in hung queries, but only if the number of rows returned exceeds 1024.
pgsql: Missing declaration in debugging mode.
pgsql: Fix unitialised mode regression from last commit.
pgsql: Disentangle concurrent stash flushes explicitly. - Solves the last remaining one-deadlock-per-month problem. - Speeds up the critical path with regard to stash-flushing.
pgsql: Extra diagnostics and release all locks upon async query termination.
pgsql: Add optional communicationslog per filedescriptor for debugging.
pgsql: Guard against async destructs.
pgsql: Avoid lock recursion and a deadlock.
pgsql: Accomodate for sscanf() using range_error(0).
pgsql: Return data even after the local backend has died.
pgsql: Eliminate rare deadlock on heavy interleaved queries tuned.
pgsql: Eliminate rare deadlock on heavy interleaved queries.
pgsql: 8.1-ism corrected.
pgsql: Cater for empty start conditions.
pgsql: Drain portal queue deterministically.
pgsql: affected_rows() now preserves as of yet unfetched rows.
pgsql: Stall fetching rows if they are not being consumed yet.
pgsql: Make affected_rows() and status_command_complete() wait for a meaningful result.
pgsql: Drain portal queue to completion.
pgsql: Report correct affected_rows() for INSERTs.
pgsql: Fix infinite loop in optimisation of native NUMERIC types.
Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63 * commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits) ...
pgsql: Wireformat NUMERIC type fixes and finetuning.
pgsql: Support binary transport of the NUMERIC type.
Merge branch '8.1' into peter/travis
pgsql: Float decimal precision minima from IEE-754 spec.
pgsql: Reduce float decimal precision to the real minimum.
pgsql: Make sure natural float numbers have no .0 attached.
pgsql: Make sure all database errors end up as exceptions.
pgsql: Readding primitive auto-reconnect logic.
Whitespace and doc fixes.
pgsql: Swallow multiple EOF marks in final data rows in fetch_row_array(). Depending on timing when the query finishes, there can be multiple internal EOF rows.
Merge remote-tracking branch 'origin/8.1' into peter/travis
Val.Range: Salvage SQL syntax for use in SQL subsystems.
pgsql: Track move of types from __builtin to Val.
Moved out time-code from __builtin to Val. Reduces start overhead and prevents clobber of System.Time.
pgsql: Need to read signed integers to get correct offsets.
Timestamp/Date: Store internal types relative to epoch instead of 2000.
pgsql: Support binary transfer IEEE float formats.
pgsql: Minor optimisations.
Range: Reuse Math.inf etc; Use NetUtils.
pgsql: Tie the datatypes to __builtin.* to avoid surprises.
pgsql: Make use of the new Date/Time/Inet/Range datatypes to support them in binary transfer.
Sql.Timestamp: Add operators to the SQL types, change encoding for Inet.
pgsql: Make use of native Inet data type.
pgsql: Remove unused local function.
pgsql: Support native typed values for Date, Time, TimeTZ, Timestamp, TimestampTZ and Interval.
pgsql: Migrate user callbacks to the DefaultBackend as soon as it has started.
Crypto.Hash.SCRAM: Moved class. Move Crypto.SCRAM to __builtin.Nettle.Hash()->SCRAM analogous to other similar APIs. Crypto.SCRAM(Crypto.SHA256) is now Crypto.SHA256.SCRAM(). Also updates the testsuite and Sql.pgsql_util accordingly.
pgsql: Prohibit running queries in the local_backend again.
pgsql: Rely on block boundaries to release locks.
pgsql: Missing variable index because we do not inherit.
pgsql: Missing variable.
Sql.sql_result: index variable (un)used consistently in prototype.
Sql.Result: index variable (un)used consistently in prototype.
pgsql: Fix fetch_row_array().
Sql.FutureResult: Add a Concurrent.Promise interface to Sql.Connection.
Sql.Connection: Added missing methods (amongst others: asynchronous callbacks).
pgsql: Do not throw errors inside the callback-backend, they get lost.
Paint over some PikeParser bugs during make doc.
pgsql: Add diagnostics.
pgsql: Create proxy object to avoid circular references.
Crypto.SCRAM: New module.
pgsql: Simplify and bolster the code by using Thread.ResourceCount.
pgsql: Make SSL fix 8.0 compatible.
pgsql: Remove leftover diagnostics.
pgsql: Fix SSL method in combination with Stdio.Buffer.
pgsql: Eliminate connectfail() backreferences.
pgsql: Update documentation.
pgsql: Update docs.
pgsql: Rip out fundamentally flawed reconnect logic, make failures consistent.
pgsql: Suppress errors in destructed objects(2).
pgsql: Use Crypto.SCRAM.
pgsql: Make salted-password-cache threadsafe.
pgsql: Postgresql 10 scram-SHA256 authentication support.
Revert "pgsql: Signal EOF first, to avoid deadlock on object destruction." This reverts commit f342376c815d0f060e69fb3aba761e817c9583a1. The race has instead been fixed correctly by: pgsql: Cater for race during asynchronous destruction of bufcon.
pgsql: Cater for race during asynchronous destruction of bufcon.
pgsql: Signal EOF first, to avoid deadlock on object destruction.
Change destroy() to _destruct().
Merge branch 'grubba/rename_lfun_destroy' into 8.1 * grubba/rename_lfun_destroy: Modules: Fixed logts of warnings. Testsuite: Updated for LFUN::_destruct(). Compiler: Don't complain about LFUN::destroy() in compat mode. Fix multiple warnings. Runtime: LFUN::destroy() has been renamed to _destruct(). Compiler: Rename LFUN::destroy() to LFUN::_destruct().
Modules: Fixed logts of warnings. More fall out from the LFUN::destroy ==> LFUN::_destruct rename.
pgsql: Suppress 'File not open' output on stderr for query_fd().
pgsql: Document implementation decision.
pgsql: Support multiset binary literals and avoid copying Stdio.Buffer() bindings.
pgsql: Recognise all generic BEGIN/START commands.
pgsql: Support spurious syncs in a stashed queue.
pgsql: Stashflushmode is now managed consistently.
pgsql: Suppress errors if the server gets lost.
pgsql: Improve debugging log.
pgsql: Omit qportals on CancelRequest connections, eliminates interference.
pgsql: Accellerate BEGIN/COMMIT statements: forgot 3rd parameter to enable it.
pgsql: Disentangle portal-sync race for concurrent db-errors.
pgsql: Trim in-flight portal stack aware of transactions in progress.
pgsql: Cater for an unopened portal in case of a parsing error.
pgsql: Break up query to allow more parallelism.
pgsql: Move sync point before parsing, to avoid race.
pgsql: Add instrumentation to aid in diagnosing raceconditions.
pgsql: Increase parallelism, inhibits rare deadlocks.
pgsql: Make _sync wait for executions instead of just parsing.
Sql.pgsql: Update to new Sql API. Inherit __builtin.Sql.Connection and __builtin.Sql.Result as appropriate.
pgsql: Reconnect logic was broken, works reliably now.
pgsql: Small cosmetic change.
Dynamic dot warning fixes.
pgsql: Guard against asynchronous destructs.
pgsql: Drop callbacks for real, code got lost between commit juggling.
pgsql: Cater for callbacks waiting for mutex while being destructed.
pgsql: Eliminate hanging selects.
pgsql: Drop callbacks on destruct of conxion, force short close.
pgsql: Fix portal-race for multiple queries in flight on a single descriptor.
pgsql: Drop termination lock even on exceptions. Prevent cancelquery() from starting the statemachine. This was responsible for the majority of the exceptions.
pgsql: Guard local backend against exceptions. When pgsql objects where destructed forcibly, the pgsql-local backend sometimes died due to attempted accesses in destructed objects.
pgsql: Ensure queries have been fully started before closing the fd.
pgsql: Move real close into the destructor. Also destruct the conxion object directly, to make sure that the filedescriptors actually get closed.
pgsql: Sharpen and weed termination mutexes.
pgsql: Delay close always to avoid thread races in destructed objects.
pgsql: Sync destruction of objects with natural thread termination.
pgsql: Expedite filedescriptor close when leaving scope.
pgsql: Protect against execution in destructed objects.
pgsql: Improve error messages.
pgsql: Terminate threads when connections are idle.
pgsql: Tear down result objects if the connection breaks.
pgsql: Clear all callbacks on destruct.
Removed _sprintf parameters where they are not used.
strerror() cosmetic fix.
pgsql: Avoid race during failed connects.
Cosmetic update of strerror use.
pgsql: Drop unnamedstatementkey even if destroyed randomly.
pgsql: Explicitly dislodge read mutex upon fd close.
Less zero_type.
Less crazy coding style.
sslfile -> File and sslport -> port
Fixed sslfile create call.
SSL.sslfile: Changed client/server selection API. Client and server operation is now selected by calling either connect() (client-side) or accept() (server-side) after creating the SSL.sslfile object. Blocking handshaking mode is selected by calling set_blocking() before either of the above.
Renamed SSL.context to SSL.Context.
Don't use the DEBUG symbol in pike modules.
pgsql: Use close callback to reliably react to remote closes.
pgsql: Improve backtraces in debugging mode.
pgsql: Timeout queries only when needed.
pgsql: FETCH is eligible for parallelisation too.
pgsql: Make better use of the Stdio.Buffer add/add_ints API.
pgsql: Case insensitive regexps, but more readable.
pgsql: Simplify regexps, add docs.
pgsql: Make SET synchronous to avoid surprises with subsequent queries.
pgsql: Using howmuch with a sizeof compare of the Buffer does not work. howmuch is the amount we need extra. It does not relate to the amount already in the Buffer. To prevent a race/deadlock we need extra signaling.
pgsql: Cannot use add_hint() here, the types have already been set in stone.
pgsql: Check for the desired buffer size before returning.
pgsql: Avoid race during buffer fill/read.
pgsql: Preserve type information if PG_DEBUG is defined.
pgsql: Slight speedup in column processing.
pgsql: Docs tuned.
pgsql: /*semi*/final for efficiency.
Workaround c?-> bug.
pgsql: Off-by-one error.
pgsql: Rebalance threads, cut away some fat and unnecessary mutexes. The benchmark performance is now within spitting distance of the old pgsql driver for the unbatched single queries. For large batches (>20), the new driver beats everyone pants down. For single batches (==1), the new driver is about 2% slower than the old 7.8 version.
pgsql: Coalesce packets to reduce overhead.
pgsql: Only assign _portalname once, small regressionfix.
pgsql: Pull two Stdio.Buffers apart.
pgsql: Be less destructive, signal then clear instead.
pgsql: Move direct multiset to a permanent pmod.
pgsql: Recouple mutexes for optimum performance.
pgsql: Remove cruft and decouple one shortmux.
pgsql: Merge shortlived mutexes to improve cache-locality.
pgsql: Improve debugging output.
pgsql: Eliminate parsing race for very fast servers.
pgsql: Discard data on portals that have already been closed.
pgsql: Show filedescriptor in %O.
pgsql: Do not bother to close unnamed statements.
pgsql: Move method closer to the data.
pgsql: Cleanup & ensure gotdatarowdesc runs at most once per query.
pgsql: Destroy condition instead of the mutex for stability.
pgsql: Eliminate prepbuffer race (signal before wait and duplicate entries).
pgsql: Eliminate race while flushing output buffer.
Internal types only: enum -> macros.
pgsql: Properly terminate the connection if the database does not exist.
pgsql: Cosmetics.
pgsql: Release all locks early upon error.
pgsql: Connects failing due to insufficient resources handled more gracefully.
pgsql: Improve backtrace clarity of PGassist.
pgsql: Delay accepting a commit until all portals have completed.
pgsql: Close race between a parse in progress and a Sync.
pgsql: Improve debugging output and release all locks upon error.
protected -> private where it makes sense.
Add documentation about the custom backend.
pgsql: Reduce the number of dynamically created threads. This patch pushes most of the dynamically created threads into the running local_backend. It specifically does not push the gotdatarowdesc one to avoid deadlocks.
pgsql: Run callbacks in a separate thread to keep session afloat.
Doc fixes.
pgsql: #require Thread.Thread.
Stricter types.
pgsql: Support Val.null.
pgsql: Support PostgreSQL 9.4 authentication quirks.
pgsql: Fixed reconnect behaviour, fixed textqueries, eliminated one race. All issues eliminated. I will run it in production servers as of now.
Sql.pgsql: New and improved full threaded version. Lower latencies, increased parallelism, theoretical elimination of all race conditions, simplified code, uses Stdio.Buffer, no C-helper anymore, less filling. As a new feature, introduces: send_row(), fetch_row_array() for increased efficiency, set_result_callback() and set_result_array_callback() for event driven database queries.
pgsql: finetuning, cleanup, improved error response behaviour.
pgsql: Further finetuning, fix normal query() race condition, thread safe. Make the result object threadsafe (e.g. calling fetch_fields() and fetch_row() simultaneously from multiple threads on the same result object is supported).
Merge branch '7.9' into gobject-introspection
Merge remote branch 'origin/7.9' into rblock_alloc Conflicts: src/post_modules/CritBit/floattree.cmod src/post_modules/CritBit/inttree.cmod src/post_modules/CritBit/stringtree.cmod
pgsql: Tune reconnect logic, fixes a few problems. Reapply all supplied runtime parameters afer a reconnect. This does not work for search_path (yet) because of an omission in PostgreSQL.
pgsql: Fix reconnect option; more efficient decoding of selectresult; support text connection mode in queries Text mode connection support is possible through a connection option and/or through a query option. Turning this on will allow multiple statements per query, but will also force communication to and from the database for a query to be converted to text. For some queries, this is more efficient than the binary method.
Support calling num_rows() before the results are known. Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.20
Improve error diagnostics with regard to parameter binding. Rev: lib/modules/Sql.pmod/pgsql.pike:1.67 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.19
Fix formatting and whitespace. Rev: lib/modules/Sql.pmod/pgsql.h:1.5 Rev: lib/modules/Sql.pmod/pgsql.pike:1.62 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.18 Rev: src/modules/_PGsql/PGsql.cmod:1.34
Clean up and fix UTF8/Unicode/wide string support for pgsql. Rev: lib/modules/Sql.pmod/pgsql.pike:1.60 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.17 Rev: src/modules/_PGsql/PGsql.cmod:1.33
Additional doc tuning. Rev: lib/modules/Sql.pmod/pgsql.pike:1.57 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.16
Various documentation fixes. Rev: lib/modules/Parser.pmod/Tabular.pike:1.5 Rev: lib/modules/Sql.pmod/pgsql.pike:1.56 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.15 Rev: src/modules/Msql/msqlmod.c:1.31 Rev: src/modules/Postgres/pgresult.c:1.40 Rev: src/modules/Postgres/postgres.c:1.65
Use String.Buffer in pgsql. Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.14
pgsql: Improve robustness in case of dangling transactions. Rev: lib/modules/Sql.pmod/pgsql.pike:1.52 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.13
Fixed Autodoc mk II markup. Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.12
Documentation fixes for pgsql. Rev: lib/modules/Sql.pmod/pgsql.pike:1.47 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.11 Rev: lib/modules/Sql.pmod/pgsqls.pike:1.7
pgsql: Initialise datarowsdesc in case an error occurs early on. Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.10
pgsql: Tuned and fixed bulkdata COPY load and dump commands. Rev: lib/modules/Sql.pmod/pgsql.pike:1.40 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.9
pgsql: Repair big_query() to return all results as strings. Use big_typed_query() to return native Pike types. Rev: CHANGES:1.130 Rev: lib/modules/Sql.pmod/pgsql.pike:1.34 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.8 Rev: lib/modules/Sql.pmod/postgres.pike:1.38 Rev: src/modules/_PGsql/PGsql.cmod:1.27
pgsql close memory leak Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.7 Rev: src/modules/_PGsql/PGsql.cmod:1.20
pgsql provide statistics and tune SQL-compilationcache Rev: CHANGES:1.124 Rev: lib/modules/Sql.pmod/pgsql.h:1.2 Rev: lib/modules/Sql.pmod/pgsql.pike:1.23 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.6 Rev: src/modules/_PGsql/PGsql.cmod:1.19
PGsql Use TCP_NODELAY to squeeze out the last ounce of performance Rev: lib/modules/Sql.pmod/pgsql.pike:1.19 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.5 Rev: src/modules/_PGsql/PGsql.cmod:1.17 Rev: src/modules/_PGsql/configure.in:1.7
pgsql tuned for small queries with fetchlimit=0 Rev: lib/modules/Sql.pmod/pgsql.pike:1.18 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.4
pgsql cleaned up _sprintf verbosity, amended CHANGES, use String.secure Rev: CHANGES:1.123 Rev: lib/modules/Sql.pmod/pgsql.pike:1.16 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.3 Rev: lib/modules/Sql.pmod/pgsqls.pike:1.4
PGsql superfluous diagnostics be gone Rev: lib/modules/Sql.pmod/pgsql.pike:1.15 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.2
PGsql got rid of those pesky circular references Rev: lib/modules/Sql.pmod/pgsql.h:1.1 Rev: lib/modules/Sql.pmod/pgsql.pike:1.14 Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.1 Rev: src/modules/_PGsql/PGsql.cmod:1.14