public boolean append()

in adb3client/src/main/java/com/alibaba/cloud/analyticdb/adb3client/impl/collector/RecordCollector.java [54:97]


	public boolean append(Record record) {
		if (startTimeMs == -1) {
			startTimeMs = System.currentTimeMillis();
		}
		Map<RecordKey, Record> recordMap = records;
		Map<RecordKey, Record> deleteMap = deleteRecords;

		RecordKey key = new RecordKey(record);
		Record origin = recordMap.get(key);
		if (origin != null) {
			switch (mode) {
			case INSERT_OR_IGNORE:
				origin.addAttachmentList(record.getAttachmentList());
				break;
			case INSERT_OR_REPLACE:
				record.cover(origin);
				byteSize -= origin.getByteSize();
				byteSize += record.getByteSize();
				recordMap.put(key, record);
				break;
			}
		} else {
			Record baseRecord;
			byteSize += record.getByteSize();
			recordMap.put(key, record);
			if (mode == WriteMode.INSERT_OR_REPLACE) {
				baseRecord = deleteMap.get(key);
				if (baseRecord == null) {
					size += 1;
				} else {
					byteSize -= baseRecord.getByteSize();
					record.cover(baseRecord);
					deleteMap.remove(key);
				}
			} else {
				++size;
			}
		}
		BatchState bs = getBatchState();
		if (bs != BatchState.NotEnough) {
			return true;
		}
		return false;
	}