diff --git a/engine/src/main/java/com/arcadedb/query/sql/parser/CreateDocumentTypeStatement.java b/engine/src/main/java/com/arcadedb/query/sql/parser/CreateDocumentTypeStatement.java index e9fbcb4a90..ddad3e46ec 100644 --- a/engine/src/main/java/com/arcadedb/query/sql/parser/CreateDocumentTypeStatement.java +++ b/engine/src/main/java/com/arcadedb/query/sql/parser/CreateDocumentTypeStatement.java @@ -48,9 +48,12 @@ protected DocumentType createType(final Schema schema) { else { // CHECK THE BUCKETS FIRST final List bucketInstances = new ArrayList<>(); - for (final BucketIdentifier b : buckets) - bucketInstances.add(b.bucketName != null ? schema.getBucketByName(b.bucketName.getStringValue()) : schema.getBucketById(b.bucketId.value.intValue())); + for (final BucketIdentifier b : buckets) { + if (!schema.existsBucket(b.bucketName.getStringValue())) + schema.createBucket(b.bucketName.getStringValue()); + bucketInstances.add(b.bucketName != null ? schema.getBucketByName(b.bucketName.getStringValue()) : schema.getBucketById(b.bucketId.value.intValue())); + } type = schema.createDocumentType(name.getStringValue(), bucketInstances); } } diff --git a/engine/src/main/java/com/arcadedb/query/sql/parser/CreateEdgeTypeStatement.java b/engine/src/main/java/com/arcadedb/query/sql/parser/CreateEdgeTypeStatement.java index 527ef1e47b..0a8bff49dc 100644 --- a/engine/src/main/java/com/arcadedb/query/sql/parser/CreateEdgeTypeStatement.java +++ b/engine/src/main/java/com/arcadedb/query/sql/parser/CreateEdgeTypeStatement.java @@ -48,9 +48,12 @@ protected DocumentType createType(final Schema schema) { else { // CHECK THE BUCKETS FIRST final List bucketInstances = new ArrayList<>(); - for (final BucketIdentifier b : buckets) - bucketInstances.add(b.bucketName != null ? schema.getBucketByName(b.bucketName.getStringValue()) : schema.getBucketById(b.bucketId.value.intValue())); + for (final BucketIdentifier b : buckets) { + if (!schema.existsBucket(b.bucketName.getStringValue())) + schema.createBucket(b.bucketName.getStringValue()); + bucketInstances.add(b.bucketName != null ? schema.getBucketByName(b.bucketName.getStringValue()) : schema.getBucketById(b.bucketId.value.intValue())); + } type = schema.createEdgeType(name.getStringValue(), bucketInstances); } } diff --git a/engine/src/main/java/com/arcadedb/query/sql/parser/CreateVertexTypeStatement.java b/engine/src/main/java/com/arcadedb/query/sql/parser/CreateVertexTypeStatement.java index 7279eb1204..43d6a756ed 100644 --- a/engine/src/main/java/com/arcadedb/query/sql/parser/CreateVertexTypeStatement.java +++ b/engine/src/main/java/com/arcadedb/query/sql/parser/CreateVertexTypeStatement.java @@ -48,9 +48,12 @@ protected DocumentType createType(final Schema schema) { else { // CHECK THE BUCKETS FIRST final List bucketInstances = new ArrayList<>(); - for (final BucketIdentifier b : buckets) - bucketInstances.add(b.bucketName != null ? schema.getBucketByName(b.bucketName.getStringValue()) : schema.getBucketById(b.bucketId.value.intValue())); + for (final BucketIdentifier b : buckets) { + if (!schema.existsBucket(b.bucketName.getStringValue())) + schema.createBucket(b.bucketName.getStringValue()); + bucketInstances.add(b.bucketName != null ? schema.getBucketByName(b.bucketName.getStringValue()) : schema.getBucketById(b.bucketId.value.intValue())); + } type = schema.createVertexType(name.getStringValue(), bucketInstances); } }