Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 39032 invoked from network); 13 Nov 2008 01:00:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Nov 2008 01:00:05 -0000 Received: (qmail 11040 invoked by uid 500); 13 Nov 2008 01:00:12 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 11020 invoked by uid 500); 13 Nov 2008 01:00: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 11009 invoked by uid 99); 13 Nov 2008 01:00:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Nov 2008 17:00: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; Thu, 13 Nov 2008 00:59:00 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 5A8A6234C283 for ; Wed, 12 Nov 2008 16:59:44 -0800 (PST) Message-ID: <616025925.1226537984369.JavaMail.jira@brutus> Date: Wed, 12 Nov 2008 16:59:44 -0800 (PST) From: "Dag H. Wanvik (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (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:comment-tabpanel&focusedCommentId=12647146#action_12647146 ] Dag H. Wanvik commented on DERBY-481: ------------------------------------- Is this the right behavior? It seems a bit non-intuitive to require the result set inserted to have two columns when only one is used anyway... ij> create table a(i int, j int generated always as (-i)); 0 rows inserted/updated/deleted ij> create table b(i int, j int); 0 rows inserted/updated/deleted ij> insert into b values (1,1); 1 row inserted/updated/deleted ij> insert into a select * from b; 1 row inserted/updated/deleted ij> select * from a; I |J ----------------------- 1 |-1 1 row selected ij> insert into a select i from b; ERROR 42802: The number of values assigned is not the same as the number of specified or implied columns. ij> insert into a select i,0 from b; 1 row inserted/updated/deleted ij> select * from a; I |J ----------------------- 1 |-1 1 |-1 2 rows selected > 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.