[EMAIL PROTECTED] schrieb:

Peter Nabbefeld <[EMAIL PROTECTED]> writes:
[snip]

Just some thoughts (without knowing the source):
- Table creation isn't affected by the issue, while trigger creation
is, so both seem to get the oid from different algorithms.
- I guess, that the original implementation used the oid from the
default schema, while it has been changed later to be stored into and
used from the system tables.
- Thus, it would probably help to (1) add a method like "getOID()" to
the "UserObject" (don't know the class name used in derby, but there
should be an object representing the user); (2) use this method
instead of a direct access to schema or system tables.


Well, actually Derby has something called
LanguageConnectionContext. This class has a getDefaultSchema() method
that returns a SchemaDescriptor. A SchemaDescriptor has getUUid()
method that is an accessor for its oid attribute.

I THINK that when creating a trigger, the code needs a "compile schema" and it
assumes that it is safe to use the default schema, which it isn't in
this case.

So I guess you could attack this problem in (at least) two ways: 1) Make the trigger code use a schema that is known to be ok
2) Ensure that the default schema always is valid.


Just a guess, just because it seems to already take some time to fix
the bug. From my point of view, it should be easy for a derby
developer to fix this (but probably that is the cause for it to still
exist ;-) ).


Well, I will update DERBY-85 with the info that I have.
Perhaps the Derby experts have some ideas about this :)


That will at least be a first step - hopefully not the last - to fix a half-year-old bug ;-)

Regards

Peter

Reply via email to