You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2015/05/19 19:09:31 UTC

[2/2] metamodel git commit: Merge branch 'METAMODEL-142'

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 <i....@gmail.com>
Authored: Tue May 19 18:54:47 2015 +0200
Committer: Kasper Sørensen <i....@gmail.com>
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;
      }
--}
++}