Skip to content

Conversation

@logart
Copy link
Collaborator

@logart logart commented Feb 5, 2025

Here I introduce new field named classesRefs for schema which will eventually replace classes.
The idea is to store each schema class separately so update to one class would not lead to overwrite to the whole schema.

Next steps would be to gradually replace classes with classesRefs. I will update this description when it's ok to merge.

Thank you for your review.

We have a Slack chat for contributors. If you wish to join, please read this article.

@logart logart added the WIP label Feb 5, 2025
@logart logart self-assigned this Feb 5, 2025
@logart logart requested a review from andrii0lomakin February 5, 2025 09:06
@logart logart marked this pull request as draft February 5, 2025 09:06
@logart logart changed the title WIP: Schema split Schema split Mar 7, 2025
@logart logart marked this pull request as ready for review March 7, 2025 23:26
@logart
Copy link
Collaborator Author

logart commented Mar 7, 2025

Finally it's seems ready to me. Off course there is still TODOs, but tests could be run on this branch and bugs found by initial testing would be fixed.
@andrii0lomakin @lpld I would be happy if you can review it.

artem.loginov added 4 commits March 8, 2025 00:31
LazySchemaClass cls = classesRefs.get(normalizeClassName(iClassName));
if (cls != null) {
return cls;
if (cls.isLoaded()) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be simplified to if (!cls.isLoaded()){load()}; return cls.getDelegate();

}
entity.field("properties", props, PropertyType.EMBEDDEDSET);
public EntityImpl toStream(DatabaseSessionInternal db) {
acquireSchemaWriteLock(db);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can lower this to readlock like in the schema. We are not updating the class here, just writing it to the db.

}
}

public Collection<SchemaClass> getClasses(DatabaseSessionInternal database) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should've renamed this one back to getClasses. This was pushed by accident.

} else if (projValue instanceof Iterable) {
//noinspection unchecked
return ExecutionStream.iterator(((Iterable<Object>) projValue).iterator());
} else if (projValue instanceof Map) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be redone, but it's weird we don't have map support on the output.


private String queryShortName() {
String selectShortNameSQL =
"select shortName from ( select expand(classes) from metadata:schema )"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andrii0lomakin this one brakes backward compatibility for schema query.
It used to be expand(classes), but now it's expand(classesRefs.values()) which returns not classes, but their ids.

Do we need to restore this functionality by extending our sql engine to handle this case separately or we can deprecate access to metadata:schema.classes?

I can't decide it myself yet, since it's a pretty much an arhitectural decision.

database
.command(
new SQLSynchQuery<EntityImpl>("select expand(classes) from metadata:schema"))
new SQLSynchQuery<EntityImpl>("select expand(classesRefs) from metadata:schema"))
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andrii0lomakin Same question here, should we fix by tweaking sql engine or is it fine to break backward compatibility?

artem.loginov added 29 commits March 10, 2025 21:51
Add toString for lazy class.
Store parent and subclasses as sets, not lists.
Init base classes eagerly.
Move inheritance management on class level, not on schema level.
Add schema to more interfaces to make lazy loading of classes possible.
Split class loading stages to basic and inheritance to prevent recursion.
Ignore test dependent on metadata push.
Move class loading to one level of inheritance higher, it seemed to me to be the same in all subclasses.
Unload remote class when it's dirty.
…ty linked classes.

