Satheesh Bandaram (JIRA) wrote:
[ http://issues.apache.org/jira/browse/DERBY-337?page=comments#action_12313102 ]
Satheesh Bandaram commented on DERBY-337:
-----------------------------------------
Submitted this patch. I do see you have changed RoutineAliasInfo,
a serialized java object that is saved in the disk. Please run some
soft upgrade tests, to make sure procedures/functions created in
10.0 are still usable in 10.1 in soft upgrade.
Oh, good point. This never even occurred to me.
I think new fields and new methods you have added for
RoutineAliasInfo may still make it compatible with 10.0 versions,
but we definitely need to check.
I ran a simple check and it LOOKS like things are okay. But that said, I ran
the "serialver" executable to check the serialVersionUID of the class, and it
has indeed changed with my patch--so I'm not sure this is a safe change.
I then went back to my patch and I declared the new field as "transient"; after
doing that, "serialver" returned the same long int for the RoutineAliasInfo
before and after my change. SO, I can either:
1) create another, 1-line patch that declares the new field as transient, OR
2) get rid of the new field altogether and just use "returnType == null" checks
to accomplish the same thing. That was how I originally wrote the patch, but
then I thought it'd be "better" to introduce this new field because it seems
clearer to read:
if (aliasType == AliasInfo.ALIAS_TYPE_PROCEDURE_AS_CHAR) ...
than
if (returnType == null) ...
But I've added comments to the IF, so I guess either is probably okay...
Any preference?
Thanks for the review,
Army