• last updated 58 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
improve spelling

  1. … 14 more files in changeset.
Fix typos

  1. … 14 more files in changeset.
Portrait management reform and correction

Moved logics to create a portrait in a proc in order to reuse it in other places

such as picture retrieval services (e.g. Bach picture retrieval at WU). Turns out

we were not doing our homeworks here: when the portrait is created into CR, a

cr_child_rel is created. When the portrait was erased though, this was not cleaned

up propely, leaving dangling acs_objects with no reference in cr_child_rels table.

On busy sites, this can grow in the ten thousands order of magnitude. Changes include

also fix for this behavior and tuples cleanup.

  1. … 16 more files in changeset.
Fix typo in variable name "new_nls_language" (must be "new__nls_language")

  1. … 2 more files in changeset.
Fix typo in variable name "new_nls_language" (must be "new__nls_language")

  1. … 2 more files in changeset.
merged changes from the oacs-5-9 branch and resolved conflicts

  1. … 7834 more files in changeset.
Fix spelling errors

  1. … 49 more files in changeset.
Performance improvement in content_item__get_path stored procedure (thanks to Thomas Renner)

  1. … 2 more files in changeset.
Reduced generation of dead tuples in postgres.

Background: In the old version, the fields latest and live

revisions were updated always via two separate dmlDML statements.

Every update causes in PostgreSQL (tested to pg 9.6) one more dead

tuple, such that on busy systems, we see 30k + dead tuples per

hour. These dead tuples in turn cause more auto vacuum operations

and can lead to abandoned query plans.

This change can reduce the number of dead tuples on cr_items into

half, by allowing both fields to be set in one operation (namely

content_item__set_live_revision). This function has an optional 4th

argument that can cause this optimization. For legacy applications,

nothing changes.

Btw: since all commonly used applications use the live revision, the

fallback of the latest_revision is unused. One can consider to

remove the cr_revision_latest_tr, at least on on certain

installations.

bump revision to 5.1.9d23

  1. … 3 more files in changeset.
- Change text enumeration field "storage_type" in cr_items to native

SQL enumeration type

- bump version number to 5.9.1d15

  1. … 3 more files in changeset.
Content-Repository Reform: reduce dependency on cr_child_rels and make

creation of cr_child_rels entries optional. Most applications do not

need cr_child_rels, these take substantial space and slow down

operations. The change is fully backward compatible, since per

default cr_child_rels are still created. First tests show an

improvement for the creation of cr_items by 17% and for deletion by

28% (when parent item is a plain cr_item, as it is e.g. the case in

xwowiki). Same change made as well for Oracle.

- affected functions (here with pg-names)

* procedure content_item__new/21 (version for text or file entries) has new optional boolean parameter: with_child_rels

* procedure content_item__new/17 (version for blob entries) has new optional boolean parameter: with_child_rels

- remove/reduce dependency on cr_child_rels (if no rel-tag is used, the chile-information is obtained from cr_items)

* content_item__is_publishable/1

* content_item__is_valid_child/3

* content_item__is_valid_child/2

- reduce number of functions by using defaults

* content_item__copy/5

* content_item__get_title/2

* content_item__move/3

  1. … 4 more files in changeset.
Content-Repository Reform: reduce dependency on cr_child_rels and simplify content_item__del() via cascading delete operations

- remove manual deletion operations from content_item__del() via

* delete cr_child_rels via "ON DELETE CASCADE" on parent_id and child_id

* delete cr_item_rels via "ON DELETE CASCADE" on item_id

* delete acs_object_context_index entries via "ON DELETE CASCADE" on ancestor_id and object_id

* delete acs_objects entries via "ON DELETE CASCADE" on context_id

- remove manual deletion operations for symlinks amd journal entries,

since db constrains handle the deletion already

- use cr_items.parent_id instead of cr_child_rels to determine direct children

of items

- remove deletion trigger for content search content_search__dtrg

since "ON DELETE CASCADE" removes entries already

  1. … 3 more files in changeset.
Content-Repository Reform : Reduction of number of functions in

the content repository for PostgreSQL by using using argument defaults

(while providing compatibility for clients using old versions):

- reduced number of versions of content_item__new from 12 (!) to 6 by using defaults

- commented differences

- commented arguments of plpgsql functions with long argument lists

- reduced code duplication by basing one version of content_item__new/17 directly on /20

- marking on version of content_item__new/17 and content_item__new/6 as deprecated

- reduced number of versions of content_revision__new from 7 to 4 by using defaults

- commented differences

