Hi all,

I just finished rewriting the JDBC class, and added an "extends"
postgresJDBC-client, to handle postgres and postgis as a sink with more
options.

I tested it with the mysql sink already and everything is working with
mother JDBCClient-class.

During this process I also "outsourced" the SQLAttributeEnum out of the
JDBC-class and changed some names and layout for better understanding:


        public enum SqlAttribute {
                // DEFAULT
                INTEGER("INT"),
                LONG("BIGINT"),
                FLOAT("FLOAT"),
                DOUBLE("DOUBLE"),
                STRING("VARCHAR(255)"),
                BOOLEAN("BOOLEAN"),
                //MYSQL
                MYSQL_DATETIME("DATETIME"),
                //POSTGRES / POSTGIS
                PG_DOUBLE("NUMERIC");



I hope this is ok the way I did it.


In this case postgres uses the TYPE numeric instead of the non existing
DOUBLE type, as an example.
So later on I will add also a postgres timestamp type, like it was done
in the mysql sink last week.

But there is one think, I need some assistance and it took a while to
find out why and what is happening:

So I used the randomDataset Adapter and the Postgres Sink.

The database, schema and table is created as expected but during save,
I get all the time:

 Table 'testtable' was unexpectedly not found and gets recreated.
 ERROR: column "randomText" of relation "testtable" does not exist

So the first message is a litte bit misleading, because the table
exists but can't be found and will be recreated in an endless loop.

The reason is because this statement during the
generatePreparedStatement method:

        INSERT INTO testschema.testtable ( "randomText", "randomNumber", 
"count", "timestamp" ) VALUES ( 'c', 69, 83531, 1591611708415 );


The problem here is that postgres uses lowercases for the column names.
So instead of randomText then name has to be randomtext:

        INSERT INTO testschema.testtable ( "randomtext", "randomnumber", 
"count", "timestamp" ) VALUES ( 'c', 69, 83531, 1591611708415 )

Can someone give me a hint, where to add .toLowerCase to the correct
positon to get a quick fix?

I am working in the branch feature/jdbc_rewrite and the
PostgresJDPCClient class.

Greetings Florian



Reply via email to