Alan Burlison wrote:
Rick Hillegas wrote:
Do you really need a 4KB key? That seems like a very big key. Is
there some reduction, summary, or checksum of the text which might
serve as a more compact key?
The key is in fact a SSH key, and we want to prevent duplicates. We
could generate a checksum I suppose, although that would need doing
externally to Derby.
Hi Alan,
Thanks for the explanation. I see that uniqueness is an issue for you.
If you could tolerate the slight chance of false duplicates, you might
want to experiment with generated columns now. I think that there is
enough functionality checked into the development trunk that you could
kick the tires. Something like the following might work for you:
create function md5( rawValue varchar( 32672 ) )
returns varchar( 32 )
language java
deterministic
parameter style java
no sql
external name 'ChecksumCalculator.md5';
create table t( rawValue varchar( 32672 ), checksum varchar( 32 )
generated always as( md5( rawValue ) ) );
create index checksumIdx on t( checksum );
If this seems appealing, let us know how this works for you.
Thanks,
-Rick