Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 72601 invoked from network); 10 Nov 2008 19:12:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Nov 2008 19:12:05 -0000 Received: (qmail 25065 invoked by uid 500); 10 Nov 2008 19:12:12 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 25035 invoked by uid 500); 10 Nov 2008 19:12:12 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 25024 invoked by uid 99); 10 Nov 2008 19:12:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Nov 2008 11:12:12 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Nov 2008 19:11:01 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 8132A234C286 for ; Mon, 10 Nov 2008 11:11:44 -0800 (PST) Message-ID: <1714252260.1226344304527.JavaMail.jira@brutus> Date: Mon, 10 Nov 2008 11:11:44 -0800 (PST) From: "Rick Hillegas (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-481) implement SQL generated columns MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rick Hillegas updated DERBY-481: -------------------------------- Attachment: derby-481-16-aa-dropFunction.diff Attaching derby-481-16-aa-dropFunction.diff. Running tests now. This patch prevents you from dropping a function mentioned in a generation clause, per the spec. The patch builds on the fact that generation clauses are implemented as a kind of default. Defaults, in turn, are a persistent object for which we already have good support in our dependency subsystem. Touches the following files: M java/engine/org/apache/derby/impl/sql/execute/ColumnInfo.java Adds dependency information to this driving data structure. M java/engine/org/apache/derby/impl/sql/execute/CreateTableConstantAction.java M java/engine/org/apache/derby/impl/sql/execute/AlterTableConstantAction.java M java/engine/org/apache/derby/impl/sql/compile/TableElementList.java Adds bind-time logic to fill the ColumnInfo with the dependencies of generated columns. These dependencies were already being identified but the information was being thrown on the floor. M java/engine/org/apache/derby/impl/sql/execute/DDLConstantAction.java M java/engine/org/apache/derby/impl/sql/compile/AlterTableNode.java M java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java Adds execution-time logic to hammer the dependencies into SYS.SYSDEPENDS. The enforcement of the dependencies is handled by existing machinery in the dependency subsystem. M java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsTest.java Adds test cases. > implement SQL generated columns > ------------------------------- > > Key: DERBY-481 > URL: https://issues.apache.org/jira/browse/DERBY-481 > Project: Derby > Issue Type: New Feature > Components: SQL > Affects Versions: 10.0.2.1 > Reporter: Rick Hillegas > Assignee: Rick Hillegas > Attachments: derby-481-00-aa-prototype.diff, derby-481-01-aa-catalog.diff, derby-481-02-aa-utilities.diff, derby-481-03-aa-grammar.diff, derby-481-04-aa-insert.diff, derby-481-05-aa-update.diff, derby-481-06-aa-genreferences.diff, derby-481-07-aa-noSQLinRoutines.diff, derby-481-07-ab-noSQLinRoutines.diff, derby-481-08-aa-castToDeclaredType.diff, derby-481-09-aa-dummyDefaults.diff, derby-481-10-aa-foreignKeyActions.diff, derby-481-11-aa-notNull.diff, derby-481-12-aa-padding.diff, derby-481-13-aa-alterDatatype.diff, derby-481-14-ab-dropColumn.diff, derby-481-15-aa-renameAndAddDefault.diff, derby-481-16-aa-dropFunction.diff, GeneratedColumns.html > > > Satheesh has pointed out that generated columns, a SQL 2003 feature, would satisfy the performance requirements of Expression Indexes (bug 455). Generated columns may not be as elegant as Expression Indexes, but they are easier to implement. We would allow the following new kind of column definition in CREATE TABLE and ALTER TABLE statements: > columnName GENERATED ALWAYS AS ( expression ) > If expression were an indexableExpression (as defined in bug 455), then we could create indexes on it. There is no work for the optimizer to do here. The Language merely has to compute the generated column at INSERT/UPDATE time. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.