Github user kaspersorensen commented on a diff in the pull request:

    https://github.com/apache/metamodel/pull/185#discussion_r212811641
  
    --- Diff: 
jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java ---
    @@ -115,21 +115,23 @@ private String createSqlStatement(Table table) {
                     sb.append(" NOT NULL");
                 }
             }
    -        boolean primaryKeyExists = false;
    -        for (int i = 0; i < columns.size(); i++) {
    -            if (columns.get(i).isPrimaryKey()) {
    -                if (!primaryKeyExists) {
    -                    sb.append(", PRIMARY KEY(");
    -                    sb.append(columns.get(i).getName());
    -                    primaryKeyExists = true;
    -                } else {
    -                    sb.append(",");
    -                    sb.append(columns.get(i).getName());
    +        if (queryRewriter.isPrimaryKeySupported()) {
    +            boolean primaryKeyExists = false;
    --- End diff --
    
    I don't think it's that easy unfortunately. The abstract class is in the 
`core` module so it does not have access to `IQueryRewriter` which is a `jdbc` 
module specific interface. The purpose in the abstract class is really just to 
have a string (SQL) representation of the operation, where as here it is 
similar, but that string representation will actually be used to perform the 
operation with the JDBC driver.


---

Reply via email to