• last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
improve listing of properties of NX classes

Test external command dependencies

  1. … 1 more file in changeset.
Undo part of the recent cache-deactivation for attribute definitions

When all calls for "db_attribute_defined" are performed without

caching, this results in a huge amount of additional SQL queries,

since these tests are performed during blueprint definition as well

during every blueprint reload of every db attribute. On a small site

with just 6 connection threads (2 monitor, 2 default, 2 slow), this

results during startup with 969 additional SQL queries, a reload of

xowiki causes an additional 1063 of such queries. When a site defines

much more connection threads ((the LEARN site has e.g. 85 connection

threads defined), these DB attribute testing operations will result in

10K+ of mostly useless SQL queries. As a consequence of this, the

startup of the server will become slower, reloads will become slower

etc., which is bad especially for large sites.

The new implementation seems to fix the original problem case (running

xotcl_core_tutorial_4 multiple times). If there is still a problem

with installing xolp [2] this problem should be analyzed and fixed

probably there. If necessary, a proper bug report would be appreciated

to reduce guessing work.

[1] https://fisheye.openacs.org/changelog/OpenACS/?cs=oacs-5-10%3Aantoniop%3A20230310183055

[2] https://fisheye.openacs.org/changelog/OpenACS/?cs=oacs-5-10%3Aantoniop%3A20230317160241

Use the usual idiom for checking if the connection is active

... why in the first place was this change necessary? Who calls this

in which way this www-*method without a connection?

Don't run the spiel when we are not connected

As it turns out, even caching only by request has consequences e.g. when one installs xolp from scratch

Disabl caching and prepare the statement instead

Improve robustness when a class is created/deleted multiple times (e.g. by repeating xotcl-core.xotcl_core_tutorial_4 automated test)

Factor out Package->process_init_parameter into package-custom-procs

This change makes it easier to provide instance specific customization.

In general, these package-custom-procs could also be kept in other

packages.

  1. … 4 more files in changeset.
Use signed value for form_parameter "__object_name"

Added support for form_parameter specs with value checkers

Added nsf value checker "signed"

This value checker tests, whether the provided value was signed with

::security::parameter::signed. If so, and when it was called with

"signed,convert", it returns the value which was signed.

Bumped version number to 5.10.1d16

  1. … 1 more file in changeset.
improve warning message (for legavy applications)

improve value checking to improve error messages

imporved log message

reduce verbosity

Use an idiom without expr to fill up the multirow after the body execution

Test the behavior when the multirow contains values in the form "\d+\.": this shows a bug caused by the value retrieval going through an expr, which will "normalize" the value to "\d+\.0"

Performance improvements:

- add with_headers flag to ::xo::dc list_of_lists behaving like the db_list_of_lists counterpart

- use ::xo::dc list_of_lists as internal for ::xo::dc foreach and ::xo::dc multirow to reduce the need for ns_sets

Collect all query results before executing the code to avoid the out-of-pools bug

Implement a test making sure ::xo::dc "loop code-executing" api is not subject to the "out of pools" bug

-prepare flag must not be supplied when not available

Fix regression: the reimplementation of ::xo::dc foreach reintroduced the old "out of pools bug"

The fix makes again use of the ns_set api to free the handle before the code is executed

Remove hack and prefer to document limitation in the automated test

Fix typo and include again the hack for strings with colon char in the fallback implementation of ns_pg_prepare

Fixes xotcl-core.test_prepared_statements automated test

improved spelling

use the built-in bindvars parser (when available) for prepared statements

Do not extend the existing multirow, we only enforce that this call will have the same columns

Test that appending to an existing multirow from the db works as expected: when the columns defined via query and extend are the same, this should succeed

Don't collide with multirows created by other tests

Do not enforce that body is a list