• last updated 19 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Include the supplied text_id among the fields we should replace

Support the extraPlugins attribute the same as the CKEditor4 richtext formfield, as some places in xowiki assume it

provide value attribute

Reintroduce cast to integer using a portable idiom

Prefer cached API

improve input validation

added validator for zip files

Fixes for Oracle 19c: more fixes of handling of Boolean values

Significant improvements on the proctoring display UI to help the review process of proctored artifacts:

- user can flag artifacts as OK or to be reviewed

- user can add and delete comments on the single artifacts

- user can filter artifacts by "verified/not verified" "flagged/not flagged" and "all". A counter is displayed showing how many over the total number are being displayed

- interface will update as before when new pictures come in from an ongoing exam

- interface has been designed "mobile first" and with minimal, mostly graphical dependencies, to Bootstrap

file review.tcl was initially added on branch oacs-5-10.

Fixes for Oracle 19c: fix data types and interval calculation

Don't use expressions for the default value, apparently a nono in Oracle

See e.g. https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj30540.html#rrefsqlj30540__sqlj64478

reduce dependency on adp-level during rendering but get the information directly from the containing objects

Fixes for Oracle 19c: added missing Oracle support

    • -19
    • +72
    /openacs-4/packages/xowiki/tcl/xowiki-procs.tcl
Fixes for Oracle 19c: consistenly rely on uppercasing of the schema names in the called functions

Fixes for Oracle 19c: uppercase consistently in schema queries

All names in the schema data model are in Oracle in uppercase.

Fixes for Oracle 19c: fixed more cases with Problems with Boolean data types

This fixes e.g. the following problem

[16/Feb/2022:20:55:19][3908.7fa5364fa700][-conn:oacs-5-10-0:default:1:9-] Error: SQL(): nsoracle.c:863:OracleExecPLSQLBind: error in `OCIStmtExecute ()': ORA-06550: line 1, column 13:

: PLS-00382: expression is of wrong type

: ORA-06550: line 1, column 7:

: PL/SQL: Statement ignored

:

: SQL: BEGIN :1 := util.foreign_key_exists(table_name => :table_name,column => :column,reftable => :reftable,refcolumn => :refcolumn); END;

[16/Feb/2022:20:55:19][3908.7fa5364fa700][-conn:oacs-5-10-0:default:1:9-] Notice: ### db_with_handle returned error <nsoracle.c:863:OracleExecPLSQLBind: error in `OCIStmtExecute ()': ORA-06550: line 1, column 13:

: PLS-00382: expression is of wrong type

: ORA-06550: line 1, column 7:

: PL/SQL: Statement ignored

:

Fixes for Oracle 19c: output potential errors after command

Fixes for Oracle 19c:

- added special rules for DML differences in Oracle ("MODIFY" option in ALTER TABLE)

- fixed call of ns_pg_bind in Oracle applications

- fixed call of an SQL function returning a table

Fixes for Oracle 19c:

- types defined inside an package cannot be used from the outside;

so utility function get_primary_keys() was not usable

- fix various problems with boolean values

Two sample errors raised before the fix:

[16/Feb/2022:16:12:52][20833.7fa027de8940][-main:oacs-5-10-0-] Error: SQL(): nsoracle.c:863:OracleExecPLSQLBind: error in `OCIStmtExecute ()': ORA-06550: line 1, column 13:

: PLS-00382: expression is of wrong type

: ORA-06550: line 1, column 7:

: PL/SQL: Statement ignored

:

: SQL: BEGIN :1 := util.table_column_exists(t_name => :t_name,c_name => :c_name); END;

16/Feb/2022:18:16:39][27419.7fb7a518a940][-main:oacs-5-10-0-] Error: SQL(): nsoracle.c:863:OracleExecPLSQLBind: error in `OCIStmtExecute ()': ORA-06550: line 1, column 13:

: PLS-00382: expression is of wrong type

: ORA-06550: line 1, column 7:

: PL/SQL: Statement ignored

:

: SQL: BEGIN :1 := util.get_primary_keys(table_name => :table_name); END;

[16/Feb/2022:18:16:39][27419.7fb7a518a940][-main:oacs-5-10-0-] Notice: ### db_with_handle returned error <nsoracle.c:863:OracleExecPLSQLBind: error in 'OCIStmtExecute ()': ORA-06550: line 1, column 13:

: PLS-00382: expression is of wrong type

: ORA-06550: line 1, column 7:

: PL/SQL: Statement ignored

:

: SQL: BEGIN :1 := util.get_primary_keys(table_name => :table_name); END;> for statement

: #:log "sql=BEGIN :1 := util.get_primary_keys($sql_args); END;, sql_command=ns_ora exec_plsql_bind $db $sql 1 """

: return [ ns_ora exec_plsql_bind $db $sql 1 "" ]

:

Fixes for Oracle 19c: fix syntax and handling of boolean values

This change fixes the following problems:

Errors for PACKAGE ACS_EVENT:

LINE/COL ERROR

-------- -----------------------------------------------------------------

3/5 PL/SQL: Declaration ignored

43/39 PLS-00302: component 'LOCATIONREDIRECT_TO_REL_LINK_P' must be

declared

Warning: Package Body created with compilation errors.

Errors for PACKAGE BODY ACS_EVENT:

LINE/COL ERROR

-------- -----------------------------------------------------------------

