The TPC-C Definition does not have that column and the only purpose of such a column I can think of would be for the benefit of database replication systems like Bucardo and Slony.
The column definition in 4.1.0 prevents the schema from loading into Oracle. Since dropping the column entirely would make existing CSV datasets (created via "runLoader ... fileLocation ...) incompatible, I propose to make it a plain integer and remove the primary key clause for 4.1.1.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have changed the column definition into a plain integer without any index or primary key, so that the sqlTableCreates file loads without any problems into both, Oracle and PostgreSQL.
I also added the two DB specific files, sqlExtraCreates.ora and sqlExtraCreates.pg. Both turn the column into an auto-incrementing primary key in a database specific fashion. For PostgreSQL that is to define the column DEFAULT to be nextval('hist_id_seq'). For Oracle I chose an Oracle 11g compatible way of defining a BEFORE INSERT trigger that assigns hist_id_seq.nextval to the column. Oracle 12c allows a construct similar to the PostgreSQL way, but I don't have a personal 12c license and don't want to require everyone trying to test this code to have such either. Making the corresponding changes to sqlExtraCreates.ora should be simple enough if someone wants to test that implementation.
The changes will be released with 4.1.1.
Last edit: Jan Wieck 2016-01-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am curious about the column history.hist_id
The TPC-C Definition does not have that column and the only purpose of such a column I can think of would be for the benefit of database replication systems like Bucardo and Slony.
The column definition in 4.1.0 prevents the schema from loading into Oracle. Since dropping the column entirely would make existing CSV datasets (created via "runLoader ... fileLocation ...) incompatible, I propose to make it a plain integer and remove the primary key clause for 4.1.1.
I have changed the column definition into a plain integer without any index or primary key, so that the sqlTableCreates file loads without any problems into both, Oracle and PostgreSQL.
I also added the two DB specific files, sqlExtraCreates.ora and sqlExtraCreates.pg. Both turn the column into an auto-incrementing primary key in a database specific fashion. For PostgreSQL that is to define the column DEFAULT to be nextval('hist_id_seq'). For Oracle I chose an Oracle 11g compatible way of defining a BEFORE INSERT trigger that assigns hist_id_seq.nextval to the column. Oracle 12c allows a construct similar to the PostgreSQL way, but I don't have a personal 12c license and don't want to require everyone trying to test this code to have such either. Making the corresponding changes to sqlExtraCreates.ora should be simple enough if someone wants to test that implementation.
The changes will be released with 4.1.1.
Last edit: Jan Wieck 2016-01-30