Separate persistency for marker line (backend only)
authorMarcus Eggenberger <egs@quassel-irc.org>
Sun, 1 Nov 2009 13:11:31 +0000 (14:11 +0100)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sun, 1 Nov 2009 13:11:31 +0000 (14:11 +0100)
Sput: have fun! :)

180 files changed:
src/core/SQL/PostgreSQL/14/migrate_write_buffer.sql [deleted file]
src/core/SQL/PostgreSQL/15/delete_backlog_by_uid.sql [moved from src/core/SQL/PostgreSQL/14/delete_backlog_by_uid.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_backlog_for_buffer.sql [moved from src/core/SQL/PostgreSQL/14/delete_backlog_for_buffer.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_backlog_for_network.sql [moved from src/core/SQL/PostgreSQL/14/delete_backlog_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_buffer_for_bufferid.sql [moved from src/core/SQL/PostgreSQL/14/delete_buffer_for_bufferid.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_buffers_by_uid.sql [moved from src/core/SQL/PostgreSQL/14/delete_buffers_by_uid.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_buffers_for_network.sql [moved from src/core/SQL/PostgreSQL/14/delete_buffers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_identity.sql [moved from src/core/SQL/PostgreSQL/14/delete_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_ircservers_for_network.sql [moved from src/core/SQL/PostgreSQL/14/delete_ircservers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_network.sql [moved from src/core/SQL/PostgreSQL/14/delete_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_networks_by_uid.sql [moved from src/core/SQL/PostgreSQL/14/delete_networks_by_uid.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_nicks.sql [moved from src/core/SQL/PostgreSQL/14/delete_nicks.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/delete_quasseluser.sql [moved from src/core/SQL/PostgreSQL/14/delete_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_buffer.sql [moved from src/core/SQL/PostgreSQL/14/insert_buffer.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_identity.sql [moved from src/core/SQL/PostgreSQL/14/insert_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_message.sql [moved from src/core/SQL/PostgreSQL/14/insert_message.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_network.sql [moved from src/core/SQL/PostgreSQL/14/insert_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_nick.sql [moved from src/core/SQL/PostgreSQL/14/insert_nick.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_quasseluser.sql [moved from src/core/SQL/PostgreSQL/14/insert_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_sender.sql [moved from src/core/SQL/PostgreSQL/14/insert_sender.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_server.sql [moved from src/core/SQL/PostgreSQL/14/insert_server.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/insert_user_setting.sql [moved from src/core/SQL/PostgreSQL/14/insert_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_backlog.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_backlog.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_buffer.sql [new file with mode: 0644]
src/core/SQL/PostgreSQL/15/migrate_write_identity.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_identity_nick.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_identity_nick.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_ircserver.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_ircserver.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_network.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_quasseluser.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_sender.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_sender.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/migrate_write_usersetting.sql [moved from src/core/SQL/PostgreSQL/14/migrate_write_usersetting.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_authuser.sql [moved from src/core/SQL/PostgreSQL/14/select_authuser.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_bufferByName.sql [moved from src/core/SQL/PostgreSQL/14/select_bufferByName.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_bufferExists.sql [moved from src/core/SQL/PostgreSQL/14/select_bufferExists.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_buffer_by_id.sql [moved from src/core/SQL/PostgreSQL/14/select_buffer_by_id.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_buffer_lastseen_messages.sql [moved from src/core/SQL/PostgreSQL/14/select_buffer_lastseen_messages.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_buffer_markerlinemsgids.sql [new file with mode: 0644]
src/core/SQL/PostgreSQL/15/select_buffers.sql [moved from src/core/SQL/PostgreSQL/14/select_buffers.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_buffers_for_network.sql [moved from src/core/SQL/PostgreSQL/14/select_buffers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_checkidentity.sql [moved from src/core/SQL/PostgreSQL/14/select_checkidentity.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_connected_networks.sql [moved from src/core/SQL/PostgreSQL/14/select_connected_networks.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_identities.sql [moved from src/core/SQL/PostgreSQL/14/select_identities.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_internaluser.sql [moved from src/core/SQL/PostgreSQL/14/select_internaluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_messages.sql [moved from src/core/SQL/PostgreSQL/14/select_messages.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_messagesAll.sql [moved from src/core/SQL/PostgreSQL/14/select_messagesAll.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_messagesAllNew.sql [moved from src/core/SQL/PostgreSQL/14/select_messagesAllNew.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_messagesNewerThan.sql [moved from src/core/SQL/PostgreSQL/14/select_messagesNewerThan.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_messagesRange.sql [moved from src/core/SQL/PostgreSQL/14/select_messagesRange.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_networkExists.sql [moved from src/core/SQL/PostgreSQL/14/select_networkExists.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_network_awaymsg.sql [moved from src/core/SQL/PostgreSQL/14/select_network_awaymsg.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_network_usermode.sql [moved from src/core/SQL/PostgreSQL/14/select_network_usermode.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_networks_for_user.sql [moved from src/core/SQL/PostgreSQL/14/select_networks_for_user.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_nicks.sql [moved from src/core/SQL/PostgreSQL/14/select_nicks.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_persistent_channels.sql [moved from src/core/SQL/PostgreSQL/14/select_persistent_channels.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_servers_for_network.sql [moved from src/core/SQL/PostgreSQL/14/select_servers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_user_setting.sql [moved from src/core/SQL/PostgreSQL/14/select_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/select_userid.sql [moved from src/core/SQL/PostgreSQL/14/select_userid.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_000_quasseluser.sql [moved from src/core/SQL/PostgreSQL/14/setup_000_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_010_sender.sql [moved from src/core/SQL/PostgreSQL/14/setup_010_sender.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_020_identity.sql [moved from src/core/SQL/PostgreSQL/14/setup_020_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_030_identity_nick.sql [moved from src/core/SQL/PostgreSQL/14/setup_030_identity_nick.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_040_network.sql [moved from src/core/SQL/PostgreSQL/14/setup_040_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_050_buffer.sql [moved from src/core/SQL/PostgreSQL/14/setup_050_buffer.sql with 92% similarity]
src/core/SQL/PostgreSQL/15/setup_060_backlog.sql [moved from src/core/SQL/PostgreSQL/14/setup_060_backlog.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_070_coreinfo.sql [moved from src/core/SQL/PostgreSQL/14/setup_070_coreinfo.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_080_ircservers.sql [moved from src/core/SQL/PostgreSQL/14/setup_080_ircservers.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_090_backlog_idx.sql [moved from src/core/SQL/PostgreSQL/14/setup_090_backlog_idx.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_100_user_setting.sql [moved from src/core/SQL/PostgreSQL/14/setup_100_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_110_alter_sender_seq.sql [moved from src/core/SQL/PostgreSQL/14/setup_110_alter_sender_seq.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/setup_120_alter_messageid_seq.sql [moved from src/core/SQL/PostgreSQL/14/setup_120_alter_messageid_seq.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_backlog_bufferid.sql [moved from src/core/SQL/PostgreSQL/14/update_backlog_bufferid.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_buffer_lastseen.sql [moved from src/core/SQL/PostgreSQL/14/update_buffer_lastseen.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_buffer_markerlinemsgid.sql [new file with mode: 0644]
src/core/SQL/PostgreSQL/15/update_buffer_name.sql [moved from src/core/SQL/PostgreSQL/14/update_buffer_name.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_buffer_persistent_channel.sql [moved from src/core/SQL/PostgreSQL/14/update_buffer_persistent_channel.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_buffer_set_channel_key.sql [moved from src/core/SQL/PostgreSQL/14/update_buffer_set_channel_key.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_identity.sql [moved from src/core/SQL/PostgreSQL/14/update_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_network.sql [moved from src/core/SQL/PostgreSQL/14/update_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_network_connected.sql [moved from src/core/SQL/PostgreSQL/14/update_network_connected.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_network_set_awaymsg.sql [moved from src/core/SQL/PostgreSQL/14/update_network_set_awaymsg.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_network_set_usermode.sql [moved from src/core/SQL/PostgreSQL/14/update_network_set_usermode.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_user_setting.sql [moved from src/core/SQL/PostgreSQL/14/update_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_username.sql [moved from src/core/SQL/PostgreSQL/14/update_username.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/update_userpassword.sql [moved from src/core/SQL/PostgreSQL/14/update_userpassword.sql with 100% similarity]
src/core/SQL/PostgreSQL/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql [new file with mode: 0644]
src/core/SQL/SQLite/16/delete_backlog_by_uid.sql [moved from src/core/SQL/SQLite/15/delete_backlog_by_uid.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_backlog_for_buffer.sql [moved from src/core/SQL/SQLite/15/delete_backlog_for_buffer.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_backlog_for_network.sql [moved from src/core/SQL/SQLite/15/delete_backlog_for_network.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_buffer_for_bufferid.sql [moved from src/core/SQL/SQLite/15/delete_buffer_for_bufferid.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_buffers_by_uid.sql [moved from src/core/SQL/SQLite/15/delete_buffers_by_uid.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_buffers_for_network.sql [moved from src/core/SQL/SQLite/15/delete_buffers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_identity.sql [moved from src/core/SQL/SQLite/15/delete_identity.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_ircservers_for_network.sql [moved from src/core/SQL/SQLite/15/delete_ircservers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_network.sql [moved from src/core/SQL/SQLite/15/delete_network.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_networks_by_uid.sql [moved from src/core/SQL/SQLite/15/delete_networks_by_uid.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_nicks.sql [moved from src/core/SQL/SQLite/15/delete_nicks.sql with 100% similarity]
src/core/SQL/SQLite/16/delete_quasseluser.sql [moved from src/core/SQL/SQLite/15/delete_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_buffer.sql [moved from src/core/SQL/SQLite/15/insert_buffer.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_identity.sql [moved from src/core/SQL/SQLite/15/insert_identity.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_message.sql [moved from src/core/SQL/SQLite/15/insert_message.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_network.sql [moved from src/core/SQL/SQLite/15/insert_network.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_nick.sql [moved from src/core/SQL/SQLite/15/insert_nick.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_quasseluser.sql [moved from src/core/SQL/SQLite/15/insert_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_sender.sql [moved from src/core/SQL/SQLite/15/insert_sender.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_server.sql [moved from src/core/SQL/SQLite/15/insert_server.sql with 100% similarity]
src/core/SQL/SQLite/16/insert_user_setting.sql [moved from src/core/SQL/SQLite/15/insert_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_backlog.sql [moved from src/core/SQL/SQLite/15/migrate_read_backlog.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_buffer.sql [moved from src/core/SQL/SQLite/15/migrate_read_buffer.sql with 55% similarity]
src/core/SQL/SQLite/16/migrate_read_identity.sql [moved from src/core/SQL/SQLite/15/migrate_read_identity.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_identity_nick.sql [moved from src/core/SQL/SQLite/15/migrate_read_identity_nick.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_ircserver.sql [moved from src/core/SQL/SQLite/15/migrate_read_ircserver.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_network.sql [moved from src/core/SQL/SQLite/15/migrate_read_network.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_quasseluser.sql [moved from src/core/SQL/SQLite/15/migrate_read_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_sender.sql [moved from src/core/SQL/SQLite/15/migrate_read_sender.sql with 100% similarity]
src/core/SQL/SQLite/16/migrate_read_usersetting.sql [moved from src/core/SQL/SQLite/15/migrate_read_usersetting.sql with 100% similarity]
src/core/SQL/SQLite/16/select_authuser.sql [moved from src/core/SQL/SQLite/15/select_authuser.sql with 100% similarity]
src/core/SQL/SQLite/16/select_bufferByName.sql [moved from src/core/SQL/SQLite/15/select_bufferByName.sql with 100% similarity]
src/core/SQL/SQLite/16/select_bufferExists.sql [moved from src/core/SQL/SQLite/15/select_bufferExists.sql with 100% similarity]
src/core/SQL/SQLite/16/select_buffer_by_id.sql [moved from src/core/SQL/SQLite/15/select_buffer_by_id.sql with 100% similarity]
src/core/SQL/SQLite/16/select_buffer_lastseen_messages.sql [moved from src/core/SQL/SQLite/15/select_buffer_lastseen_messages.sql with 100% similarity]
src/core/SQL/SQLite/16/select_buffer_markerlinemsgids.sql [new file with mode: 0644]
src/core/SQL/SQLite/16/select_buffers.sql [moved from src/core/SQL/SQLite/15/select_buffers.sql with 100% similarity]
src/core/SQL/SQLite/16/select_buffers_for_merge.sql [moved from src/core/SQL/SQLite/15/select_buffers_for_merge.sql with 100% similarity]
src/core/SQL/SQLite/16/select_buffers_for_network.sql [moved from src/core/SQL/SQLite/15/select_buffers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/16/select_checkidentity.sql [moved from src/core/SQL/SQLite/15/select_checkidentity.sql with 100% similarity]
src/core/SQL/SQLite/16/select_connected_networks.sql [moved from src/core/SQL/SQLite/15/select_connected_networks.sql with 100% similarity]
src/core/SQL/SQLite/16/select_identities.sql [moved from src/core/SQL/SQLite/15/select_identities.sql with 100% similarity]
src/core/SQL/SQLite/16/select_internaluser.sql [moved from src/core/SQL/SQLite/15/select_internaluser.sql with 100% similarity]
src/core/SQL/SQLite/16/select_messages.sql [moved from src/core/SQL/SQLite/15/select_messages.sql with 100% similarity]
src/core/SQL/SQLite/16/select_messagesAll.sql [moved from src/core/SQL/SQLite/15/select_messagesAll.sql with 100% similarity]
src/core/SQL/SQLite/16/select_messagesAllNew.sql [moved from src/core/SQL/SQLite/15/select_messagesAllNew.sql with 100% similarity]
src/core/SQL/SQLite/16/select_messagesNewerThan.sql [moved from src/core/SQL/SQLite/15/select_messagesNewerThan.sql with 100% similarity]
src/core/SQL/SQLite/16/select_messagesNewestK.sql [moved from src/core/SQL/SQLite/15/select_messagesNewestK.sql with 100% similarity]
src/core/SQL/SQLite/16/select_networkExists.sql [moved from src/core/SQL/SQLite/15/select_networkExists.sql with 100% similarity]
src/core/SQL/SQLite/16/select_network_awaymsg.sql [moved from src/core/SQL/SQLite/15/select_network_awaymsg.sql with 100% similarity]
src/core/SQL/SQLite/16/select_network_usermode.sql [moved from src/core/SQL/SQLite/15/select_network_usermode.sql with 100% similarity]
src/core/SQL/SQLite/16/select_networks_for_user.sql [moved from src/core/SQL/SQLite/15/select_networks_for_user.sql with 100% similarity]
src/core/SQL/SQLite/16/select_nicks.sql [moved from src/core/SQL/SQLite/15/select_nicks.sql with 100% similarity]
src/core/SQL/SQLite/16/select_persistent_channels.sql [moved from src/core/SQL/SQLite/15/select_persistent_channels.sql with 100% similarity]
src/core/SQL/SQLite/16/select_servers_for_network.sql [moved from src/core/SQL/SQLite/15/select_servers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/16/select_user_setting.sql [moved from src/core/SQL/SQLite/15/select_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/16/select_userid.sql [moved from src/core/SQL/SQLite/15/select_userid.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_000_quasseluser.sql [moved from src/core/SQL/SQLite/15/setup_000_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_010_sender.sql [moved from src/core/SQL/SQLite/15/setup_010_sender.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_020_network.sql [moved from src/core/SQL/SQLite/15/setup_020_network.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_030_buffer.sql [moved from src/core/SQL/SQLite/15/setup_030_buffer.sql with 89% similarity]
src/core/SQL/SQLite/16/setup_040_buffer_idx.sql [moved from src/core/SQL/SQLite/15/setup_040_buffer_idx.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_050_buffer_cname_idx.sql [moved from src/core/SQL/SQLite/15/setup_050_buffer_cname_idx.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_060_backlog.sql [moved from src/core/SQL/SQLite/15/setup_060_backlog.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_070_coreinfo.sql [moved from src/core/SQL/SQLite/15/setup_070_coreinfo.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_080_ircservers.sql [moved from src/core/SQL/SQLite/15/setup_080_ircservers.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_090_backlog_idx.sql [moved from src/core/SQL/SQLite/15/setup_090_backlog_idx.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_100_backlog_idx2.sql [moved from src/core/SQL/SQLite/15/setup_100_backlog_idx2.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_110_buffer_user_idx.sql [moved from src/core/SQL/SQLite/15/setup_110_buffer_user_idx.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_120_user_setting.sql [moved from src/core/SQL/SQLite/15/setup_120_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_130_identity.sql [moved from src/core/SQL/SQLite/15/setup_130_identity.sql with 100% similarity]
src/core/SQL/SQLite/16/setup_140_identity_nick.sql [moved from src/core/SQL/SQLite/15/setup_140_identity_nick.sql with 100% similarity]
src/core/SQL/SQLite/16/update_backlog_bufferid.sql [moved from src/core/SQL/SQLite/15/update_backlog_bufferid.sql with 100% similarity]
src/core/SQL/SQLite/16/update_buffer_lastseen.sql [moved from src/core/SQL/SQLite/15/update_buffer_lastseen.sql with 100% similarity]
src/core/SQL/SQLite/16/update_buffer_markerlinemsgid.sql [new file with mode: 0644]
src/core/SQL/SQLite/16/update_buffer_name.sql [moved from src/core/SQL/SQLite/15/update_buffer_name.sql with 100% similarity]
src/core/SQL/SQLite/16/update_buffer_persistent_channel.sql [moved from src/core/SQL/SQLite/15/update_buffer_persistent_channel.sql with 100% similarity]
src/core/SQL/SQLite/16/update_buffer_set_channel_key.sql [moved from src/core/SQL/SQLite/15/update_buffer_set_channel_key.sql with 100% similarity]
src/core/SQL/SQLite/16/update_identity.sql [moved from src/core/SQL/SQLite/15/update_identity.sql with 100% similarity]
src/core/SQL/SQLite/16/update_network.sql [moved from src/core/SQL/SQLite/15/update_network.sql with 100% similarity]
src/core/SQL/SQLite/16/update_network_connected.sql [moved from src/core/SQL/SQLite/15/update_network_connected.sql with 100% similarity]
src/core/SQL/SQLite/16/update_network_set_awaymsg.sql [moved from src/core/SQL/SQLite/15/update_network_set_awaymsg.sql with 100% similarity]
src/core/SQL/SQLite/16/update_network_set_usermode.sql [moved from src/core/SQL/SQLite/15/update_network_set_usermode.sql with 100% similarity]
src/core/SQL/SQLite/16/update_user_setting.sql [moved from src/core/SQL/SQLite/15/update_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/16/update_username.sql [moved from src/core/SQL/SQLite/15/update_username.sql with 100% similarity]
src/core/SQL/SQLite/16/update_userpassword.sql [moved from src/core/SQL/SQLite/15/update_userpassword.sql with 100% similarity]
src/core/SQL/SQLite/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql [new file with mode: 0644]
src/core/abstractsqlstorage.h
src/core/core.h
src/core/postgresqlstorage.cpp
src/core/postgresqlstorage.h
src/core/sql.qrc
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h
src/core/storage.h

diff --git a/src/core/SQL/PostgreSQL/14/migrate_write_buffer.sql b/src/core/SQL/PostgreSQL/14/migrate_write_buffer.sql
deleted file mode 100644 (file)
index d2bf1f8..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-INSERT INTO buffer (bufferid, userid, groupid, networkid, buffername, buffercname, buffertype, lastseenmsgid, key, joined)
-VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
diff --git a/src/core/SQL/PostgreSQL/15/migrate_write_buffer.sql b/src/core/SQL/PostgreSQL/15/migrate_write_buffer.sql
new file mode 100644 (file)
index 0000000..cfa900b
--- /dev/null
@@ -0,0 +1,2 @@
+INSERT INTO buffer (bufferid, userid, groupid, networkid, buffername, buffercname, buffertype, lastseenmsgid, markerlinemsgid, key, joined)
+VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
diff --git a/src/core/SQL/PostgreSQL/15/select_buffer_markerlinemsgids.sql b/src/core/SQL/PostgreSQL/15/select_buffer_markerlinemsgids.sql
new file mode 100644 (file)
index 0000000..10cccaf
--- /dev/null
@@ -0,0 +1,3 @@
+SELECT bufferid, markerlinemsgid
+FROM buffer
+WHERE userid = :userid
@@ -7,6 +7,7 @@ create TABLE buffer (
        buffercname varchar(128) NOT NULL, -- CANONICAL BUFFER NAME (lowercase version)
        buffertype integer NOT NULL DEFAULT 0,
        lastseenmsgid integer NOT NULL DEFAULT 0,
+       markerlinemsgid integer NOT NULL DEFAULT 0,
        key varchar(128),
        joined boolean NOT NULL DEFAULT FALSE, -- BOOL
        UNIQUE(userid, networkid, buffercname)
diff --git a/src/core/SQL/PostgreSQL/15/update_buffer_markerlinemsgid.sql b/src/core/SQL/PostgreSQL/15/update_buffer_markerlinemsgid.sql
new file mode 100644 (file)
index 0000000..7d9ba49
--- /dev/null
@@ -0,0 +1,3 @@
+UPDATE buffer
+SET markerlinemsgid = :markerlinemsgid
+WHERE userid = :userid AND bufferid = :bufferid
diff --git a/src/core/SQL/PostgreSQL/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql b/src/core/SQL/PostgreSQL/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql
new file mode 100644 (file)
index 0000000..f0ef5fe
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE buffer
+ADD COLUMN markerlinemsgid integer NOT NULL DEFAULT 0
@@ -1,2 +1,2 @@
-SELECT bufferid, userid, groupid, networkid, buffername, buffercname, buffertype, lastseenmsgid, key, joined
+SELECT bufferid, userid, groupid, networkid, buffername, buffercname, buffertype, lastseenmsgid, markerlinemsgid, key, joined
 FROM buffer
diff --git a/src/core/SQL/SQLite/16/select_buffer_markerlinemsgids.sql b/src/core/SQL/SQLite/16/select_buffer_markerlinemsgids.sql
new file mode 100644 (file)
index 0000000..10cccaf
--- /dev/null
@@ -0,0 +1,3 @@
+SELECT bufferid, markerlinemsgid
+FROM buffer
+WHERE userid = :userid
similarity index 89%
rename from src/core/SQL/SQLite/15/setup_030_buffer.sql
rename to src/core/SQL/SQLite/16/setup_030_buffer.sql
index fccc382..facb75c 100644 (file)
@@ -7,6 +7,7 @@ CREATE TABLE buffer (
        buffercname TEXT NOT NULL, -- CANONICAL BUFFER NAME (lowercase version)
        buffertype INTEGER NOT NULL DEFAULT 0,
        lastseenmsgid INTEGER NOT NULL DEFAULT 0,
+       markerlinemsgid INTEGER NOT NULL DEFAULT 0,
        key TEXT,
        joined INTEGER NOT NULL DEFAULT 0 -- BOOL
 )
diff --git a/src/core/SQL/SQLite/16/update_buffer_markerlinemsgid.sql b/src/core/SQL/SQLite/16/update_buffer_markerlinemsgid.sql
new file mode 100644 (file)
index 0000000..7d9ba49
--- /dev/null
@@ -0,0 +1,3 @@
+UPDATE buffer
+SET markerlinemsgid = :markerlinemsgid
+WHERE userid = :userid AND bufferid = :bufferid
diff --git a/src/core/SQL/SQLite/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql b/src/core/SQL/SQLite/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql
new file mode 100644 (file)
index 0000000..ab8c8a1
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE buffer
+ADD COLUMN markerlinemsgid INTEGER NOT NULL DEFAULT 0
index c6c5521..8990551 100644 (file)
@@ -198,6 +198,7 @@ public:
     QString buffercname;
     int buffertype;
     int lastseenmsgid;
+    int markerlinemsgid;
     QString key;
     bool joined;
   };
index 49910a9..d3f2fab 100644 (file)
@@ -378,6 +378,28 @@ public:
     return instance()->_storage->bufferLastSeenMsgIds(user);
   }
 
+  //! Update the MarkerLineMsgId for a Buffer
+  /** This Method is used to make the marker line position of a Buffer persistent
+   *  \note This method is threadsafe.
+   *
+   * \param user      The Owner of that Buffer
+   * \param bufferId  The buffer id
+   * \param MsgId     The Message id where the marker line should be placed
+   */
+  static inline void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId) {
+    return instance()->_storage->setBufferMarkerLineMsg(user, bufferId, msgId);
+  }
+
+  //! Get a Hash of all marker line message ids
+  /** This Method is called when the Quassel Core is started to restore the MarkerLineMsgIds
+   *  \note This method is threadsafe.
+   *
+   * \param user      The Owner of the buffers
+   */
+  static inline QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user) {
+    return instance()->_storage->bufferMarkerLineMsgIds(user);
+  }
+
   const QDateTime &startTime() const { return _startTime; }
 
   static inline QTimer &syncTimer() { return instance()->_storageSyncTimer; }
index d8a6284..4a5a88c 100644 (file)
@@ -48,6 +48,7 @@ AbstractSqlMigrationWriter *PostgreSqlStorage::createMigrationWriter() {
 }
 
 bool PostgreSqlStorage::isAvailable() const {
+  qDebug() << QSqlDatabase::drivers();
   if(!QSqlDatabase::isDriverAvailable("QPSQL")) return false;
   return true;
 }
@@ -1142,6 +1143,44 @@ QHash<BufferId, MsgId> PostgreSqlStorage::bufferLastSeenMsgIds(UserId user) {
   return lastSeenHash;
 }
 
+void PostgreSqlStorage::setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId) {
+  QSqlQuery query(logDb());
+  query.prepare(queryString("update_buffer_markerlinemsgid"));
+
+  query.bindValue(":userid", user.toInt());
+  query.bindValue(":bufferid", bufferId.toInt());
+  query.bindValue(":lastseenmsgid", msgId.toInt());
+  safeExec(query);
+  watchQuery(query);
+}
+
+QHash<BufferId, MsgId> PostgreSqlStorage::bufferMarkerLineMsgIds(UserId user) {
+  QHash<BufferId, MsgId> markerLineHash;
+
+  QSqlDatabase db = logDb();
+  if(!beginReadOnlyTransaction(db)) {
+    qWarning() << "PostgreSqlStorage::bufferMarkerLineMsgIds(): cannot start read only transaction!";
+    qWarning() << " -" << qPrintable(db.lastError().text());
+    return markerLineHash;
+  }
+
+  QSqlQuery query(db);
+  query.prepare(queryString("select_buffer_markerlinemsgids"));
+  query.bindValue(":userid", user.toInt());
+  safeExec(query);
+  if(!watchQuery(query)) {
+    db.rollback();
+    return markerLineHash;
+  }
+
+  while(query.next()) {
+    markerLineHash[query.value(0).toInt()] = query.value(1).toInt();
+  }
+
+  db.commit();
+  return markerLineHash;
+}
+
 bool PostgreSqlStorage::logMessage(Message &msg) {
   QSqlDatabase db = logDb();
   if(!db.transaction()) {
@@ -1626,8 +1665,9 @@ bool PostgreSqlMigrationWriter::writeMo(const BufferMO &buffer) {
   bindValue(5, buffer.buffercname);
   bindValue(6, (int)buffer.buffertype);
   bindValue(7, buffer.lastseenmsgid);
-  bindValue(8, buffer.key);
-  bindValue(9, buffer.joined);
+  bindValue(8, buffer.markerlinemsgid);
+  bindValue(9, buffer.key);
+  bindValue(10, buffer.joined);
   return exec();
 }
 
index 4d18d11..5b6a196 100644 (file)
@@ -92,6 +92,8 @@ public slots:
   virtual bool mergeBuffersPermanently(const UserId &user, const BufferId &bufferId1, const BufferId &bufferId2);
   virtual void setBufferLastSeenMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
   virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
+  virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
+  virtual QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user);
 
   /* Message handling */
   virtual bool logMessage(Message &msg);
index 3e041df..07c1fdf 100644 (file)
@@ -1,86 +1,89 @@
 <!DOCTYPE RCC><RCC version="1.0">
 <qresource>
-    <file>./SQL/PostgreSQL/14/delete_backlog_by_uid.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_backlog_for_buffer.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_backlog_for_network.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_buffer_for_bufferid.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_buffers_by_uid.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_buffers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_identity.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_ircservers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_network.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_networks_by_uid.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_nicks.sql</file>
-    <file>./SQL/PostgreSQL/14/delete_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_buffer.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_identity.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_message.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_network.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_nick.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_sender.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_server.sql</file>
-    <file>./SQL/PostgreSQL/14/insert_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_backlog.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_buffer.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_identity.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_identity_nick.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_ircserver.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_network.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_sender.sql</file>
-    <file>./SQL/PostgreSQL/14/migrate_write_usersetting.sql</file>
-    <file>./SQL/PostgreSQL/14/select_authuser.sql</file>
-    <file>./SQL/PostgreSQL/14/select_buffer_by_id.sql</file>
-    <file>./SQL/PostgreSQL/14/select_buffer_lastseen_messages.sql</file>
-    <file>./SQL/PostgreSQL/14/select_bufferByName.sql</file>
-    <file>./SQL/PostgreSQL/14/select_bufferExists.sql</file>
-    <file>./SQL/PostgreSQL/14/select_buffers.sql</file>
-    <file>./SQL/PostgreSQL/14/select_buffers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/14/select_checkidentity.sql</file>
-    <file>./SQL/PostgreSQL/14/select_connected_networks.sql</file>
-    <file>./SQL/PostgreSQL/14/select_identities.sql</file>
-    <file>./SQL/PostgreSQL/14/select_internaluser.sql</file>
-    <file>./SQL/PostgreSQL/14/select_messages.sql</file>
-    <file>./SQL/PostgreSQL/14/select_messagesAll.sql</file>
-    <file>./SQL/PostgreSQL/14/select_messagesAllNew.sql</file>
-    <file>./SQL/PostgreSQL/14/select_messagesNewerThan.sql</file>
-    <file>./SQL/PostgreSQL/14/select_messagesRange.sql</file>
-    <file>./SQL/PostgreSQL/14/select_network_awaymsg.sql</file>
-    <file>./SQL/PostgreSQL/14/select_network_usermode.sql</file>
-    <file>./SQL/PostgreSQL/14/select_networkExists.sql</file>
-    <file>./SQL/PostgreSQL/14/select_networks_for_user.sql</file>
-    <file>./SQL/PostgreSQL/14/select_nicks.sql</file>
-    <file>./SQL/PostgreSQL/14/select_persistent_channels.sql</file>
-    <file>./SQL/PostgreSQL/14/select_servers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/14/select_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/14/select_userid.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_000_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_010_sender.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_020_identity.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_030_identity_nick.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_040_network.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_050_buffer.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_060_backlog.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_070_coreinfo.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_080_ircservers.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_090_backlog_idx.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_100_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_110_alter_sender_seq.sql</file>
-    <file>./SQL/PostgreSQL/14/setup_120_alter_messageid_seq.sql</file>
-    <file>./SQL/PostgreSQL/14/update_backlog_bufferid.sql</file>
-    <file>./SQL/PostgreSQL/14/update_buffer_lastseen.sql</file>
-    <file>./SQL/PostgreSQL/14/update_buffer_name.sql</file>
-    <file>./SQL/PostgreSQL/14/update_buffer_persistent_channel.sql</file>
-    <file>./SQL/PostgreSQL/14/update_buffer_set_channel_key.sql</file>
-    <file>./SQL/PostgreSQL/14/update_identity.sql</file>
-    <file>./SQL/PostgreSQL/14/update_network.sql</file>
-    <file>./SQL/PostgreSQL/14/update_network_connected.sql</file>
-    <file>./SQL/PostgreSQL/14/update_network_set_awaymsg.sql</file>
-    <file>./SQL/PostgreSQL/14/update_network_set_usermode.sql</file>
-    <file>./SQL/PostgreSQL/14/update_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/14/update_username.sql</file>
-    <file>./SQL/PostgreSQL/14/update_userpassword.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_backlog_by_uid.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_backlog_for_buffer.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_backlog_for_network.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_buffer_for_bufferid.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_buffers_by_uid.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_buffers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_identity.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_ircservers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_network.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_networks_by_uid.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_nicks.sql</file>
+    <file>./SQL/PostgreSQL/15/delete_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_buffer.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_identity.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_message.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_network.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_nick.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_sender.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_server.sql</file>
+    <file>./SQL/PostgreSQL/15/insert_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_backlog.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_buffer.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_identity.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_identity_nick.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_ircserver.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_network.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_sender.sql</file>
+    <file>./SQL/PostgreSQL/15/migrate_write_usersetting.sql</file>
+    <file>./SQL/PostgreSQL/15/select_authuser.sql</file>
+    <file>./SQL/PostgreSQL/15/select_buffer_by_id.sql</file>
+    <file>./SQL/PostgreSQL/15/select_buffer_lastseen_messages.sql</file>
+    <file>./SQL/PostgreSQL/15/select_buffer_markerlinemsgids.sql</file>
+    <file>./SQL/PostgreSQL/15/select_bufferByName.sql</file>
+    <file>./SQL/PostgreSQL/15/select_bufferExists.sql</file>
+    <file>./SQL/PostgreSQL/15/select_buffers.sql</file>
+    <file>./SQL/PostgreSQL/15/select_buffers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/15/select_checkidentity.sql</file>
+    <file>./SQL/PostgreSQL/15/select_connected_networks.sql</file>
+    <file>./SQL/PostgreSQL/15/select_identities.sql</file>
+    <file>./SQL/PostgreSQL/15/select_internaluser.sql</file>
+    <file>./SQL/PostgreSQL/15/select_messages.sql</file>
+    <file>./SQL/PostgreSQL/15/select_messagesAll.sql</file>
+    <file>./SQL/PostgreSQL/15/select_messagesAllNew.sql</file>
+    <file>./SQL/PostgreSQL/15/select_messagesNewerThan.sql</file>
+    <file>./SQL/PostgreSQL/15/select_messagesRange.sql</file>
+    <file>./SQL/PostgreSQL/15/select_network_awaymsg.sql</file>
+    <file>./SQL/PostgreSQL/15/select_network_usermode.sql</file>
+    <file>./SQL/PostgreSQL/15/select_networkExists.sql</file>
+    <file>./SQL/PostgreSQL/15/select_networks_for_user.sql</file>
+    <file>./SQL/PostgreSQL/15/select_nicks.sql</file>
+    <file>./SQL/PostgreSQL/15/select_persistent_channels.sql</file>
+    <file>./SQL/PostgreSQL/15/select_servers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/15/select_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/15/select_userid.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_000_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_010_sender.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_020_identity.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_030_identity_nick.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_040_network.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_050_buffer.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_060_backlog.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_070_coreinfo.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_080_ircservers.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_090_backlog_idx.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_100_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_110_alter_sender_seq.sql</file>
+    <file>./SQL/PostgreSQL/15/setup_120_alter_messageid_seq.sql</file>
+    <file>./SQL/PostgreSQL/15/update_backlog_bufferid.sql</file>
+    <file>./SQL/PostgreSQL/15/update_buffer_lastseen.sql</file>
+    <file>./SQL/PostgreSQL/15/update_buffer_markerlinemsgid.sql</file>
+    <file>./SQL/PostgreSQL/15/update_buffer_name.sql</file>
+    <file>./SQL/PostgreSQL/15/update_buffer_persistent_channel.sql</file>
+    <file>./SQL/PostgreSQL/15/update_buffer_set_channel_key.sql</file>
+    <file>./SQL/PostgreSQL/15/update_identity.sql</file>
+    <file>./SQL/PostgreSQL/15/update_network.sql</file>
+    <file>./SQL/PostgreSQL/15/update_network_connected.sql</file>
+    <file>./SQL/PostgreSQL/15/update_network_set_awaymsg.sql</file>
+    <file>./SQL/PostgreSQL/15/update_network_set_usermode.sql</file>
+    <file>./SQL/PostgreSQL/15/update_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/15/update_username.sql</file>
+    <file>./SQL/PostgreSQL/15/update_userpassword.sql</file>
+    <file>./SQL/PostgreSQL/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql</file>
     <file>./SQL/SQLite/1/upgrade_000_drop_coreinfo.sql</file>
     <file>./SQL/SQLite/1/upgrade_010_create_coreinfo.sql</file>
     <file>./SQL/SQLite/1/upgrade_020_update_schemaversion.sql</file>
     <file>./SQL/SQLite/14/upgrade_010_create_networktable.sql</file>
     <file>./SQL/SQLite/14/upgrade_030_copy_networktable.sql</file>
     <file>./SQL/SQLite/14/upgrade_040_drop_networkold.sql</file>
-    <file>./SQL/SQLite/15/delete_backlog_by_uid.sql</file>
-    <file>./SQL/SQLite/15/delete_backlog_for_buffer.sql</file>
-    <file>./SQL/SQLite/15/delete_backlog_for_network.sql</file>
-    <file>./SQL/SQLite/15/delete_buffer_for_bufferid.sql</file>
-    <file>./SQL/SQLite/15/delete_buffers_by_uid.sql</file>
-    <file>./SQL/SQLite/15/delete_buffers_for_network.sql</file>
-    <file>./SQL/SQLite/15/delete_identity.sql</file>
-    <file>./SQL/SQLite/15/delete_ircservers_for_network.sql</file>
-    <file>./SQL/SQLite/15/delete_network.sql</file>
-    <file>./SQL/SQLite/15/delete_networks_by_uid.sql</file>
-    <file>./SQL/SQLite/15/delete_nicks.sql</file>
-    <file>./SQL/SQLite/15/delete_quasseluser.sql</file>
-    <file>./SQL/SQLite/15/insert_buffer.sql</file>
-    <file>./SQL/SQLite/15/insert_identity.sql</file>
-    <file>./SQL/SQLite/15/insert_message.sql</file>
-    <file>./SQL/SQLite/15/insert_network.sql</file>
-    <file>./SQL/SQLite/15/insert_nick.sql</file>
-    <file>./SQL/SQLite/15/insert_quasseluser.sql</file>
-    <file>./SQL/SQLite/15/insert_sender.sql</file>
-    <file>./SQL/SQLite/15/insert_server.sql</file>
-    <file>./SQL/SQLite/15/insert_user_setting.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_backlog.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_buffer.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_identity.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_identity_nick.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_ircserver.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_network.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_quasseluser.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_sender.sql</file>
-    <file>./SQL/SQLite/15/migrate_read_usersetting.sql</file>
-    <file>./SQL/SQLite/15/select_authuser.sql</file>
-    <file>./SQL/SQLite/15/select_buffer_by_id.sql</file>
-    <file>./SQL/SQLite/15/select_buffer_lastseen_messages.sql</file>
-    <file>./SQL/SQLite/15/select_bufferByName.sql</file>
-    <file>./SQL/SQLite/15/select_bufferExists.sql</file>
-    <file>./SQL/SQLite/15/select_buffers.sql</file>
-    <file>./SQL/SQLite/15/select_buffers_for_merge.sql</file>
-    <file>./SQL/SQLite/15/select_buffers_for_network.sql</file>
-    <file>./SQL/SQLite/15/select_checkidentity.sql</file>
-    <file>./SQL/SQLite/15/select_connected_networks.sql</file>
-    <file>./SQL/SQLite/15/select_identities.sql</file>
-    <file>./SQL/SQLite/15/select_internaluser.sql</file>
-    <file>./SQL/SQLite/15/select_messages.sql</file>
-    <file>./SQL/SQLite/15/select_messagesAll.sql</file>
-    <file>./SQL/SQLite/15/select_messagesAllNew.sql</file>
-    <file>./SQL/SQLite/15/select_messagesNewerThan.sql</file>
-    <file>./SQL/SQLite/15/select_messagesNewestK.sql</file>
-    <file>./SQL/SQLite/15/select_network_awaymsg.sql</file>
-    <file>./SQL/SQLite/15/select_network_usermode.sql</file>
-    <file>./SQL/SQLite/15/select_networkExists.sql</file>
-    <file>./SQL/SQLite/15/select_networks_for_user.sql</file>
-    <file>./SQL/SQLite/15/select_nicks.sql</file>
-    <file>./SQL/SQLite/15/select_persistent_channels.sql</file>
-    <file>./SQL/SQLite/15/select_servers_for_network.sql</file>
-    <file>./SQL/SQLite/15/select_user_setting.sql</file>
-    <file>./SQL/SQLite/15/select_userid.sql</file>
-    <file>./SQL/SQLite/15/setup_000_quasseluser.sql</file>
-    <file>./SQL/SQLite/15/setup_010_sender.sql</file>
-    <file>./SQL/SQLite/15/setup_020_network.sql</file>
-    <file>./SQL/SQLite/15/setup_030_buffer.sql</file>
-    <file>./SQL/SQLite/15/setup_040_buffer_idx.sql</file>
-    <file>./SQL/SQLite/15/setup_050_buffer_cname_idx.sql</file>
-    <file>./SQL/SQLite/15/setup_060_backlog.sql</file>
-    <file>./SQL/SQLite/15/setup_070_coreinfo.sql</file>
-    <file>./SQL/SQLite/15/setup_080_ircservers.sql</file>
-    <file>./SQL/SQLite/15/setup_090_backlog_idx.sql</file>
-    <file>./SQL/SQLite/15/setup_100_backlog_idx2.sql</file>
-    <file>./SQL/SQLite/15/setup_110_buffer_user_idx.sql</file>
-    <file>./SQL/SQLite/15/setup_120_user_setting.sql</file>
-    <file>./SQL/SQLite/15/setup_130_identity.sql</file>
-    <file>./SQL/SQLite/15/setup_140_identity_nick.sql</file>
-    <file>./SQL/SQLite/15/update_backlog_bufferid.sql</file>
-    <file>./SQL/SQLite/15/update_buffer_lastseen.sql</file>
-    <file>./SQL/SQLite/15/update_buffer_name.sql</file>
-    <file>./SQL/SQLite/15/update_buffer_persistent_channel.sql</file>
-    <file>./SQL/SQLite/15/update_buffer_set_channel_key.sql</file>
-    <file>./SQL/SQLite/15/update_identity.sql</file>
-    <file>./SQL/SQLite/15/update_network.sql</file>
-    <file>./SQL/SQLite/15/update_network_connected.sql</file>
-    <file>./SQL/SQLite/15/update_network_set_awaymsg.sql</file>
-    <file>./SQL/SQLite/15/update_network_set_usermode.sql</file>
-    <file>./SQL/SQLite/15/update_user_setting.sql</file>
-    <file>./SQL/SQLite/15/update_username.sql</file>
-    <file>./SQL/SQLite/15/update_userpassword.sql</file>
     <file>./SQL/SQLite/15/upgrade_000_fix_ircservers.sql</file>
     <file>./SQL/SQLite/15/upgrade_000_fix_network.sql</file>
+    <file>./SQL/SQLite/16/delete_backlog_by_uid.sql</file>
+    <file>./SQL/SQLite/16/delete_backlog_for_buffer.sql</file>
+    <file>./SQL/SQLite/16/delete_backlog_for_network.sql</file>
+    <file>./SQL/SQLite/16/delete_buffer_for_bufferid.sql</file>
+    <file>./SQL/SQLite/16/delete_buffers_by_uid.sql</file>
+    <file>./SQL/SQLite/16/delete_buffers_for_network.sql</file>
+    <file>./SQL/SQLite/16/delete_identity.sql</file>
+    <file>./SQL/SQLite/16/delete_ircservers_for_network.sql</file>
+    <file>./SQL/SQLite/16/delete_network.sql</file>
+    <file>./SQL/SQLite/16/delete_networks_by_uid.sql</file>
+    <file>./SQL/SQLite/16/delete_nicks.sql</file>
+    <file>./SQL/SQLite/16/delete_quasseluser.sql</file>
+    <file>./SQL/SQLite/16/insert_buffer.sql</file>
+    <file>./SQL/SQLite/16/insert_identity.sql</file>
+    <file>./SQL/SQLite/16/insert_message.sql</file>
+    <file>./SQL/SQLite/16/insert_network.sql</file>
+    <file>./SQL/SQLite/16/insert_nick.sql</file>
+    <file>./SQL/SQLite/16/insert_quasseluser.sql</file>
+    <file>./SQL/SQLite/16/insert_sender.sql</file>
+    <file>./SQL/SQLite/16/insert_server.sql</file>
+    <file>./SQL/SQLite/16/insert_user_setting.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_backlog.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_buffer.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_identity.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_identity_nick.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_ircserver.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_network.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_quasseluser.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_sender.sql</file>
+    <file>./SQL/SQLite/16/migrate_read_usersetting.sql</file>
+    <file>./SQL/SQLite/16/select_authuser.sql</file>
+    <file>./SQL/SQLite/16/select_buffer_by_id.sql</file>
+    <file>./SQL/SQLite/16/select_buffer_lastseen_messages.sql</file>
+    <file>./SQL/SQLite/16/select_buffer_markerlinemsgids.sql</file>
+    <file>./SQL/SQLite/16/select_bufferByName.sql</file>
+    <file>./SQL/SQLite/16/select_bufferExists.sql</file>
+    <file>./SQL/SQLite/16/select_buffers.sql</file>
+    <file>./SQL/SQLite/16/select_buffers_for_merge.sql</file>
+    <file>./SQL/SQLite/16/select_buffers_for_network.sql</file>
+    <file>./SQL/SQLite/16/select_checkidentity.sql</file>
+    <file>./SQL/SQLite/16/select_connected_networks.sql</file>
+    <file>./SQL/SQLite/16/select_identities.sql</file>
+    <file>./SQL/SQLite/16/select_internaluser.sql</file>
+    <file>./SQL/SQLite/16/select_messages.sql</file>
+    <file>./SQL/SQLite/16/select_messagesAll.sql</file>
+    <file>./SQL/SQLite/16/select_messagesAllNew.sql</file>
+    <file>./SQL/SQLite/16/select_messagesNewerThan.sql</file>
+    <file>./SQL/SQLite/16/select_messagesNewestK.sql</file>
+    <file>./SQL/SQLite/16/select_network_awaymsg.sql</file>
+    <file>./SQL/SQLite/16/select_network_usermode.sql</file>
+    <file>./SQL/SQLite/16/select_networkExists.sql</file>
+    <file>./SQL/SQLite/16/select_networks_for_user.sql</file>
+    <file>./SQL/SQLite/16/select_nicks.sql</file>
+    <file>./SQL/SQLite/16/select_persistent_channels.sql</file>
+    <file>./SQL/SQLite/16/select_servers_for_network.sql</file>
+    <file>./SQL/SQLite/16/select_user_setting.sql</file>
+    <file>./SQL/SQLite/16/select_userid.sql</file>
+    <file>./SQL/SQLite/16/setup_000_quasseluser.sql</file>
+    <file>./SQL/SQLite/16/setup_010_sender.sql</file>
+    <file>./SQL/SQLite/16/setup_020_network.sql</file>
+    <file>./SQL/SQLite/16/setup_030_buffer.sql</file>
+    <file>./SQL/SQLite/16/setup_040_buffer_idx.sql</file>
+    <file>./SQL/SQLite/16/setup_050_buffer_cname_idx.sql</file>
+    <file>./SQL/SQLite/16/setup_060_backlog.sql</file>
+    <file>./SQL/SQLite/16/setup_070_coreinfo.sql</file>
+    <file>./SQL/SQLite/16/setup_080_ircservers.sql</file>
+    <file>./SQL/SQLite/16/setup_090_backlog_idx.sql</file>
+    <file>./SQL/SQLite/16/setup_100_backlog_idx2.sql</file>
+    <file>./SQL/SQLite/16/setup_110_buffer_user_idx.sql</file>
+    <file>./SQL/SQLite/16/setup_120_user_setting.sql</file>
+    <file>./SQL/SQLite/16/setup_130_identity.sql</file>
+    <file>./SQL/SQLite/16/setup_140_identity_nick.sql</file>
+    <file>./SQL/SQLite/16/update_backlog_bufferid.sql</file>
+    <file>./SQL/SQLite/16/update_buffer_lastseen.sql</file>
+    <file>./SQL/SQLite/16/update_buffer_markerlinemsgid.sql</file>
+    <file>./SQL/SQLite/16/update_buffer_name.sql</file>
+    <file>./SQL/SQLite/16/update_buffer_persistent_channel.sql</file>
+    <file>./SQL/SQLite/16/update_buffer_set_channel_key.sql</file>
+    <file>./SQL/SQLite/16/update_identity.sql</file>
+    <file>./SQL/SQLite/16/update_network.sql</file>
+    <file>./SQL/SQLite/16/update_network_connected.sql</file>
+    <file>./SQL/SQLite/16/update_network_set_awaymsg.sql</file>
+    <file>./SQL/SQLite/16/update_network_set_usermode.sql</file>
+    <file>./SQL/SQLite/16/update_user_setting.sql</file>
+    <file>./SQL/SQLite/16/update_username.sql</file>
+    <file>./SQL/SQLite/16/update_userpassword.sql</file>
+    <file>./SQL/SQLite/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql</file>
     <file>./SQL/SQLite/2/upgrade_000_drop_buffergroup.sql</file>
     <file>./SQL/SQLite/2/upgrade_010_update_schemaversion.sql</file>
     <file>./SQL/SQLite/3/upgrade_000_update_backlog_flags.sql</file>
index ad610a0..1d732d3 100644 (file)
@@ -1297,6 +1297,52 @@ QHash<BufferId, MsgId> SqliteStorage::bufferLastSeenMsgIds(UserId user) {
   return lastSeenHash;
 }
 
+void SqliteStorage::setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId) {
+  QSqlDatabase db = logDb();
+  db.transaction();
+
+  {
+    QSqlQuery query(db);
+    query.prepare(queryString("update_buffer_markerlinemsgid"));
+    query.bindValue(":userid", user.toInt());
+    query.bindValue(":bufferid", bufferId.toInt());
+    query.bindValue(":markerlinemsgid", msgId.toInt());
+
+    lockForWrite();
+    safeExec(query);
+    watchQuery(query);
+  }
+  db.commit();
+  unlock();
+}
+
+QHash<BufferId, MsgId> SqliteStorage::bufferMarkerLineMsgIds(UserId user) {
+  QHash<BufferId, MsgId> markerLineHash;
+
+  QSqlDatabase db = logDb();
+  db.transaction();
+
+  bool error = false;
+  {
+    QSqlQuery query(db);
+    query.prepare(queryString("select_buffer_markerlinemsgids"));
+    query.bindValue(":userid", user.toInt());
+
+    lockForRead();
+    safeExec(query);
+    error = !watchQuery(query);
+    if(!error) {
+      while(query.next()) {
+        markerLineHash[query.value(0).toInt()] = query.value(1).toInt();
+      }
+    }
+  }
+
+  db.commit();
+  unlock();
+  return markerLineHash;
+}
+
 bool SqliteStorage::logMessage(Message &msg) {
   QSqlDatabase db = logDb();
   db.transaction();
@@ -1698,6 +1744,7 @@ bool SqliteMigrationReader::readMo(BufferMO &buffer) {
   buffer.buffercname = value(5).toString();
   buffer.buffertype = value(6).toInt();
   buffer.lastseenmsgid = value(7).toInt();
+  buffer.markerlinemsgid = value(8).toInt();
   buffer.key = value(8).toString();
   buffer.joined = value(9).toInt() == 1 ? true : false;
   return true;
index 2518250..9aa7006 100644 (file)
@@ -93,6 +93,8 @@ public slots:
   virtual bool mergeBuffersPermanently(const UserId &user, const BufferId &bufferId1, const BufferId &bufferId2);
   virtual void setBufferLastSeenMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
   virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
+  virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
+  virtual QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user);
 
   /* Message handling */
   virtual bool logMessage(Message &msg);
index b8f5c23..1561673 100644 (file)
@@ -349,6 +349,24 @@ public slots:
    */
   virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user) = 0;
 
+  //! Update the MarkerLineMsgId for a Buffer
+  /** This Method is used to make the marker line position of a Buffer persistent
+   *  \note This method is threadsafe.
+   *
+   * \param user      The Owner of that Buffer
+   * \param bufferId  The buffer id
+   * \param MsgId     The Message id where the marker line should be placed
+   */
+  virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId) = 0;
+
+  //! Get a Hash of all marker line message ids
+  /** This Method is called when the Quassel Core is started to restore the MarkerLineMsgIds
+   *  \note This method is threadsafe.
+   *
+   * \param user      The Owner of the buffers
+   */
+  virtual QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user) = 0;
+
 
   /* Message handling */