Invalidate all classes when remote schema metadata needs reload.
# Conflicts:
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/message/BeginTransaction38Request.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/message/CommandResponse.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/message/Commit38Request.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/message/FetchTransaction38Response.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaClassRemote.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaPropertyRemote.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaRemote.java
#	core/src/main/java/com/jetbrains/youtrack/db/api/record/Edge.java
#	core/src/main/java/com/jetbrains/youtrack/db/api/schema/Schema.java
#	core/src/main/java/com/jetbrains/youtrack/db/api/schema/SchemaClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/command/traverse/TraverseRecordProcess.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/DatabaseSessionAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/DatabaseSessionEmbedded.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/EntityFieldWalker.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/record/ClassTrigger.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/tool/DatabaseCompare.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/tool/DatabaseExport.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/tool/DatabaseImport.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/tool/GraphRepair.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/hook/DocumentHookAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/index/IndexDefinitionFactory.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/index/IndexInternal.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/index/IndexManagerShared.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/iterator/RecordIteratorClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/function/FunctionLibraryImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/ImmutableSchema.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/ImmutableSchemaProperty.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassEmbedded.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaEmbedded.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaImmutableClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaPropertyEmbedded.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaPropertyImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaProxy.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaShared.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/security/SecurityEngine.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/security/SecurityShared.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/RecordAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/impl/EdgeDelegate.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/impl/EdgeEntityImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/impl/EdgeIterator.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/impl/EntityImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/impl/VertexEntityImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/record/impl/VertexInternal.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/DocumentSerializerDelta.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/EntitySerializer.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/HelperClasses.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/RecordSerializerBinaryV0.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/RecordSerializerBinaryV1.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/RecordSerializerNetworkV0.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/binary/RecordSerializerNetworkV37.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/string/RecordSerializerCSVAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/string/RecordSerializerJSON.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/serialization/serializer/record/string/RecordSerializerSchemaAware2CSV.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/ChainedIndexProxy.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLAlterClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLAlterProperty.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateEdge.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateIndex.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateLink.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateProperty.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateVertex.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLDelete.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLDropClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLDropProperty.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLInsert.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLLiveSelect.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLMoveVertex.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLResultsetAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLSelect.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLSetAware.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLTruncateClass.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLUpdate.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/FilterAnalyzer.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/SQLHelper.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/CheckClassTypeStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/CheckRecordTypeStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/CheckSafeDeleteStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/ExpandStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/FetchEdgesFromToVerticesStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/FetchEdgesToVerticesStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/FilterByClassStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/InsertValuesStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/LiveQueryListenerImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/MatchEdgeTraverser.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/MatchExecutionPlanner.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/RemoveEdgePointersStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/ResultInternal.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/SelectExecutionPlanner.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/UpdateContentStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/UpdateEdgePointersStep.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/executor/metadata/ClassIndexFinder.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/filter/SQLFilterCondition.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/filter/SQLFilterItemAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/filter/SQLFilterItemField.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/filter/SQLFilterItemFieldMultiAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/functions/coll/SQLFunctionTraversedElement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/operator/QueryOperatorContains.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/operator/QueryOperatorContainsValue.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/operator/QueryOperatorInstanceof.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLAlterClassStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLAlterPropertyStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLBaseExpression.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLBaseIdentifier.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLBinaryCondition.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLContainsAnyCondition.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLCreateIndexStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLCreateLinkStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLDropClassStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLMatchPathItem.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLMatchStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLModifier.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLSuffixIdentifier.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLTruncateClassStatement.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/sql/parser/SQLUpdateItem.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/tx/FrontendTransactionDataChange.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/tx/TransactionOptimistic.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/db/DatabaseDocumentTxTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/db/tool/DatabaseImportTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/db/tool/TestSchemaImportExport.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/metadata/ClassTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/AlterSchemaPropertyTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/AlterSuperclassTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassImplTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/TestMultiSuperClasses.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/record/impl/EntitySerializerDeltaTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLCreateSchemaPropertyTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLDropSchemaPropertyTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLSelectTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/CommandExecutorSQLTruncateTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/executor/AlterClassStatementExecutionTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/executor/CheckSafeDeleteStepTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/executor/CreateSchemaPropertyStatementExecutionTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/executor/DropSchemaPropertyStatementExecutionTest.java
#	core/src/test/java/com/jetbrains/youtrack/db/internal/core/sql/executor/SelectStatementExecutionTest.java
#	jdbc/src/main/java/com/jetbrains/youtrack/db/internal/jdbc/YouTrackDbJdbcDatabaseMetaData.java
#	jdbc/src/main/java/com/jetbrains/youtrack/db/internal/jdbc/YouTrackDbJdbcResultSet.java
#	jdbc/src/main/java/com/jetbrains/youtrack/db/internal/jdbc/YouTrackDbJdbcResultSetMetaData.java
#	jdbc/src/test/java/com/jetbrains/youtrack/db/internal/jdbc/YouTrackDbJdbcStatementDMLtest.java
#	lucene/src/main/java/com/jetbrains/youtrack/db/internal/lucene/engine/LuceneIndexEngineAbstract.java
#	lucene/src/main/java/com/jetbrains/youtrack/db/internal/lucene/operator/LuceneOperatorUtil.java
#	lucene/src/main/java/com/jetbrains/youtrack/db/internal/lucene/operator/LuceneTextOperator.java
#	lucene/src/main/java/com/jetbrains/youtrack/db/internal/spatial/factory/SpatialStrategyFactory.java
#	lucene/src/test/java/com/jetbrains/youtrack/db/internal/lucene/integration/LuceneCreateIndexIntegrationTest.java
#	security/src/main/java/com/jetbrains/youtrack/db/internal/security/auditing/AuditingHook.java
#	server/src/main/java/com/jetbrains/youtrack/db/internal/server/network/protocol/http/command/delete/ServerCommandDeleteDocument.java
#	server/src/main/java/com/jetbrains/youtrack/db/internal/server/network/protocol/http/command/get/ServerCommandGetDatabase.java
#	server/src/main/java/com/jetbrains/youtrack/db/internal/server/network/protocol/http/command/post/ServerCommandPostDatabase.java
#	server/src/test/java/com/jetbrains/youtrack/db/internal/server/DBSequenceRemoteTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/BaseDBTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/CRUDDocumentPhysicalTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/CRUDInheritanceTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/CollateTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/FetchPlanComplexNestedLevelsTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/GraphDatabaseTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/IndexTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLCommandsTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLInsertTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLMetadataTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLSelectHashIndexReuseTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLSelectIndexReuseTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLSelectTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLSelectTestNew.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SQLUpdateTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SchemaPropertyIndexTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/SchemaTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/TransactionAtomicTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/TransactionConsistencyTest.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/embedded-test-db-from-scratch.xml
#	tools/src/main/java/com/jetbrains/youtrack/db/internal/tools/console/ConsoleDatabaseApp.java
# Conflicts:
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaClassRemote.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassEmbedded.java
…y a mistake).

