db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-481) implement SQL generated columns
Date Mon, 10 Nov 2008 19:11:44 GMT

     [ 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.


Mime
View raw message