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-3155) Support for SQL:2003 MERGE statement
Date Thu, 10 Oct 2013 17:33:43 GMT

     [ https://issues.apache.org/jira/browse/DERBY-3155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Rick Hillegas updated DERBY-3155:

    Attachment: derby-3155-03-af-backingStoreHashtableWithRowLocation.diff

Attaching derby-3155-04-ab-deleteClauseNoStore.diff. This patch incorporates Mike's review
comments. I have run SpillHashTest as is and also with some dummy code which forces backing
hash tables to always include RowLocations. I am running the full tests now.

This patch makes the following changes to the previous rev. Most of these changes are in BackingStoreHashtable:

1) Observes an 80 character line limit.

2) Regularizes the formatting of "if" statements: Consequents are always enclosed in curly
braces. Consequents no longer appear on the same line as the "if" condition. The occasional
form "if(" is replaced with "if (".

3) The makeHashValue() method has been eliminated. Its code has been inlined in the two places
where it was called.

4) Extra comments have been added. In particular, comments have been added to point out that
RowLocations are not currently supported for RowSource-based hash tables. Also, comments have
been added to the elements() and get() methods, explaining what kind of returned Objects the
caller must expect.

Touches the same files as the previous rev of the patch.

> Support for SQL:2003 MERGE statement
> ------------------------------------
>                 Key: DERBY-3155
>                 URL: https://issues.apache.org/jira/browse/DERBY-3155
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Trejkaz
>            Assignee: Rick Hillegas
>              Labels: derby_triage10_10
>         Attachments: derby-3155-01-ac-grammar.diff, derby-3155-02-ag-fixParserWarning.diff,
derby-3155-03-ae-backingStoreHashtableWithRowLocation.diff, derby-3155-03-af-backingStoreHashtableWithRowLocation.diff,
MergeStatement.html, MergeStatement.html, MergeStatement.html
> A relatively common piece of logic in a database application is to check for a row's
existence and then either update or insert depending on its existence.
> SQL:2003 added a MERGE statement to perform this operation.  It looks like this:
>     MERGE INTO table_name USING table_name ON (condition)
>     WHEN MATCHED THEN UPDATE SET column1 = value1 [, column2 = value2 ...]
>     WHEN NOT MATCHED THEN INSERT column1 [, column2 ...] VALUES (value1 [, value2 ...])

> At the moment, the only workaround for this would be to write a stored procedure to do
the same operation, or to implement the logic client-side.

This message was sent by Atlassian JIRA

View raw message