Currently, we have a dedicated TeradataSource that is used because some databases don't support the LIMIT clause (which is not SQL Standard anyway) that the default DBInputFormat uses. The TeradataSource is not restricted to Teradata and can be used for all DBs including both - those that support the LIMIT clause that those that don't.
We should either:
Keep both DatabaseSource and TeradataSource, but rename TeradataSource to DataDrivenDatabaseSource; or
Do away completely with DatabaseSource, and just use the current TeradataSource as the DatabaseSource.
We may prefer 1. either for backward compatibility or because the existing DatabaseSource may be simpler to configure. But in either case, we should make sure that there's no code duplication.
DBSource should support Teradata source and it shouldn't be like teradata source replaces dbsource. have commented on the PR#174 as well. we can merge #172 after review, after the current issue () is resolved, if there is a change in "query" format, i can send an update for the plugin endpoints. however i don't think #172 should be blocked due to this change.
Shouldn't a single plugin support both types of queries? Limit and bound?
We don't need both as it makes no sense. So, we should go with most generic implementation which is TeradataSource.
...DBSource should support Teradata source and it shouldn't be like teradata source replaces dbsource...
Doesn't make sense to me at all. If we have a better implementation why shouldn't it be used for all. Determining if DB supports LIMIT is not possible, so implementing a generic version is the right approach.