Fix more merge conflicts.
Join current transaction when loading lazy classes.
Make lazy classes loaded by default if they are created from template(there is no information about such classes in storage).
Rename reference to metadata:classes to metadata:classesRefs in sql.
Do not create schema snapshot for transactions on system collections.
Rename addBaseClass to addSubClass.
…same reason.

Split class init and inheritance init on the full init stage.
Remove loading flag.
Do not load system collections(fix for remote mode).
Remove inheritance information when class has been unloaded.(Dirty field causes issues when reinitializing)
Restore ignored tests.
# Conflicts:
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/db/SharedContextRemote.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaClassRemote.java
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaRemote.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/db/DatabaseSessionAbstract.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/ImmutableSchema.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassEmbedded.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaEmbedded.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaPropertyImpl.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaShared.java
#	tests/src/test/java/com/jetbrains/youtrack/db/auto/DbImportExportTest.java
# Conflicts:
#	client/src/main/java/com/jetbrains/youtrack/db/internal/client/remote/metadata/schema/SchemaPropertyRemote.java
#	core/src/main/java/com/jetbrains/youtrack/db/internal/core/metadata/schema/SchemaClassImpl.java
# Conflicts:
#	core/src/main/java/com/jetbrains/youtrackdb/api/schema/Schema.java
#	core/src/main/java/com/jetbrains/youtrackdb/internal/common/collection/BitSetMap.java
#	core/src/main/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/LazySchemaClass.java
#	core/src/main/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/SchemaClassEmbedded.java
#	core/src/main/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/SchemaClassImpl.java
#	core/src/main/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/SchemaProxy.java
#	core/src/main/java/com/jetbrains/youtrackdb/internal/core/sql/parser/SQLCreatePropertyStatement.java
#	core/src/test/java/com/jetbrains/youtrackdb/internal/common/collection/BitSetMapTest.java
#	core/src/test/java/com/jetbrains/youtrackdb/internal/core/db/tool/DatabaseImportTest.java
#	core/src/test/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/LazySchemaClassTest.java
#	core/src/test/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/SchemaClassEmbeddedMockTest.java
#	core/src/test/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/SchemaClassEmbeddedTest.java
#	core/src/test/java/com/jetbrains/youtrackdb/internal/core/metadata/schema/SchemaSharedClassReadTest.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants