public static long dynamicPointer( Collection<DynamicRecord> newRecords ) { return 0x8000000000L | Iterables.first( newRecords ).getId(); }
public SchemaRuleCommand( SchemaRecord recordsBefore, SchemaRecord recordsAfter, SchemaRule schemaRule ) { setup( Iterables.first( recordsAfter ).getId(), Mode.fromRecordState( Iterables.first( recordsAfter ) ) ); this.recordsBefore = recordsBefore; this.recordsAfter = recordsAfter; this.schemaRule = schemaRule; }
private long dynamicLabelsLongRepresentation( Iterable<DynamicRecord> records ) { return 0x8000000000L | Iterables.first( records ).getId(); }
private SchemaRule readSchemaRule( Collection<DynamicRecord> recordsBefore ) { // TODO: Why was this assertion here? // assert first(recordsBefore).inUse() : "Asked to deserialize schema records that were not in // use."; SchemaRule rule; ByteBuffer deserialized = AbstractDynamicStore.concatData( recordsBefore, new byte[100] ); try { rule = SchemaRuleSerialization.deserialize( Iterables.first( recordsBefore ).getId(), deserialized ); } catch ( MalformedSchemaRuleException e ) { return null; } return rule; }
private SchemaRule readSchemaRule( Collection<DynamicRecord> recordsBefore ) { // TODO: Why was this assertion here? // assert first(recordsBefore).inUse() : "Asked to deserialize schema records that were not in // use."; SchemaRule rule; ByteBuffer deserialized = AbstractDynamicStore.concatData( recordsBefore, new byte[100] ); try { rule = SchemaRuleSerialization.deserialize( Iterables.first( recordsBefore ).getId(), deserialized ); } catch ( MalformedSchemaRuleException e ) { return null; } return rule; }
private SchemaRule readSchemaRule( Collection<DynamicRecord> recordsBefore ) { // TODO: Why was this assertion here? // assert first(recordsBefore).inUse() : "Asked to deserialize schema records that were not in // use."; SchemaRule rule; ByteBuffer deserialized = AbstractDynamicStore.concatData( recordsBefore, new byte[100] ); try { rule = SchemaRuleSerialization.deserialize( Iterables.first( recordsBefore ).getId(), deserialized ); } catch ( MalformedSchemaRuleException e ) { return null; } return rule; }
private SchemaRule readSchemaRule( Collection<DynamicRecord> recordsBefore ) { // TODO: Why was this assertion here? // assert first(recordsBefore).inUse() : "Asked to deserialize schema records that were not in // use."; SchemaRule rule; ByteBuffer deserialized = AbstractDynamicStore.concatData( recordsBefore, new byte[100] ); try { rule = SchemaRuleSerialization.deserialize( Iterables.first( recordsBefore ).getId(), deserialized ); } catch ( MalformedSchemaRuleException e ) { return null; } return rule; }
private Command visitSchemaRuleCommand( ReadableChannel channel ) throws IOException { Collection<DynamicRecord> recordsBefore = new ArrayList<>(); readDynamicRecords( channel, recordsBefore, COLLECTION_DYNAMIC_RECORD_ADDER ); Collection<DynamicRecord> recordsAfter = new ArrayList<>(); readDynamicRecords( channel, recordsAfter, COLLECTION_DYNAMIC_RECORD_ADDER ); byte isCreated = channel.get(); if ( 1 == isCreated ) { for ( DynamicRecord record : recordsAfter ) { record.setCreated(); } } SchemaRule rule = Iterables.first( recordsAfter ).inUse() ? readSchemaRule( recordsAfter ) : readSchemaRule( recordsBefore ); return new Command.SchemaRuleCommand( recordsBefore, recordsAfter, rule ); }
private Command visitSchemaRuleCommand( ReadableChannel channel ) throws IOException { Collection<DynamicRecord> recordsBefore = new ArrayList<>(); readDynamicRecords( channel, recordsBefore, COLLECTION_DYNAMIC_RECORD_ADDER ); Collection<DynamicRecord> recordsAfter = new ArrayList<>(); readDynamicRecords( channel, recordsAfter, COLLECTION_DYNAMIC_RECORD_ADDER ); byte isCreated = channel.get(); if ( 1 == isCreated ) { for ( DynamicRecord record : recordsAfter ) { record.setCreated(); } } SchemaRule rule = Iterables.first( recordsAfter ).inUse() ? readSchemaRule( recordsAfter ) : readSchemaRule( recordsBefore ); return new Command.SchemaRuleCommand( recordsBefore, recordsAfter, rule ); }
private long create( DynamicArrayStore store, Object arrayToStore ) { Collection<DynamicRecord> records = new ArrayList<>(); store.allocateRecords( records, arrayToStore ); for ( DynamicRecord record : records ) { store.updateRecord( record ); } return Iterables.first( records ).getId(); }
@Override public void serialize( WritableChannel channel ) throws IOException { channel.put( NeoCommandType.SCHEMA_RULE_COMMAND ); writeDynamicRecords( channel, recordsBefore, recordsBefore.size() ); writeDynamicRecords( channel, recordsAfter, recordsAfter.size() ); channel.put( Iterables.first( recordsAfter ).isCreated() ? (byte) 1 : 0 ); } }
private long storeRule( SchemaRule rule ) { Collection<DynamicRecord> records = store.allocateFrom( rule ); for ( DynamicRecord record : records ) { store.updateRecord( record ); } return Iterables.first( records ).getId(); }
@Test public void shouldDropSchemaRuleFromStore() throws Exception { // GIVEN SchemaRecord beforeRecords = serialize( rule, id, true, true); SchemaRecord afterRecords = serialize( rule, id, false, false); when( neoStores.getSchemaStore() ).thenReturn( schemaStore ); // WHEN visitSchemaRuleCommand( storeApplier, new SchemaRuleCommand( beforeRecords, afterRecords, rule ) ); // THEN verify( schemaStore ).updateRecord( Iterables.first( afterRecords ) ); }
@Test public void shouldWriteCreatedSchemaRuleToStore() throws Exception { // GIVEN SchemaRecord beforeRecords = serialize( rule, id, false, false); SchemaRecord afterRecords = serialize( rule, id, true, true); when( neoStores.getSchemaStore() ).thenReturn( schemaStore ); // WHEN visitSchemaRuleCommand( storeApplier, new SchemaRuleCommand( beforeRecords, afterRecords, rule ) ); // THEN verify( schemaStore ).updateRecord( Iterables.first( afterRecords ) ); }
public void createToken( String name, long id, RecordAccess<R, Void> recordAccess ) { R record = recordAccess.create( id, null ).forChangingData(); record.setInUse( true ); record.setCreated(); Collection<DynamicRecord> nameRecords = store.allocateNameRecords( encodeString( name ) ); record.setNameId( (int) Iterables.first( nameRecords ).getId() ); record.addNameRecords( nameRecords ); } }
@Test public void shouldSetLatestConstraintRule() throws Exception { // Given SchemaRecord beforeRecords = serialize( rule, id, true, true); SchemaRecord afterRecords = serialize( rule, id, true, false); when( neoStores.getSchemaStore() ).thenReturn( schemaStore ); when( neoStores.getMetaDataStore() ).thenReturn( metaDataStore ); ConstraintRule schemaRule = ConstraintRule.constraintRule( id, ConstraintDescriptorFactory.uniqueForLabel( labelId, propertyKey ), 0 ); // WHEN visitSchemaRuleCommand( storeApplier, new SchemaRuleCommand( beforeRecords, afterRecords, schemaRule ) ); // THEN verify( schemaStore ).updateRecord( Iterables.first( afterRecords ) ); verify( metaDataStore ).setLatestConstraintIntroducingTx( txId ); }
private int createNewLabelId( String stringKey ) { int keyId = (int) labelTokenStore.nextId(); LabelTokenRecord record = new LabelTokenRecord( keyId ); record.setInUse( true ); record.setCreated(); Collection<DynamicRecord> keyRecords = labelTokenStore.allocateNameRecords( encodeString( stringKey ) ); record.setNameId( (int) Iterables.first( keyRecords ).getId() ); record.addNameRecords( keyRecords ); labelTokenStore.updateRecord( record ); tokenHolders.labelTokens().addToken( new NamedToken( stringKey, keyId ) ); return keyId; }
private int createNewRelationshipType( String name ) { int id = (int) relationshipTypeTokenStore.nextId(); RelationshipTypeTokenRecord record = new RelationshipTypeTokenRecord( id ); record.setInUse( true ); record.setCreated(); Collection<DynamicRecord> nameRecords = relationshipTypeTokenStore.allocateNameRecords( encodeString( name ) ); record.setNameId( (int) Iterables.first( nameRecords ).getId() ); record.addNameRecords( nameRecords ); relationshipTypeTokenStore.updateRecord( record ); tokenHolders.relationshipTypeTokens().addToken( new NamedToken( name, id ) ); return id; }
private int createNewPropertyKeyId( String stringKey ) { int keyId = (int) propertyKeyTokenStore.nextId(); PropertyKeyTokenRecord record = new PropertyKeyTokenRecord( keyId ); record.setInUse( true ); record.setCreated(); Collection<DynamicRecord> keyRecords = propertyKeyTokenStore.allocateNameRecords( encodeString( stringKey ) ); record.setNameId( (int) Iterables.first( keyRecords ).getId() ); record.addNameRecords( keyRecords ); propertyKeyTokenStore.updateRecord( record ); tokenHolders.propertyKeyTokens().addToken( new NamedToken( stringKey, keyId ) ); return keyId; }
private GraphDatabaseAPI databaseWithManyPropertyKeys( int propertyKeyCount ) { PageCache pageCache = pageCacheRule.getPageCache( fileSystemRule.get() ); StoreFactory storeFactory = new StoreFactory( testDirectory.databaseLayout(), Config.defaults(), new DefaultIdGeneratorFactory( fileSystemRule.get() ), pageCache, fileSystemRule.get(), NullLogProvider.getInstance(), EmptyVersionContextSupplier.EMPTY ); NeoStores neoStores = storeFactory.openAllNeoStores( true ); PropertyKeyTokenStore store = neoStores.getPropertyKeyTokenStore(); for ( int i = 0; i < propertyKeyCount; i++ ) { PropertyKeyTokenRecord record = new PropertyKeyTokenRecord( (int) store.nextId() ); record.setInUse( true ); Collection<DynamicRecord> nameRecords = store.allocateNameRecords( PropertyStore.encodeString( key( i ) ) ); record.addNameRecords( nameRecords ); record.setNameId( (int) Iterables.first( nameRecords ).getId() ); store.updateRecord( record ); } neoStores.close(); return database(); }