19/2 PLS-00103: Encountered the symbol "RELATED_LINK_URL" when

expecting one of the following:

) , * & = - + < / > at in is mod remainder not rem

<an exponent (**)> <> or != or ~= >= <= <> and or like like2

like4 likec between || multiset member submultiset

The symbol "," was substituted for "RELATED_LINK_URL" to

continue.

296/29 PLS-00103: Encountered the symbol "(" when expecting one of the

following:

mod <an identifier> <a double-quoted delimited-identifier>

LINE/COL ERROR

-------- -----------------------------------------------------------------

<a bind variable> continue current sql execute forall merge

pipe purge json_exists json_value json_query json_object

json_array

Fixes for Oracle 19c: make query portable to Oracle by replacing USING by explicit ON joins

This fixed the following problem, where the problem is not easy to spot on first sight:

[16/Feb/2022:13:26:09][12845.7efd2d3e1700][-sched:0:41:22-] Error: nsoracle.c:1367:OracleSelect: error in `OCIStmtExecute ()': ORA-00904: "NOTIFICATION_REQUESTS"."USER_ID": invalid identifier

: SQL:

: select notification_id,

: notif_subject,

: notif_text,

: notif_html,

: file_ids,

: user_id,

: request_id,

: type_id,

: delivery_method_id,

: response_id,

: notif_date,

: notif_user,

: acs_permission.permission_p(notification_requests.object_id, !>>>!notification_requests.user_id, 'read') as still_valid_p

: from notifications inner join notification_requests using (type_id, object_id)

: inner join acs_objects on (notification_requests.request_id = acs_objects.object_id)

: left outer join notification_user_map using (notification_id, user_id)

: where sent_date is null

: and creation_date <= notif_date

: and (notif_date is null or notif_date < current_timestamp)

: and interval_id = :interval_id

Fixes for Oracle 19c: fix broken variable references (introduced in oacs-5-9)

Fixes for Oracle 19c: added missing SQL package declaration

Fixes for Oracle 19c: (temporary?) fix for message catalogs

This change fixes the problem that after a fresh installation, all (!)

messages keys are empty. I am not sure what the source of the problem

is, why this has supposedly worked some years before, and whether

there are undesired side-effects of this change. Without this change,

the openacs installation leads to fully broken state.

Fixes for Oracle 19c: replaced "limit" by the portable idiom "fetch ... rows only"

This fixes the following bug in Oracle installations:

: SQL:

: select aml_email_id from acs_mail_lite_from_external

: where processed_p <>'1'

: and release_p <>'1'

: order by priority

: !>>>!limit :email_max_ct

: nsoracle.c:1367:OracleSelect: error in `OCIStmtExecute ()': ORA-00933: SQL command not properly ended

Fixes for Oracle 19c: quick port of missing tables in acs-mail-lite from PostgreSQL

This is q quick port of the table available from PostgreSQL, which

assures that a new instance of OpenACS on Oracle can run without

spitting out frequent error messages. In essence, the sequence

handling was adjusted, and datatype "text" was replaced by

"varchar(4000)" and in one case by "clob". Probably, some of the

lengths and the update operations have to be adjusted.

Fixes for Oracle 19c: boolean types in query

This fixes the following bug for Oracle:

[13/Feb/2022:17:53:36][8701.7f9f62f0b700][-conn:oacs-5-10-0:default:0:0-] Error: nsoracle.c:1367:OracleSelect: error in `OCIStmtExecute ()': ORA-00920: invalid relational operator

:

: SQL:

:

: select p.package_id,

: p.instance_name,

: n.node_id,

: n.name,

: :subsite_url || n.name as url,

: (select count(*)

: from group_approved_member_map m

: where m.rel_type = 'membership_rel'

: and m.group_id = ag.group_id) as num_members,

: (select min(r2.member_state)

: from group_member_map m2,

: membership_rels r2

: where m2.group_id = ag.group_id

: and m2.member_id = :untrusted_user_id

: and r2.rel_id = m2.rel_id) as member_state,

: g.group_id,

: g.join_policy

: from site_nodes n,

: apm_packages p,

: application_groups ag,

: groups g

: where n.parent_id = :subsite_node_id

: and p.package_id = n.object_id

: and p.package_key in ('acs-subsite')

: and ag.package_id = p.package_id

: and g.group_id = ag.group_id

: and (g.join_policy !>>>!!= 'closed' or acs_permission.permission_p(p.package_id, :untrusted_user_id, 'read'))

: order by lower(instance_name)

:

Fixes for Oracle 19c: boolean types in query

This fixes the following bug for Oracle:

': ORA-00920: invalid relational operator

:

: SQL:

: select p.package_id,

: p.instance_name,

: n.node_id,

: n.name

: from site_nodes n,

: apm_packages p,

: apm_package_types t

: where n.parent_id = :subsite_node_id

: and p.package_id = n.object_id

: and t.package_key = p.package_key

: and t.package_type = 'apm_application'

: and acs_permission.permission_p(p.package_id, :user_id, 'read')

: !>>>!order by upper(instance_name)

:

Fixes for Oracle 19c: invalid cast to integer

This fixes the following bug for Oracle:

: invalid positional variable `:', valid values start with 1

: while executing

: "ns_ora 0or1row nsdb0 {

: select acs_permission.permission_p(:object_id, :party_id, :privilege)::integer from dual

: }"