in server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/CassandraEmailQueryView.java [81:174]
public CassandraEmailQueryView(CqlSession session) {
this.executor = new CassandraAsyncExecutor(session);
listMailboxContentBySentAt = session.prepare(selectFrom(TABLE_NAME_SENT_AT)
.column(MESSAGE_ID)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.orderBy(SENT_AT, DESC)
.limit(bindMarker(LIMIT_MARKER))
.build());
listMailboxContentByReceivedAt = session.prepare(selectFrom(TABLE_NAME_RECEIVED_AT)
.column(MESSAGE_ID)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.orderBy(RECEIVED_AT, DESC)
.limit(bindMarker(LIMIT_MARKER))
.build());
listMailboxContentSinceSentAt = session.prepare(selectFrom(TABLE_NAME_SENT_AT)
.column(MESSAGE_ID)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(SENT_AT).isGreaterThanOrEqualTo(bindMarker(SENT_AT))
.orderBy(SENT_AT, DESC)
.limit(bindMarker(LIMIT_MARKER))
.build());
listMailboxContentSinceReceivedAt = session.prepare(selectFrom(TABLE_NAME_RECEIVED_AT)
.columns(MESSAGE_ID, SENT_AT)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(RECEIVED_AT).isGreaterThanOrEqualTo(bindMarker(RECEIVED_AT))
.orderBy(RECEIVED_AT, DESC)
.build());
listMailboxContentBeforeReceivedAt = session.prepare(selectFrom(TABLE_NAME_RECEIVED_AT)
.columns(MESSAGE_ID, SENT_AT)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(RECEIVED_AT).isLessThanOrEqualTo(bindMarker(RECEIVED_AT))
.orderBy(RECEIVED_AT, DESC)
.build());
insertInLookupTable = session.prepare(insertInto(DATE_LOOKUP_TABLE)
.value(MAILBOX_ID, bindMarker(MAILBOX_ID))
.value(MESSAGE_ID, bindMarker(MESSAGE_ID))
.value(SENT_AT, bindMarker(SENT_AT))
.value(RECEIVED_AT, bindMarker(RECEIVED_AT))
.build());
insertSentAt = session.prepare(insertInto(TABLE_NAME_SENT_AT)
.value(MAILBOX_ID, bindMarker(MAILBOX_ID))
.value(MESSAGE_ID, bindMarker(MESSAGE_ID))
.value(SENT_AT, bindMarker(SENT_AT))
.build());
insertReceivedAt = session.prepare(insertInto(TABLE_NAME_RECEIVED_AT)
.value(MAILBOX_ID, bindMarker(MAILBOX_ID))
.value(MESSAGE_ID, bindMarker(MESSAGE_ID))
.value(RECEIVED_AT, bindMarker(RECEIVED_AT))
.value(SENT_AT, bindMarker(SENT_AT))
.build());
deleteLookupRecord = session.prepare(deleteFrom(DATE_LOOKUP_TABLE)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
.build());
deleteSentAt = session.prepare(deleteFrom(TABLE_NAME_SENT_AT)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
.whereColumn(SENT_AT).isEqualTo(bindMarker(SENT_AT))
.build());
deleteReceivedAt = session.prepare(QueryBuilder.deleteFrom(TABLE_NAME_RECEIVED_AT)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
.whereColumn(RECEIVED_AT).isEqualTo(bindMarker(RECEIVED_AT))
.build());
deleteAllLookupRecords = session.prepare(QueryBuilder.deleteFrom(DATE_LOOKUP_TABLE)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.build());
deleteAllSentAt = session.prepare(QueryBuilder.deleteFrom(TABLE_NAME_SENT_AT)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.build());
deleteAllReceivedAt = session.prepare(QueryBuilder.deleteFrom(TABLE_NAME_RECEIVED_AT)
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.build());
lookupDate = session.prepare(selectFrom(DATE_LOOKUP_TABLE)
.all()
.whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
.whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
.build());
}