- marking on version of content_revision__new/7 as deprecated

- let automatically generated functions call directly content_revision__new/13

- remove space from automatically generated functions

- updated automatically generated functions for all types of the content repository

- reduced number of versions of image__new from 4 to 2by using defaults

- reduced number of versions of image__new_revision from 2 to 1 by using defaults

  1. … 7 more files in changeset.
- Add argument to content_item__set_live_revision (and oracle's counterpart)

to honor optionally provided "publish_date". The old behavior used hard-coded

the current time. The function is fully backward compatible, when no

publish_date is provided, the current time is used for the publish_date.

- changes for PostgreSQL and Oracle.

  1. … 4 more files in changeset.
- white-space changes

- remove redundant function_args definitions

Scalability reform part 3 (content-repository):

- content_revision__del:

* Removed manual nulling of live_revision and latest_revision

by using appropriate ond delete actions on foreign keys

* Removed manual deletion of old_revision and new_revision in

cr_item_publish_audit by using "on delete cascade"

- content_item__del:

* Removed manual deletion of item_id in cr_item_publish_audit

by using "on delete cascade"

* Removed manual deletion of item_id in cr_release_periods

by using "on delete cascade"

* Removed manual deletion of item_id in cr_item_template_map

by using "on delete cascade"

* Removed manual deletion of item_id in cr_item_keyword_map

by using "on delete cascade"

* Removed manual deletion of direct permissions (was already

cascading)

- Added missing index for child_id to cr_child_rels.

This index was in the create scripts (with a non-conformant name),

but not in the upgrade scripts

- bump version number of acs-content-repository to 5.9.0d3

  1. … 4 more files in changeset.
Merging back to HEAD branch oacs-5-8 (using tag vg-merge-oacs-5-8-from-20141027).

  1. … 2547 more files in changeset.
cleanup in cr::keyword::* namespace

one cannot advocate to create a keyword with

content::keyword::item_assign and query it with

cr::keyword::item_get_assigned)

- marked the following function as deprecaed

* cr::keyword::get_children

* cr::keyword::get_keyword_id

* cr::keyword::get_options_flat

* cr::keyword::item_get_assigned

* cr::keyword::item_unassign

* cr::keyword::item_unassign_children

- added new functions:

* content::keyword::get_children

* content::keyword::get_keyword_id

* content::keyword::get_options_flat

* content::keyword::item_get_assigned

* content::keyword::item_unassign_children

- updated regression test

  1. … 3 more files in changeset.
- remove commented code

Bring PostgreSQL functions closer to the current level of PL/pgSQL:

- upgrade PL/pgSQL functions to the $$ notation (recommended since pg8.0, jan 2005).

- get rid of backslash usages in function definitions

- drop aliases in favor of named function arguments (recommended since pg8.0)

- fix wrong function_args, add missing function_args, align default semantics

with the defaults in pg (providing "null" as default means the argument is

optional).

- change return types of triggers from "opaque" to "trigger" (recommended since pg8.0)

- unify names of triggers *_tr

- removed some version dependencies of pg 7.2 and 7.3

  1. … 54 more files in changeset.
Removed stupid NOTICEs to the log file when deleting stuff. Slows large

deletes down a LOT and fills log file with GARBAGE.

add update script

  1. … 1 more file in changeset.
Get rid of the postgres warning "adding missing FROM-clause entry " on sequences

Make "db_nextval acs_object_id_seq" more than twice as fast (from 948 microseconds to 378 microseconds)

  1. … 9 more files in changeset.
Merged acs-core oacs-5-2 (currently 5.2.3) -> HEAD.

TODO:

1. Bump acs-core package version numbers to 5.3.0d1

2. Would be nice to do a test install, wouldn't it?

  1. … 721 more files in changeset.
Remove code that guesses package_id based on parent_id. In almost all cases

this will return null anyway.

  1. … 2 more files in changeset.
Changes to make the root of parentless items = -4 (security context root) instead of 0 (unregistered visitor)

Sites upgradeed from 4.6-4.6.1 have been operating with -4 as the parent_id for years (for example openacs.org) while new installs had

parent_id = 0. This caused problems with the new package_id code that calls content_item__get_root_folder which was assuming the root =

0. It looks like the new install code did not accomodate parent_id=-4 and that is now fixed.

Needs testing on Oracle.

  1. … 7 more files in changeset.
Don't try to get the package id of folder_id 0 (which isn't a folder anyway!)

  1. … 2 more files in changeset.
Fixed move function

bugfix: moving content item

  1. … 2 more files in changeset.