@Override protected PropertyRecord createNullRecord( long id ) { PropertyRecord record = new PropertyRecord( id ); record.setNextProp( 0 ); record.setPrevProp( 0 ); return record; }
currentRecord.setPrevProp( prevRecord.getId() );
@Test void shouldReportPropertyNotFirstInChain() { // given NodeRecord node = inUse( new NodeRecord( 42, false, NONE, 11 ) ); PropertyRecord property = add( inUse( new PropertyRecord( 11 ) ) ); property.setPrevProp( 6 ); // when ConsistencyReport.NodeConsistencyReport report = check( node ); // then verify( report ).propertyNotFirstInChain( property ); verifyNoMoreInteractions( report ); }
@Test void shouldReportPreviousPropertyNotInUse() { // given PropertyRecord property = inUse( new PropertyRecord( 42 ) ); PropertyRecord prev = add( notInUse( new PropertyRecord( 51 ) ) ); property.setPrevProp( prev.getId() ); // when ConsistencyReport.PropertyConsistencyReport report = check( property ); // then verify( report ).prevNotInUse( prev ); verifyNoMoreInteractions( report ); }
@Test void shouldReportPreviousPropertyNotReferringBack() { // given PropertyRecord property = inUse( new PropertyRecord( 42 ) ); PropertyRecord prev = add( inUse( new PropertyRecord( 51 ) ) ); property.setPrevProp( prev.getId() ); // when ConsistencyReport.PropertyConsistencyReport report = check( property ); // then verify( report ).previousDoesNotReferenceBack( prev ); verifyNoMoreInteractions( report ); }
@Test void shouldReportPropertyNotFirstInChain() { // given NeoStoreRecord record = new NeoStoreRecord(); PropertyRecord property = add( inUse( new PropertyRecord( 7 ) ) ); property.setPrevProp( 6 ); record.setNextProp( property.getId() ); // when ConsistencyReport.NeoStoreConsistencyReport report = check( record ); // then verify( report ).propertyNotFirstInChain( property ); verifyNoMoreInteractions( report ); } }
@Override protected PropertyRecord createExistingRecord( boolean light ) { PropertyRecord record = new PropertyRecord( ID ); record.setId( ID ); record.setNextProp( 2 ); record.setPrevProp( 4 ); record.setInUse( true ); PropertyBlock block = new PropertyBlock(); DynamicRecordAllocator stringAllocator = new ReusableRecordsAllocator( 64, new DynamicRecord( 7 ) ); Value value = Values.of( "a string too large to fit in the property block itself" ); PropertyStore.encodeValue( block, 6, value, stringAllocator, null, true ); if ( light ) { block.getValueRecords().clear(); } record.setPropertyBlock( block ); return record; }
assert nextPropRecord.inUse() : propRecord + "->" + nextPropRecord + " for " + primitive; nextPropRecord.setPrevProp( prevProp ); nextPropRecord.setChanged( primitive ); propRecord.setPrevProp( Record.NO_PREVIOUS_PROPERTY.intValue() ); propRecord.setNextProp( Record.NO_NEXT_PROPERTY.intValue() ); propRecord.setChanged( primitive );
propertyStore.updateRecord( currentRecord ); currentRecord = propertyRecord( nextPropertyId ); currentRecord.setPrevProp( prevId );
long prevProp = channel.getLong(); // 8 record.setNextProp( nextProp ); record.setPrevProp( prevProp ); boolean inUse = false; if ( (inUseFlag & Record.IN_USE.byteValue()) == Record.IN_USE.byteValue() )
@Test void shouldReportPropertyNotFirstInChain() { // given checkSingleDirection(); RelationshipRecord relationship = inUse( new RelationshipRecord( 42, 1, 2, 4 ) ); add( inUse( new RelationshipTypeTokenRecord( 4 ) ) ); relationship.setNextProp( 11 ); add( inUse( new NodeRecord( 1, false, 42, NONE ) ) ); add( inUse( new NodeRecord( 2, false, 42, NONE ) ) ); PropertyRecord property = add( inUse( new PropertyRecord( 11 ) ) ); property.setPrevProp( 6 ); // when RelationshipConsistencyReport report = check( relationship ); // then verify( report ).propertyNotFirstInChain( property ); verifyNoMoreInteractions( report ); }
long prevProp = channel.getLong(); // 8 record.setNextProp( nextProp ); record.setPrevProp( prevProp ); boolean inUse = false; if ( (inUseFlag & Record.IN_USE.byteValue()) == Record.IN_USE.byteValue() )
private void existingChain( ExpectedRecord... initialRecords ) { PropertyRecord prev = null; for ( ExpectedRecord initialRecord : initialRecords ) { PropertyRecord record = this.records.create( propertyStore.nextId(), primitive.record ).forChangingData(); record.setInUse( true ); existingRecord( record, initialRecord ); if ( prev == null ) { // This is the first one, update primitive to point to this primitive.record.setNextProp( record.getId() ); } else { // link property records together record.setPrevProp( prev.getId() ); prev.setNextProp( record.getId() ); } prev = record; } }
long prevProp = channel.getLong(); // 8 record.setNextProp( nextProp ); record.setPrevProp( prevProp );
long prevProp = channel.getLong(); // 8 record.setNextProp( nextProp ); record.setPrevProp( prevProp );
@Override public Generator<PropertyRecord> property() { return ( recordSize, format, recordId ) -> { PropertyRecord record = new PropertyRecord( recordId ); int maxProperties = random.intBetween( 1, 4 ); StandaloneDynamicRecordAllocator stringAllocator = new StandaloneDynamicRecordAllocator(); StandaloneDynamicRecordAllocator arrayAllocator = new StandaloneDynamicRecordAllocator(); record.setInUse( true ); int blocksOccupied = 0; for ( int i = 0; i < maxProperties && blocksOccupied < 4; ) { PropertyBlock block = new PropertyBlock(); // Dynamic records will not be written and read by the property record format, // that happens in the store where it delegates to a "sub" store. PropertyStore.encodeValue( block, random.nextInt( tokenBits ), random.nextValue(), stringAllocator, arrayAllocator, true ); int tentativeBlocksWithThisOne = blocksOccupied + block.getValueBlocks().length; if ( tentativeBlocksWithThisOne <= 4 ) { record.addPropertyBlock( block ); blocksOccupied = tentativeBlocksWithThisOne; } } record.setPrevProp( randomLongOrOccasionallyNull( propertyBits ) ); record.setNextProp( randomLongOrOccasionallyNull( propertyBits ) ); return record; }; }
secondRecord.setPrevProp( 1 );
secondRecord.setPrevProp( 1 );
primitive ).forChangingLinkage(); assert prevProp.getPrevProp() == Record.NO_PREVIOUS_PROPERTY.intValue(); prevProp.setPrevProp( freeHost.getId() ); freeHost.setNextProp( prevProp.getId() ); prevProp.setChanged( primitive );
@Override protected void transactionData( GraphStoreFixture.TransactionDataBuilder tx, GraphStoreFixture.IdGenerator next ) { PropertyRecord property = new PropertyRecord( next.property() ); property.setPrevProp( next.property() ); PropertyBlock block = new PropertyBlock(); block.setSingleBlock( next.propertyKey() | (((long) PropertyType.INT.intValue()) << 24) | (666L << 28) ); property.addPropertyBlock( block ); tx.create( property ); } } );