db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mamta A. Satoor (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-737) SYSCS_UTIL.SYSCS_COMPRESS_TABLE should create statistics if they do not exist
Date Thu, 12 Oct 2006 03:13:36 GMT
     [ http://issues.apache.org/jira/browse/DERBY-737?page=all ]

Mamta A. Satoor updated DERBY-737:
----------------------------------

    Attachment: DERBY737_v1_diff_SYSCS_COMPRESS_TABLE.txt
                DERBY737_v1_stat_SYSCS_COMPRESS_TABLE.txt

I would like to submit a patch for this Jira entry. It is attached as DERBY737_v1_diff_SYSCS_COMPRESS_TABLE.txt
The changes have been very localized in AlterTableConstantAction.java!updateIndex() Currently,
this method checks if statistics already exist for an index. If yes, then it sets a flag updateStatistics
to true. Later, the code checks for this flag and drops the existing statistics and creates
new statistics for that index provided the user table at this point is not empty. So, as we
can see, if there is an index with no preexisting statistics, the flag updateStatistics will
be set to false and hence no statistics related code is executed and hence even though the
user table is not empty at the time of compress, no statistics get generated for such an index.

I am proposing to fix the problem by still using the flag to see if an index has pre-existing
statistics. If yes,
then we should drop those statistics. Next, whether the index has pre-existing statistics
or not, go ahead and
create new statistics for the index provided the user table is not currently empty.

I ran the derbyall suite on Windows XP with Sun JDK 1.4 and there were no new failures. In
addition, I have added few tests to lang/compressTable.sql

Can someone please review this patch for me?

> SYSCS_UTIL.SYSCS_COMPRESS_TABLE should create statistics if they do not exist
> -----------------------------------------------------------------------------
>
>                 Key: DERBY-737
>                 URL: http://issues.apache.org/jira/browse/DERBY-737
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.1.3.1, 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.1.2.1, 10.2.1.6, 10.0.2.2
>            Reporter: Kathey Marsden
>            Priority: Minor
>         Attachments: DERBY737_v1_diff_SYSCS_COMPRESS_TABLE.txt, DERBY737_v1_stat_SYSCS_COMPRESS_TABLE.txt
>
>
> There must be an entry in the SYSSTATISTICS table in order for the cardinality statistics
in SYSSTATISTICS to be created with SYSCS_UTIL.SYSCS_COMPRESS_TABLE 
> SYSCS_UTIL.SYSCS_COMPRESS_TABLE  should create statistics if they don't exist.  The only
way to create them if the index was created on an empty table, seems to be to drop and recreate
the index after the table has been loaded.
> The documentation will also need updating if this change is made.
> http://db.apache.org/derby/docs/10.1/tuning/ctunstats57373.html

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message