Hi Charlie,

Looking at this issue briefly, it seems that the NiFi code explicitly lists the 
accepted datatypes which can be used, and rowversion is not enumerated. 
Therefore it throws an exception. I suggest you open a feature request on our 
Jira page to support this. While it seems proprietary to Microsoft SQL 
versions, it says on the documentation page:

Is a data type that exposes automatically generated, unique binary numbers 
within a database. rowversion is generally used as a mechanism for 
version-stamping table rows. The storage size is 8 bytes. The rowversion data 
type is just an incrementing number and does not preserve a date or a time.

I think we could handle this datatype the same way we handle INTEGER, SMALLINT, 
TINYINT (or TIMESTAMP, as that is the functional equivalent from MS SQL which 
is now deprecated) in that switch statement, as it is simply an incrementing 8 
byte natural number. However, I would welcome input from someone like Matt 
Burgess to see if maybe there is a translation that can be done in the 
Microsoft-specific driver to a generic integer datatype before it reaches this 
logic. I would expect SQLServerResultSetMetaData#getColumnType(int column) to 
perform this translation; perhaps the version of the driver needs to be updated?

For now, can you use a timestamp or other supported datatype to perform your 
incremental fetch?


Andy LoPresto
[email protected]
[email protected]
PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69

> On Nov 20, 2018, at 9:00 PM, Charlie Meyer 
> <[email protected]> wrote:
> 
> Hi,
> 
> I'm attempting to do incremental fetch from a Microsoft SQL Server database 
> and would like to use rowversion [1] as my maximum value column. When I 
> configured the processor to use that column, it threw an exception [2]. Are 
> there known issues with using the rowversion for this purpose or workarounds? 
> 
> Thanks!
> 
> Charlie
> 
> [1] 
> https://docs.microsoft.com/en-us/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-2017
>  
> <https://docs.microsoft.com/en-us/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-2017>
>  
> [2] 
> https://github.com/apache/nifi/blob/d8d220ccb86d1797f56f34649d70a1acff278eb5/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java#L456
>  
> <https://github.com/apache/nifi/blob/d8d220ccb86d1797f56f34649d70a1acff278eb5/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java#L456>

Reply via email to