private DBRecord splitRange(DBRecord rangeRecord, long newEnd) throws IOException {

		// Split range record
		DBRecord newRange = RANGES_SCHEMA.createRecord(newEnd + 1);
		newRange.setField(RANGE_TO_COL, rangeRecord.getFieldValue(RANGE_TO_COL));
		rangeRecord.setLongValue(RANGE_TO_COL, newEnd);
		rangeTable.putRecord(rangeRecord);
		rangeTable.putRecord(newRange);

		// Split related map records
		Field[] mapKeys = mapTable.findRecords(rangeRecord.getKeyField(), MAP_RANGE_KEY_COL);
		for (int i = 0; i < mapKeys.length; i++) {
			DBRecord mapRec = mapTable.getRecord(mapKeys[i]);
			mapRec.setKey(mapTable.getMaxKey() + 1);
			mapRec.setField(MAP_RANGE_KEY_COL, newRange.getKeyField());
			mapTable.putRecord(mapRec);
		}

		return newRange;
	}
Split a Range record and all related Map entries at a newEnd index.
A new Range record is created at newEnd+1 to the end of the original 
range.  New Map entries are created for this new range.
@param rangeRecord
@param newEnd
@return Record
@throws IOException
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/SharedRangeMapDB.java