diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index d29a5f5..1befe29 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -493,7 +493,7 @@
         CreateDataverseStatement stmtCreateDataverse = (CreateDataverseStatement) stmt;
         SourceLocation sourceLoc = stmtCreateDataverse.getSourceLocation();
         String dvName = stmtCreateDataverse.getDataverseName().getValue();
-        validateDatabaseObjectName(dvName, sourceLoc);
+        validateDataverseName(dvName, sourceLoc);
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         lockManager.acquireDataverseReadLock(metadataProvider.getLocks(), dvName);
@@ -3291,6 +3291,14 @@
         ExternalDataUtils.validateAdapterSpecificProperties(configuration, srcLoc, warningCollector);
     }
 
+    private static void validateDataverseName(String dataverseName, SourceLocation sourceLoc)
+            throws CompilationException {
+        validateDatabaseObjectName(dataverseName, sourceLoc);
+        if (dataverseName.contains(".")) {
+            throw new CompilationException(ErrorCode.INVALID_DATABASE_OBJECT_NAME, sourceLoc, dataverseName);
+        }
+    }
+
     public static void validateDatabaseObjectName(String name, SourceLocation sourceLoc) throws CompilationException {
         if (name == null || name.isEmpty()) {
             throw new CompilationException(ErrorCode.INVALID_DATABASE_OBJECT_NAME, sourceLoc, "<empty>");
