[
https://issues.apache.org/jira/browse/NIFI-14129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17916091#comment-17916091
]
ASF subversion and git services commented on NIFI-14129:
--------------------------------------------------------
Commit 253a07663ce83b8092735c98f59395d93fd534d5 in nifi's branch
refs/heads/main from David Handermann
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=253a07663c ]
NIFI-14129 Added Database Dialect Service
- Added database-dialect-service-api
- Added Standard Database Dialect Service implementation
- Added Database Adapter implementation
- Added Database Dialect Service property descriptor to Database Processors
- Refactored Database Processors with optional Database Dialect Service
- Adjusted Derby implementation to throw an exception for more than one column
in an ALTER TABLE statement construction
This closes #9640.
Signed-off-by: Tamas Palfy <[email protected]>
> Add Database Dialect Service
> ----------------------------
>
> Key: NIFI-14129
> URL: https://issues.apache.org/jira/browse/NIFI-14129
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Extensions
> Reporter: David Handermann
> Assignee: David Handermann
> Priority: Major
> Time Spent: 2h 10m
> Remaining Estimate: 0h
>
> Several Processors in the standard bundle use the internal
> {{DatabaseAdapter}} interface to delegate SQL statement generation for
> specific vendors. Although the interface provides a layer of abstraction, it
> requires code changes within the standard bundle and does not support
> extension through external implementations. A new Controller Service
> interface should be added that allows external extension for various database
> dialects. This strategy enables Apache NiFi to continue supporting a core set
> of database vendors while allowing third parties to create new
> implementations.
> The new Database Dialect Service should provide a streamlined approach that
> avoids some of the complexities of the current Database Adapter interface.
> The Service interface should introduce a new Statement Type enumeration to
> cover common types such as SELECT, CREATE, INSERT, and others. Service
> methods should use the Statement Type enumeration instead of defining methods
> for each type of supported or unsupported statement.
> To provide an incremental way forward, the Database Dialect Service should be
> a new allowable value among the existing Database Types. With Database
> Dialect Service selected as the Database Type, the Database Dialect Service
> can be configured as regular Controller Service. This approach avoids
> breaking changes to existing database processors and also allows for
> incremental migration of existing implementations. After the initial
> implementation is completed and existing adapters are migrated as part of
> follow on work, then a separate issue can be considered to use property
> migration methods.
> The initial implementation of the Database Dialect Service should support
> generic ANSI SQL, analogous to the Generic Database Adapter. This will
> provide a representative implementation, and subsequent issues can cover work
> on vendor specific services.
> The Database Dialect Service interface should be defined in an API module and
> included in the nifi-standard-services-api-nar as a common point of extension.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)