Hi @freider , yes, you have a point, let me elaborate. 
There are a two differences b/w the RedshiftTarget and PostgresTarget implementations but they are both actually are results of the same misfeature in redshift. 
One is the way you define the `marker_table` (in postgres you use `DEFAULT NOW()` but you can't in redshift)
And the other is the way you insert data into redshift - since the table definition cannot contain DEFAULT NOW() then you have to generate a client side timestamp. (well, to be precise - IIRC you CAN use DEFAULT NOW() in redshift but it will not work - and it's documented, so maybe they'll add it in the future, but from syntactical pov it isn't an error).
So yes - what I can do is merge them back to - hmmm - to -say `PostgresTarget`? which would serve both purposes and add some configuration member to the class called of `flavor` which might be `"redshift"` or `"postgres"`.

However note that this discussion applies only the the PostgressTarget, not the the Copy Task. So in postgres we have a `CopyToTable` task which iterates over rows and inserts 10k at a time.
While on redshift the recommended way is to use S3 so we have an `S3CopyToTable` task for redshift which runs the `copy` sql command. So the tasks are pretty much different and I think they should remain separate.