Forum OpenACS Development: ]po[ on top of OpenACS 5.9.0 - acs_object_types_pkg_name_un


We're working on an OpenACS "]project-open[ "installer", in order to allow you guys to install ]po[ on top of an existing OpenACS installation. I hope that at least some of you will find this useful 😊
So I'm going to post a few issues here on the Dev forum. Here is the first one:

OpenACS 5.9 apparently only allows to create one object type per package:
# \d acs_object_types
"acs_object_types_pkg_name_un" UNIQUE CONSTRAINT, btree (package_name)

I believe this is plain wrong. For example, we'd need to create both im_projects and im_companies as part of the "intranet-core" package. I see no business case to restrict this...

=> Could somebody please confirm that you'll include this in the next version of OpenACS? Otherwise I'd need to change everything here...


Good news.

Concerning "OpenACS 5.9 apparently only allows ...": i am not aware, that anything has changed in this regard in OpenACS 5.9.0. The same is in 5.8.0, 5.6.0, 5.2.0, 4.2.0, ... this was not changed over the last 16 years!

Probably, you are misunderstanding the column "package_name". These are not apm-packages, but Oracle-style packages.

See: select object_type, supertype, package_name from acs_object_types ;


Yeah, 16 years of bullshit! No excuse 😊
Well, yes, I worked around it. Got a first "installation" working, but I'll announce it on a separate thread.


Normally, the attribute object_type in acs_object_types has the same value as the attribute package_name. For the core packages, just the following cases differ.

oacs-5-9-1=# select object_type, supertype, package_name  from acs_object_types where object_type <> package_name;
  object_type  | supertype  |    package_name    
 relationship  | acs_object | acs_rel
 user          | person     | acs_user
 group         | party      | acs_group
It means that the the (Oracle) package "acs_rel" defines the object_type "relationship".

How can this hinder you? Probably, the differences are more or less there for legacy reason. In my opinion, it would be better to define the package names after the type and to drop the attribute package_name. But that could be only done by someone developing in an Oracle installation.

If this hinders you, please tell, what the exact problem is.