Index: CreateTableOperation.java
===================================================================
--- CreateTableOperation.java	(revision 44057)
+++ CreateTableOperation.java	(revision 44058)
@@ -5,7 +5,6 @@
 import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.gvsig.fmap.dal.exception.DataException;
 import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
@@ -15,36 +14,31 @@
 import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
 import org.gvsig.fmap.dal.store.jdbc.exception.JDBCSQLException;
 import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
+import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
 import org.gvsig.fmap.geom.DataTypes;
 
 public class CreateTableOperation extends AbstractConnectionWritableOperation {
 
-    private final String schemaName;
-    private final String tableName;
+    private final TableReference table;
     private final FeatureType type;
     private final List<Pair<String, SQLBuilder.Privilege>> userAndPrivileges;
     private final List<String> additionalSQLs;
-    private final String dbName;
 
     public CreateTableOperation(
             JDBCHelper helper
         ) {
-        this(helper, null, null, null, null, null, null);
+        this(helper, null, null, null, null);
     }
     
     public CreateTableOperation(
             JDBCHelper helper,
-            String dbName,
-            String schemaName,
-            String tableName,
+            TableReference table,
             FeatureType type,
             List<Pair<String, SQLBuilder.Privilege>> userAndPrivileges,
             List<String> additionalSQLs
         ) {
         super(helper);
-        this.dbName = dbName;
-        this.schemaName = schemaName;
-        this.tableName = tableName;
+        this.table = table;
         this.type = type;
         this.userAndPrivileges = userAndPrivileges;
         this.additionalSQLs = additionalSQLs;
@@ -53,14 +47,11 @@
     @Override
     public final Object perform(Connection conn) throws DataException {
         return this.performCreateTable(conn, 
-                dbName, schemaName, tableName,
-                type, userAndPrivileges, additionalSQLs);
+                table, type, userAndPrivileges, additionalSQLs);
     }
 
     protected List<String> buildCreateIndexesSQL(
-            String database,
-            String schema,
-            String table,
+            TableReference table,
             FeatureType type
         ) {
         ArrayList<String> sqls = new ArrayList<>();
@@ -74,7 +65,11 @@
                 sqlbuilder.create_index().if_not_exist();
                 sqlbuilder.create_index().name("idx_" + table + "_" + attr.getName());
                 sqlbuilder.create_index().column(attr.getName());
-                sqlbuilder.create_index().table().database(database).schema(schema).name(table);
+                sqlbuilder.create_index().table()
+                        .database(this.table.getDatabase())
+                        .schema(this.table.getSchema())
+                        .name(this.table.getTable()
+                );
                 sqls.addAll(sqlbuilder.create_index().toStrings());
             }
         }
@@ -82,15 +77,16 @@
     }
     
     public boolean performCreateTable(Connection conn,
-            String dbName, 
-            String schemaName,
-            String tableName,
+            TableReference table,
             FeatureType type,
             List<Pair<String, SQLBuilder.Privilege>> rolesAndPrivileges,
             List<String> additionalSQLs) throws DataException {
 
         JDBCSQLBuilderBase sqlbuilder = this.createSQLBuilder();
-        sqlbuilder.create_table().table().database(dbName).schema(schemaName).name(tableName);
+        sqlbuilder.create_table().table()
+                .database(this.table.getDatabase())
+                .schema(this.table.getSchema())
+                .name(this.table.getTable());
         for (FeatureAttributeDescriptor attr : type) {
             if( attr.getType()==DataTypes.GEOMETRY ) {
                 sqlbuilder.create_table().add_geometry_column(
@@ -121,7 +117,7 @@
 
         List<String> sqls;
         sqls = sqlbuilder.create_table().toStrings();
-        sqls.addAll(buildCreateIndexesSQL(dbName, schemaName, tableName, type));
+        sqls.addAll(buildCreateIndexesSQL(this.table,type));
         sqls.addAll(sqlbuilder.grant().toStrings());
         sqls.addAll(additionalSQLs);
 
