Merge branch 'METAMODEL-142'
Conflicts:
jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/d5dee995
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/d5dee995
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/d5dee995
Branch: refs/heads/master
Commit: d5dee995f1191e48c707ef79042e523078a71dbd
Parents: 8cb88ff f9ba247
Author: Kasper Sørensen <[email protected]>
Authored: Tue May 19 18:54:47 2015 +0200
Committer: Kasper Sørensen <[email protected]>
Committed: Tue May 19 18:54:47 2015 +0200
----------------------------------------------------------------------
.../metamodel/jdbc/JdbcCreateTableBuilder.java | 153 +++++++++----------
.../apache/metamodel/jdbc/JdbcDataContext.java | 11 +-
.../metamodel/jdbc/JdbcDropTableBuilder.java | 9 +-
.../metamodel/jdbc/JdbcMetadataLoader.java | 71 ++++++---
.../org/apache/metamodel/jdbc/JdbcSchema.java | 73 +++++----
.../apache/metamodel/jdbc/MetadataLoader.java | 22 ++-
.../AbstractJdbIntegrationTest.java | 29 ++--
.../SQLServerJtdsDriverTest.java | 34 ++++-
8 files changed, 252 insertions(+), 150 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d5dee995/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
----------------------------------------------------------------------
diff --cc
jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
index 404f7ea,5170dd9..d20f369
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
@@@ -38,86 -38,87 +38,85 @@@ import org.slf4j.LoggerFactory
*/
final class JdbcCreateTableBuilder extends
AbstractTableCreationBuilder<JdbcUpdateCallback> {
- private static final Logger logger =
LoggerFactory.getLogger(JdbcCreateTableBuilder.class);
+ private static final Logger logger =
LoggerFactory.getLogger(JdbcCreateTableBuilder.class);
- public JdbcCreateTableBuilder(JdbcUpdateCallback updateCallback, Schema
schema, String name) {
- super(updateCallback, schema, name);
- if (!(schema instanceof JdbcSchema)) {
- throw new IllegalArgumentException("Not a valid JDBC
schema: " + schema);
- }
- }
-
- @Override
- public Table execute() {
- final String sql = createSqlStatement();
- logger.info("Create table statement created: {}", sql);
+ public JdbcCreateTableBuilder(JdbcUpdateCallback updateCallback, Schema
schema, String name) {
+ super(updateCallback, schema, name);
+ if (!(schema instanceof JdbcSchema)) {
+ throw new IllegalArgumentException("Not a valid JDBC schema: " +
schema);
+ }
+ }
- Connection connection = getUpdateCallback().getConnection();
- Statement st = null;
- try {
- st = connection.createStatement();
- int rowsAffected = st.executeUpdate(sql);
- logger.debug("Create table statement executed, {} rows
affected", rowsAffected);
- } catch (SQLException e) {
- throw JdbcUtils.wrapException(e, "execute create table
statement: " + sql);
- } finally {
- FileHelper.safeClose(st);
- }
+ @Override
+ public Table execute() {
+ final String sql = createSqlStatement();
+ logger.info("Create table statement created: {}", sql);
- JdbcSchema schema = (JdbcSchema) getSchema();
- schema.refreshTables();
- return schema.getTableByName(getTable().getName());
- }
+ final Connection connection = getUpdateCallback().getConnection();
+ Statement st = null;
+ try {
+ st = connection.createStatement();
+ final int rowsAffected = st.executeUpdate(sql);
+ logger.debug("Create table statement executed, {} rows affected",
rowsAffected);
+ } catch (SQLException e) {
+ throw JdbcUtils.wrapException(e, "execute create table statement:
" + sql);
+ } finally {
+ FileHelper.safeClose(st);
+ }
- protected String createSqlStatement() {
- return createSqlStatement(getTable());
- }
+ final JdbcSchema schema = (JdbcSchema) getSchema();
+ schema.refreshTables(connection);
+ return schema.getTableByName(getTable().getName());
+ }
- private String createSqlStatement(Table table) {
- final IQueryRewriter queryRewriter =
getUpdateCallback().getDataContext().getQueryRewriter();
- final StringBuilder sb = new StringBuilder();
- sb.append("CREATE TABLE ");
- final Schema schema = getSchema();
- if (schema != null && schema.getName() != null) {
- sb.append(schema.getQualifiedLabel());
- sb.append(".");
- }
-
sb.append(getUpdateCallback().quoteIfNescesary(table.getName()));
- sb.append(" (");
- final Column[] columns = table.getColumns();
- for (int i = 0; i < columns.length; i++) {
- final Column column = columns[i];
- if (i != 0) {
- sb.append(", ");
- }
-
sb.append(getUpdateCallback().quoteIfNescesary(column.getName()));
- sb.append(' ');
- final String nativeType = column.getNativeType();
- final Integer columnSize = column.getColumnSize();
- if (nativeType == null) {
- ColumnType columnType = column.getType();
- if (columnType == null) {
- columnType = ColumnType.VARCHAR;
- }
+ protected String createSqlStatement() {
+ return createSqlStatement(getTable());
+ }
- final String columnTypeString =
queryRewriter.rewriteColumnType(columnType, columnSize);
- sb.append(columnTypeString);
- } else {
- sb.append(nativeType);
- if (columnSize != null) {
- sb.append('(');
- sb.append(columnSize.intValue());
- sb.append(')');
- }
- }
- if (column.isNullable() != null &&
!column.isNullable().booleanValue()) {
- sb.append(" NOT NULL");
- }
- }
+ private String createSqlStatement(Table table) {
+ final IQueryRewriter queryRewriter =
getUpdateCallback().getDataContext().getQueryRewriter();
+ final StringBuilder sb = new StringBuilder();
+ sb.append("CREATE TABLE ");
+ final Schema schema = getSchema();
+ if (schema != null && schema.getName() != null) {
+ sb.append(schema.getQualifiedLabel());
+ sb.append(".");
+ }
+ sb.append(getUpdateCallback().quoteIfNescesary(table.getName()));
+ sb.append(" (");
+ final Column[] columns = table.getColumns();
+ for (int i = 0; i < columns.length; i++) {
+ final Column column = columns[i];
+ if (i != 0) {
+ sb.append(", ");
+ }
+ sb.append(getUpdateCallback().quoteIfNescesary(column.getName()));
+ sb.append(' ');
+ final String nativeType = column.getNativeType();
++ final Integer columnSize = column.getColumnSize();
+ if (nativeType == null) {
+ ColumnType columnType = column.getType();
+ if (columnType == null) {
+ columnType = ColumnType.VARCHAR;
+ }
-
- final String columnTypeString =
queryRewriter.rewriteColumnType(columnType);
-
++ final String columnTypeString =
queryRewriter.rewriteColumnType(columnType, columnSize);
+ sb.append(columnTypeString);
+ } else {
+ sb.append(nativeType);
- }
- final Integer columnSize = column.getColumnSize();
- if (columnSize != null) {
- sb.append('(');
- sb.append(columnSize.intValue());
- sb.append(')');
++ if (columnSize != null) {
++ sb.append('(');
++ sb.append(columnSize.intValue());
++ sb.append(')');
++ }
+ }
+ if (column.isNullable() != null &&
!column.isNullable().booleanValue()) {
+ sb.append(" NOT NULL");
+ }
+ }
boolean primaryKeyExists = false;
- for(int i = 0 ; i < columns.length ; i++) {
- if(columns[i].isPrimaryKey()) {
- if(!primaryKeyExists) {
+ for (int i = 0; i < columns.length; i++) {
+ if (columns[i].isPrimaryKey()) {
+ if (!primaryKeyExists) {
sb.append(", PRIMARY KEY(");
sb.append(columns[i].getName());
primaryKeyExists = true;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d5dee995/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
----------------------------------------------------------------------
diff --cc jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
index 4c55b15,b4e3795..8c9f663
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
@@@ -807,4 -808,4 +812,4 @@@ public class JdbcDataContext extends Ab
public String getCatalogName() {
return _catalogName;
}
--}
++}