core: Separate SQL current and upgrade scripts
authorShane Synan <digitalcircuit36939@gmail.com>
Sun, 16 Apr 2017 05:50:33 +0000 (00:50 -0500)
committerManuel Nickschas <sputnick@quassel-irc.org>
Mon, 24 Apr 2017 19:53:17 +0000 (21:53 +0200)
Move the current SQL queries into the 'SQL/[database]' top folder,
move all database schema upgrade scripts into the
'SQL/[database]/version/##' subfolders.  This preserves repository
history for the general SQL queries when adding a new schema version,
and simplifies rebasing a branch if the master schema version changes
in the meantime (e.g. managing multiple pull requests).

Thanks to justJanne and others for the suggestion!

Update 'sql.qrc' with the moved SQL files.

Modify AbstractSqlStorage 'setupQueries()' and 'upgradeQueries()' to
use these new folder locations, and modify 'queryString()' to pick
either the current SQL schema folder or the versioned schema folder
according to whether a version was specified when calling it.

Update 'updateSQLResource.sh' with the new folder locations,
including fixing the 'sort' command to sort independent of the
current operating system language settings.

Update 'upgradeSchema.sh' with the new locations and stop moving the
non-upgrade '*.sql' scripts.  Now, it just adds a new folder and
prints a message on how to use it.  Also send error messages to
standard error.

Add more documentation on schema upgrades.  You can never have enough
testing...

276 files changed:
src/core/SQL/PostgreSQL/delete_backlog_by_uid.sql [moved from src/core/SQL/PostgreSQL/20/delete_backlog_by_uid.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_backlog_for_buffer.sql [moved from src/core/SQL/PostgreSQL/20/delete_backlog_for_buffer.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_backlog_for_network.sql [moved from src/core/SQL/PostgreSQL/20/delete_backlog_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_buffer_for_bufferid.sql [moved from src/core/SQL/PostgreSQL/20/delete_buffer_for_bufferid.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_buffers_by_uid.sql [moved from src/core/SQL/PostgreSQL/20/delete_buffers_by_uid.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_buffers_for_network.sql [moved from src/core/SQL/PostgreSQL/20/delete_buffers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_identity.sql [moved from src/core/SQL/PostgreSQL/20/delete_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_ircservers_for_network.sql [moved from src/core/SQL/PostgreSQL/20/delete_ircservers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_network.sql [moved from src/core/SQL/PostgreSQL/20/delete_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_networks_by_uid.sql [moved from src/core/SQL/PostgreSQL/20/delete_networks_by_uid.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_nicks.sql [moved from src/core/SQL/PostgreSQL/20/delete_nicks.sql with 100% similarity]
src/core/SQL/PostgreSQL/delete_quasseluser.sql [moved from src/core/SQL/PostgreSQL/20/delete_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_buffer.sql [moved from src/core/SQL/PostgreSQL/20/insert_buffer.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_identity.sql [moved from src/core/SQL/PostgreSQL/20/insert_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_message.sql [moved from src/core/SQL/PostgreSQL/20/insert_message.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_network.sql [moved from src/core/SQL/PostgreSQL/20/insert_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_nick.sql [moved from src/core/SQL/PostgreSQL/20/insert_nick.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_quasseluser.sql [moved from src/core/SQL/PostgreSQL/20/insert_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_sender.sql [moved from src/core/SQL/PostgreSQL/20/insert_sender.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_server.sql [moved from src/core/SQL/PostgreSQL/20/insert_server.sql with 100% similarity]
src/core/SQL/PostgreSQL/insert_user_setting.sql [moved from src/core/SQL/PostgreSQL/20/insert_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_backlog.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_backlog.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_buffer.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_buffer.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_identity.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_identity_nick.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_identity_nick.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_ircserver.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_ircserver.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_network.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_quasseluser.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_sender.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_sender.sql with 100% similarity]
src/core/SQL/PostgreSQL/migrate_write_usersetting.sql [moved from src/core/SQL/PostgreSQL/20/migrate_write_usersetting.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_authuser.sql [moved from src/core/SQL/PostgreSQL/20/select_authuser.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_bufferByName.sql [moved from src/core/SQL/PostgreSQL/20/select_bufferByName.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_bufferExists.sql [moved from src/core/SQL/PostgreSQL/20/select_bufferExists.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_buffer_by_id.sql [moved from src/core/SQL/PostgreSQL/20/select_buffer_by_id.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_buffer_lastseen_messages.sql [moved from src/core/SQL/PostgreSQL/20/select_buffer_lastseen_messages.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_buffer_markerlinemsgids.sql [moved from src/core/SQL/PostgreSQL/20/select_buffer_markerlinemsgids.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_buffers.sql [moved from src/core/SQL/PostgreSQL/20/select_buffers.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_buffers_for_network.sql [moved from src/core/SQL/PostgreSQL/20/select_buffers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_checkidentity.sql [moved from src/core/SQL/PostgreSQL/20/select_checkidentity.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_connected_networks.sql [moved from src/core/SQL/PostgreSQL/20/select_connected_networks.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_identities.sql [moved from src/core/SQL/PostgreSQL/20/select_identities.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_internaluser.sql [moved from src/core/SQL/PostgreSQL/20/select_internaluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_messagesAll.sql [moved from src/core/SQL/PostgreSQL/20/select_messagesAll.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_messagesAllNew.sql [moved from src/core/SQL/PostgreSQL/20/select_messagesAllNew.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_messagesNewerThan.sql [moved from src/core/SQL/PostgreSQL/20/select_messagesNewerThan.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_messagesNewestK.sql [moved from src/core/SQL/PostgreSQL/20/select_messagesNewestK.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_messagesRange.sql [moved from src/core/SQL/PostgreSQL/20/select_messagesRange.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_networkExists.sql [moved from src/core/SQL/PostgreSQL/20/select_networkExists.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_network_awaymsg.sql [moved from src/core/SQL/PostgreSQL/20/select_network_awaymsg.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_network_usermode.sql [moved from src/core/SQL/PostgreSQL/20/select_network_usermode.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_networks_for_user.sql [moved from src/core/SQL/PostgreSQL/20/select_networks_for_user.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_nicks.sql [moved from src/core/SQL/PostgreSQL/20/select_nicks.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_persistent_channels.sql [moved from src/core/SQL/PostgreSQL/20/select_persistent_channels.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_senderid.sql [moved from src/core/SQL/PostgreSQL/20/select_senderid.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_servers_for_network.sql [moved from src/core/SQL/PostgreSQL/20/select_servers_for_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_user_setting.sql [moved from src/core/SQL/PostgreSQL/20/select_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/select_userid.sql [moved from src/core/SQL/PostgreSQL/20/select_userid.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_000_quasseluser.sql [moved from src/core/SQL/PostgreSQL/20/setup_000_quasseluser.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_010_sender.sql [moved from src/core/SQL/PostgreSQL/20/setup_010_sender.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_020_identity.sql [moved from src/core/SQL/PostgreSQL/20/setup_020_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_030_identity_nick.sql [moved from src/core/SQL/PostgreSQL/20/setup_030_identity_nick.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_040_network.sql [moved from src/core/SQL/PostgreSQL/20/setup_040_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_050_buffer.sql [moved from src/core/SQL/PostgreSQL/20/setup_050_buffer.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_060_backlog.sql [moved from src/core/SQL/PostgreSQL/20/setup_060_backlog.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_070_coreinfo.sql [moved from src/core/SQL/PostgreSQL/20/setup_070_coreinfo.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_080_ircservers.sql [moved from src/core/SQL/PostgreSQL/20/setup_080_ircservers.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_090_backlog_idx.sql [moved from src/core/SQL/PostgreSQL/20/setup_090_backlog_idx.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_100_user_setting.sql [moved from src/core/SQL/PostgreSQL/20/setup_100_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_110_alter_sender_seq.sql [moved from src/core/SQL/PostgreSQL/20/setup_110_alter_sender_seq.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_120_alter_messageid_seq.sql [moved from src/core/SQL/PostgreSQL/20/setup_120_alter_messageid_seq.sql with 100% similarity]
src/core/SQL/PostgreSQL/setup_130_function_lastmsgid.sql [moved from src/core/SQL/PostgreSQL/20/setup_130_function_lastmsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_backlog_bufferid.sql [moved from src/core/SQL/PostgreSQL/20/update_backlog_bufferid.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_buffer_lastmsgid.sql [moved from src/core/SQL/PostgreSQL/20/update_buffer_lastmsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_buffer_lastseen.sql [moved from src/core/SQL/PostgreSQL/20/update_buffer_lastseen.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_buffer_markerlinemsgid.sql [moved from src/core/SQL/PostgreSQL/20/update_buffer_markerlinemsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_buffer_name.sql [moved from src/core/SQL/PostgreSQL/20/update_buffer_name.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_buffer_persistent_channel.sql [moved from src/core/SQL/PostgreSQL/20/update_buffer_persistent_channel.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_buffer_set_channel_key.sql [moved from src/core/SQL/PostgreSQL/20/update_buffer_set_channel_key.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_identity.sql [moved from src/core/SQL/PostgreSQL/20/update_identity.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_network.sql [moved from src/core/SQL/PostgreSQL/20/update_network.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_network_connected.sql [moved from src/core/SQL/PostgreSQL/20/update_network_connected.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_network_set_awaymsg.sql [moved from src/core/SQL/PostgreSQL/20/update_network_set_awaymsg.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_network_set_usermode.sql [moved from src/core/SQL/PostgreSQL/20/update_network_set_usermode.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_user_setting.sql [moved from src/core/SQL/PostgreSQL/20/update_user_setting.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_username.sql [moved from src/core/SQL/PostgreSQL/20/update_username.sql with 100% similarity]
src/core/SQL/PostgreSQL/update_userpassword.sql [moved from src/core/SQL/PostgreSQL/20/update_userpassword.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql [moved from src/core/SQL/PostgreSQL/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/16/upgrade_000_alter_network_add_sasl.sql [moved from src/core/SQL/PostgreSQL/16/upgrade_000_alter_network_add_sasl.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/17/upgrade_000_alter_quasseluser_add_passwordversion.sql [moved from src/core/SQL/PostgreSQL/17/upgrade_000_alter_quasseluser_add_passwordversion.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/18/upgrade_000_alter_ircserver_add_sslverify.sql [moved from src/core/SQL/PostgreSQL/18/upgrade_000_alter_ircserver_add_sslverify.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/19/upgrade_000_alter_network_add_ratelimit_usecustom.sql [moved from src/core/SQL/PostgreSQL/19/upgrade_000_alter_network_add_ratelimit_usecustom.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/19/upgrade_001_alter_network_add_ratelimit_burstsize.sql [moved from src/core/SQL/PostgreSQL/19/upgrade_001_alter_network_add_ratelimit_burstsize.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/19/upgrade_002_alter_network_add_ratelimit_delay.sql [moved from src/core/SQL/PostgreSQL/19/upgrade_002_alter_network_add_ratelimit_delay.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/19/upgrade_003_alter_network_add_ratelimit_unlimited.sql [moved from src/core/SQL/PostgreSQL/19/upgrade_003_alter_network_add_ratelimit_unlimited.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/20/upgrade_000_alter_buffer_add_lastmsgid.sql [moved from src/core/SQL/PostgreSQL/20/upgrade_000_alter_buffer_add_lastmsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/20/upgrade_001_add_function_populate_lastmsgid.sql [moved from src/core/SQL/PostgreSQL/20/upgrade_001_add_function_populate_lastmsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/20/upgrade_002_run_function_populate_lastmsgid.sql [moved from src/core/SQL/PostgreSQL/20/upgrade_002_run_function_populate_lastmsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/20/upgrade_003_correct_bad_lastseenmsgid.sql [moved from src/core/SQL/PostgreSQL/20/upgrade_003_correct_bad_lastseenmsgid.sql with 100% similarity]
src/core/SQL/PostgreSQL/version/20/upgrade_004_add_lastseenmsgid_constraint.sql [moved from src/core/SQL/PostgreSQL/20/upgrade_004_add_lastseenmsgid_constraint.sql with 100% similarity]
src/core/SQL/SQLite/delete_backlog_by_uid.sql [moved from src/core/SQL/SQLite/21/delete_backlog_by_uid.sql with 100% similarity]
src/core/SQL/SQLite/delete_backlog_for_buffer.sql [moved from src/core/SQL/SQLite/21/delete_backlog_for_buffer.sql with 100% similarity]
src/core/SQL/SQLite/delete_backlog_for_network.sql [moved from src/core/SQL/SQLite/21/delete_backlog_for_network.sql with 100% similarity]
src/core/SQL/SQLite/delete_buffer_for_bufferid.sql [moved from src/core/SQL/SQLite/21/delete_buffer_for_bufferid.sql with 100% similarity]
src/core/SQL/SQLite/delete_buffers_by_uid.sql [moved from src/core/SQL/SQLite/21/delete_buffers_by_uid.sql with 100% similarity]
src/core/SQL/SQLite/delete_buffers_for_network.sql [moved from src/core/SQL/SQLite/21/delete_buffers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/delete_identity.sql [moved from src/core/SQL/SQLite/21/delete_identity.sql with 100% similarity]
src/core/SQL/SQLite/delete_ircservers_for_network.sql [moved from src/core/SQL/SQLite/21/delete_ircservers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/delete_network.sql [moved from src/core/SQL/SQLite/21/delete_network.sql with 100% similarity]
src/core/SQL/SQLite/delete_networks_by_uid.sql [moved from src/core/SQL/SQLite/21/delete_networks_by_uid.sql with 100% similarity]
src/core/SQL/SQLite/delete_nicks.sql [moved from src/core/SQL/SQLite/21/delete_nicks.sql with 100% similarity]
src/core/SQL/SQLite/delete_quasseluser.sql [moved from src/core/SQL/SQLite/21/delete_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/insert_buffer.sql [moved from src/core/SQL/SQLite/21/insert_buffer.sql with 100% similarity]
src/core/SQL/SQLite/insert_identity.sql [moved from src/core/SQL/SQLite/21/insert_identity.sql with 100% similarity]
src/core/SQL/SQLite/insert_message.sql [moved from src/core/SQL/SQLite/21/insert_message.sql with 100% similarity]
src/core/SQL/SQLite/insert_network.sql [moved from src/core/SQL/SQLite/21/insert_network.sql with 100% similarity]
src/core/SQL/SQLite/insert_nick.sql [moved from src/core/SQL/SQLite/21/insert_nick.sql with 100% similarity]
src/core/SQL/SQLite/insert_quasseluser.sql [moved from src/core/SQL/SQLite/21/insert_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/insert_sender.sql [moved from src/core/SQL/SQLite/21/insert_sender.sql with 100% similarity]
src/core/SQL/SQLite/insert_server.sql [moved from src/core/SQL/SQLite/21/insert_server.sql with 100% similarity]
src/core/SQL/SQLite/insert_user_setting.sql [moved from src/core/SQL/SQLite/21/insert_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_backlog.sql [moved from src/core/SQL/SQLite/21/migrate_read_backlog.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_buffer.sql [moved from src/core/SQL/SQLite/21/migrate_read_buffer.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_identity.sql [moved from src/core/SQL/SQLite/21/migrate_read_identity.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_identity_nick.sql [moved from src/core/SQL/SQLite/21/migrate_read_identity_nick.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_ircserver.sql [moved from src/core/SQL/SQLite/21/migrate_read_ircserver.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_network.sql [moved from src/core/SQL/SQLite/21/migrate_read_network.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_quasseluser.sql [moved from src/core/SQL/SQLite/21/migrate_read_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_sender.sql [moved from src/core/SQL/SQLite/21/migrate_read_sender.sql with 100% similarity]
src/core/SQL/SQLite/migrate_read_usersetting.sql [moved from src/core/SQL/SQLite/21/migrate_read_usersetting.sql with 100% similarity]
src/core/SQL/SQLite/select_authuser.sql [moved from src/core/SQL/SQLite/21/select_authuser.sql with 100% similarity]
src/core/SQL/SQLite/select_bufferByName.sql [moved from src/core/SQL/SQLite/21/select_bufferByName.sql with 100% similarity]
src/core/SQL/SQLite/select_bufferExists.sql [moved from src/core/SQL/SQLite/21/select_bufferExists.sql with 100% similarity]
src/core/SQL/SQLite/select_buffer_by_id.sql [moved from src/core/SQL/SQLite/21/select_buffer_by_id.sql with 100% similarity]
src/core/SQL/SQLite/select_buffer_lastseen_messages.sql [moved from src/core/SQL/SQLite/21/select_buffer_lastseen_messages.sql with 100% similarity]
src/core/SQL/SQLite/select_buffer_markerlinemsgids.sql [moved from src/core/SQL/SQLite/21/select_buffer_markerlinemsgids.sql with 100% similarity]
src/core/SQL/SQLite/select_buffers.sql [moved from src/core/SQL/SQLite/21/select_buffers.sql with 100% similarity]
src/core/SQL/SQLite/select_buffers_for_merge.sql [moved from src/core/SQL/SQLite/21/select_buffers_for_merge.sql with 100% similarity]
src/core/SQL/SQLite/select_buffers_for_network.sql [moved from src/core/SQL/SQLite/21/select_buffers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/select_checkidentity.sql [moved from src/core/SQL/SQLite/21/select_checkidentity.sql with 100% similarity]
src/core/SQL/SQLite/select_connected_networks.sql [moved from src/core/SQL/SQLite/21/select_connected_networks.sql with 100% similarity]
src/core/SQL/SQLite/select_identities.sql [moved from src/core/SQL/SQLite/21/select_identities.sql with 100% similarity]
src/core/SQL/SQLite/select_internaluser.sql [moved from src/core/SQL/SQLite/21/select_internaluser.sql with 100% similarity]
src/core/SQL/SQLite/select_messagesAll.sql [moved from src/core/SQL/SQLite/21/select_messagesAll.sql with 100% similarity]
src/core/SQL/SQLite/select_messagesAllNew.sql [moved from src/core/SQL/SQLite/21/select_messagesAllNew.sql with 100% similarity]
src/core/SQL/SQLite/select_messagesNewerThan.sql [moved from src/core/SQL/SQLite/21/select_messagesNewerThan.sql with 100% similarity]
src/core/SQL/SQLite/select_messagesNewestK.sql [moved from src/core/SQL/SQLite/21/select_messagesNewestK.sql with 100% similarity]
src/core/SQL/SQLite/select_messagesRange.sql [moved from src/core/SQL/SQLite/21/select_messagesRange.sql with 100% similarity]
src/core/SQL/SQLite/select_networkExists.sql [moved from src/core/SQL/SQLite/21/select_networkExists.sql with 100% similarity]
src/core/SQL/SQLite/select_network_awaymsg.sql [moved from src/core/SQL/SQLite/21/select_network_awaymsg.sql with 100% similarity]
src/core/SQL/SQLite/select_network_usermode.sql [moved from src/core/SQL/SQLite/21/select_network_usermode.sql with 100% similarity]
src/core/SQL/SQLite/select_networks_for_user.sql [moved from src/core/SQL/SQLite/21/select_networks_for_user.sql with 100% similarity]
src/core/SQL/SQLite/select_nicks.sql [moved from src/core/SQL/SQLite/21/select_nicks.sql with 100% similarity]
src/core/SQL/SQLite/select_persistent_channels.sql [moved from src/core/SQL/SQLite/21/select_persistent_channels.sql with 100% similarity]
src/core/SQL/SQLite/select_servers_for_network.sql [moved from src/core/SQL/SQLite/21/select_servers_for_network.sql with 100% similarity]
src/core/SQL/SQLite/select_user_setting.sql [moved from src/core/SQL/SQLite/21/select_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/select_userid.sql [moved from src/core/SQL/SQLite/21/select_userid.sql with 100% similarity]
src/core/SQL/SQLite/setup_000_quasseluser.sql [moved from src/core/SQL/SQLite/21/setup_000_quasseluser.sql with 100% similarity]
src/core/SQL/SQLite/setup_010_sender.sql [moved from src/core/SQL/SQLite/21/setup_010_sender.sql with 100% similarity]
src/core/SQL/SQLite/setup_020_network.sql [moved from src/core/SQL/SQLite/21/setup_020_network.sql with 100% similarity]
src/core/SQL/SQLite/setup_030_buffer.sql [moved from src/core/SQL/SQLite/21/setup_030_buffer.sql with 100% similarity]
src/core/SQL/SQLite/setup_040_buffer_idx.sql [moved from src/core/SQL/SQLite/21/setup_040_buffer_idx.sql with 100% similarity]
src/core/SQL/SQLite/setup_050_buffer_cname_idx.sql [moved from src/core/SQL/SQLite/21/setup_050_buffer_cname_idx.sql with 100% similarity]
src/core/SQL/SQLite/setup_060_backlog.sql [moved from src/core/SQL/SQLite/21/setup_060_backlog.sql with 100% similarity]
src/core/SQL/SQLite/setup_070_coreinfo.sql [moved from src/core/SQL/SQLite/21/setup_070_coreinfo.sql with 100% similarity]
src/core/SQL/SQLite/setup_080_ircservers.sql [moved from src/core/SQL/SQLite/21/setup_080_ircservers.sql with 100% similarity]
src/core/SQL/SQLite/setup_090_backlog_idx.sql [moved from src/core/SQL/SQLite/21/setup_090_backlog_idx.sql with 100% similarity]
src/core/SQL/SQLite/setup_100_backlog_idx2.sql [moved from src/core/SQL/SQLite/21/setup_100_backlog_idx2.sql with 100% similarity]
src/core/SQL/SQLite/setup_110_buffer_user_idx.sql [moved from src/core/SQL/SQLite/21/setup_110_buffer_user_idx.sql with 100% similarity]
src/core/SQL/SQLite/setup_120_user_setting.sql [moved from src/core/SQL/SQLite/21/setup_120_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/setup_130_identity.sql [moved from src/core/SQL/SQLite/21/setup_130_identity.sql with 100% similarity]
src/core/SQL/SQLite/setup_140_identity_nick.sql [moved from src/core/SQL/SQLite/21/setup_140_identity_nick.sql with 100% similarity]
src/core/SQL/SQLite/update_backlog_bufferid.sql [moved from src/core/SQL/SQLite/21/update_backlog_bufferid.sql with 100% similarity]
src/core/SQL/SQLite/update_buffer_lastmsgid.sql [moved from src/core/SQL/SQLite/21/update_buffer_lastmsgid.sql with 100% similarity]
src/core/SQL/SQLite/update_buffer_lastseen.sql [moved from src/core/SQL/SQLite/21/update_buffer_lastseen.sql with 100% similarity]
src/core/SQL/SQLite/update_buffer_markerlinemsgid.sql [moved from src/core/SQL/SQLite/21/update_buffer_markerlinemsgid.sql with 100% similarity]
src/core/SQL/SQLite/update_buffer_name.sql [moved from src/core/SQL/SQLite/21/update_buffer_name.sql with 100% similarity]
src/core/SQL/SQLite/update_buffer_persistent_channel.sql [moved from src/core/SQL/SQLite/21/update_buffer_persistent_channel.sql with 100% similarity]
src/core/SQL/SQLite/update_buffer_set_channel_key.sql [moved from src/core/SQL/SQLite/21/update_buffer_set_channel_key.sql with 100% similarity]
src/core/SQL/SQLite/update_identity.sql [moved from src/core/SQL/SQLite/21/update_identity.sql with 100% similarity]
src/core/SQL/SQLite/update_network.sql [moved from src/core/SQL/SQLite/21/update_network.sql with 100% similarity]
src/core/SQL/SQLite/update_network_connected.sql [moved from src/core/SQL/SQLite/21/update_network_connected.sql with 100% similarity]
src/core/SQL/SQLite/update_network_set_awaymsg.sql [moved from src/core/SQL/SQLite/21/update_network_set_awaymsg.sql with 100% similarity]
src/core/SQL/SQLite/update_network_set_usermode.sql [moved from src/core/SQL/SQLite/21/update_network_set_usermode.sql with 100% similarity]
src/core/SQL/SQLite/update_user_setting.sql [moved from src/core/SQL/SQLite/21/update_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/update_username.sql [moved from src/core/SQL/SQLite/21/update_username.sql with 100% similarity]
src/core/SQL/SQLite/update_userpassword.sql [moved from src/core/SQL/SQLite/21/update_userpassword.sql with 100% similarity]
src/core/SQL/SQLite/version/1/upgrade_000_drop_coreinfo.sql [moved from src/core/SQL/SQLite/1/upgrade_000_drop_coreinfo.sql with 100% similarity]
src/core/SQL/SQLite/version/1/upgrade_010_create_coreinfo.sql [moved from src/core/SQL/SQLite/1/upgrade_010_create_coreinfo.sql with 100% similarity]
src/core/SQL/SQLite/version/1/upgrade_020_update_schemaversion.sql [moved from src/core/SQL/SQLite/1/upgrade_020_update_schemaversion.sql with 100% similarity]
src/core/SQL/SQLite/version/10/upgrade_000_switch_to_msgid.sql [moved from src/core/SQL/SQLite/10/upgrade_000_switch_to_msgid.sql with 100% similarity]
src/core/SQL/SQLite/version/10/upgrade_010_rename_buffer_table.sql [moved from src/core/SQL/SQLite/10/upgrade_010_rename_buffer_table.sql with 100% similarity]
src/core/SQL/SQLite/version/10/upgrade_020_create_buffer_table.sql [moved from src/core/SQL/SQLite/10/upgrade_020_create_buffer_table.sql with 100% similarity]
src/core/SQL/SQLite/version/10/upgrade_030_copy_buffer_table.sql [moved from src/core/SQL/SQLite/10/upgrade_030_copy_buffer_table.sql with 100% similarity]
src/core/SQL/SQLite/version/10/upgrade_040_drop_buffer_old_table.sql [moved from src/core/SQL/SQLite/10/upgrade_040_drop_buffer_old_table.sql with 100% similarity]
src/core/SQL/SQLite/version/11/upgrade_000_create_user_setting.sql [moved from src/core/SQL/SQLite/11/upgrade_000_create_user_setting.sql with 100% similarity]
src/core/SQL/SQLite/version/12/upgrade_000_create_identity.sql [moved from src/core/SQL/SQLite/12/upgrade_000_create_identity.sql with 100% similarity]
src/core/SQL/SQLite/version/12/upgrade_010_create_identity_nick.sql [moved from src/core/SQL/SQLite/12/upgrade_010_create_identity_nick.sql with 100% similarity]
src/core/SQL/SQLite/version/12/upgrade_020_rename_servertable.sql [moved from src/core/SQL/SQLite/12/upgrade_020_rename_servertable.sql with 100% similarity]
src/core/SQL/SQLite/version/12/upgrade_030_create_ircserver.sql [moved from src/core/SQL/SQLite/12/upgrade_030_create_ircserver.sql with 100% similarity]
src/core/SQL/SQLite/version/12/upgrade_040_copy_ircserver.sql [moved from src/core/SQL/SQLite/12/upgrade_040_copy_ircserver.sql with 100% similarity]
src/core/SQL/SQLite/version/12/upgrade_050_drop_ircserverold.sql [moved from src/core/SQL/SQLite/12/upgrade_050_drop_ircserverold.sql with 100% similarity]
src/core/SQL/SQLite/version/13/upgrade_000_create_buffer_user_idx.sql [moved from src/core/SQL/SQLite/13/upgrade_000_create_buffer_user_idx.sql with 100% similarity]
src/core/SQL/SQLite/version/13/upgrade_010_create_buffer_cname_idx.sql [moved from src/core/SQL/SQLite/13/upgrade_010_create_buffer_cname_idx.sql with 100% similarity]
src/core/SQL/SQLite/version/13/upgrade_020_create_buffer_cname_idx.sql [moved from src/core/SQL/SQLite/13/upgrade_020_create_buffer_cname_idx.sql with 100% similarity]
src/core/SQL/SQLite/version/14/upgrade_000_rename_networktable.sql [moved from src/core/SQL/SQLite/14/upgrade_000_rename_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/14/upgrade_010_create_networktable.sql [moved from src/core/SQL/SQLite/14/upgrade_010_create_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/14/upgrade_030_copy_networktable.sql [moved from src/core/SQL/SQLite/14/upgrade_030_copy_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/14/upgrade_040_drop_networkold.sql [moved from src/core/SQL/SQLite/14/upgrade_040_drop_networkold.sql with 100% similarity]
src/core/SQL/SQLite/version/15/upgrade_000_fix_ircservers.sql [moved from src/core/SQL/SQLite/15/upgrade_000_fix_ircservers.sql with 100% similarity]
src/core/SQL/SQLite/version/15/upgrade_000_fix_network.sql [moved from src/core/SQL/SQLite/15/upgrade_000_fix_network.sql with 100% similarity]
src/core/SQL/SQLite/version/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql [moved from src/core/SQL/SQLite/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql with 100% similarity]
src/core/SQL/SQLite/version/17/upgrade_000_alter_network_add_sasl.sql [moved from src/core/SQL/SQLite/17/upgrade_000_alter_network_add_sasl.sql with 100% similarity]
src/core/SQL/SQLite/version/17/upgrade_001_alter_network_add_sasl.sql [moved from src/core/SQL/SQLite/17/upgrade_001_alter_network_add_sasl.sql with 100% similarity]
src/core/SQL/SQLite/version/17/upgrade_002_alter_network_add_sasl.sql [moved from src/core/SQL/SQLite/17/upgrade_002_alter_network_add_sasl.sql with 100% similarity]
src/core/SQL/SQLite/version/18/upgrade_000_alter_quasseluser_add_passwordversion.sql [moved from src/core/SQL/SQLite/18/upgrade_000_alter_quasseluser_add_passwordversion.sql with 100% similarity]
src/core/SQL/SQLite/version/19/upgrade_000_alter_ircserver_add_sslverify.sql [moved from src/core/SQL/SQLite/19/upgrade_000_alter_ircserver_add_sslverify.sql with 100% similarity]
src/core/SQL/SQLite/version/2/upgrade_000_drop_buffergroup.sql [moved from src/core/SQL/SQLite/2/upgrade_000_drop_buffergroup.sql with 100% similarity]
src/core/SQL/SQLite/version/2/upgrade_010_update_schemaversion.sql [moved from src/core/SQL/SQLite/2/upgrade_010_update_schemaversion.sql with 100% similarity]
src/core/SQL/SQLite/version/20/upgrade_000_alter_network_add_ratelimit_usecustom.sql [moved from src/core/SQL/SQLite/20/upgrade_000_alter_network_add_ratelimit_usecustom.sql with 100% similarity]
src/core/SQL/SQLite/version/20/upgrade_001_alter_network_add_ratelimit_burstsize.sql [moved from src/core/SQL/SQLite/20/upgrade_001_alter_network_add_ratelimit_burstsize.sql with 100% similarity]
src/core/SQL/SQLite/version/20/upgrade_002_alter_network_add_ratelimit_delay.sql [moved from src/core/SQL/SQLite/20/upgrade_002_alter_network_add_ratelimit_delay.sql with 100% similarity]
src/core/SQL/SQLite/version/20/upgrade_003_alter_network_add_ratelimit_unlimited.sql [moved from src/core/SQL/SQLite/20/upgrade_003_alter_network_add_ratelimit_unlimited.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_000_alter_buffer_add_lastmsgid.sql [moved from src/core/SQL/SQLite/21/upgrade_000_alter_buffer_add_lastmsgid.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_001_update_buffer_set_lastmsgid.sql [moved from src/core/SQL/SQLite/21/upgrade_001_update_buffer_set_lastmsgid.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_002_update_buffer_fix_lastseenmsgid_over_lastmsgid.sql [moved from src/core/SQL/SQLite/21/upgrade_002_update_buffer_fix_lastseenmsgid_over_lastmsgid.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_003_create_table_buffer_new.sql [moved from src/core/SQL/SQLite/21/upgrade_003_create_table_buffer_new.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_004_insert_into_buffer_new_from_buffer.sql [moved from src/core/SQL/SQLite/21/upgrade_004_insert_into_buffer_new_from_buffer.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_005_drop_table_buffer.sql [moved from src/core/SQL/SQLite/21/upgrade_005_drop_table_buffer.sql with 100% similarity]
src/core/SQL/SQLite/version/21/upgrade_006_alter_table_buffer_new_rename_to_buffer.sql [moved from src/core/SQL/SQLite/21/upgrade_006_alter_table_buffer_new_rename_to_buffer.sql with 100% similarity]
src/core/SQL/SQLite/version/3/upgrade_000_update_backlog_flags.sql [moved from src/core/SQL/SQLite/3/upgrade_000_update_backlog_flags.sql with 100% similarity]
src/core/SQL/SQLite/version/3/upgrade_010_update_schemaversion.sql [moved from src/core/SQL/SQLite/3/upgrade_010_update_schemaversion.sql with 100% similarity]
src/core/SQL/SQLite/version/4/upgrade_000_rename_buffertable.sql [moved from src/core/SQL/SQLite/4/upgrade_000_rename_buffertable.sql with 100% similarity]
src/core/SQL/SQLite/version/4/upgrade_010_create_buffertable.sql [moved from src/core/SQL/SQLite/4/upgrade_010_create_buffertable.sql with 100% similarity]
src/core/SQL/SQLite/version/4/upgrade_020_copy_buffertable.sql [moved from src/core/SQL/SQLite/4/upgrade_020_copy_buffertable.sql with 100% similarity]
src/core/SQL/SQLite/version/4/upgrade_030_drop_oldbuffertable.sql [moved from src/core/SQL/SQLite/4/upgrade_030_drop_oldbuffertable.sql with 100% similarity]
src/core/SQL/SQLite/version/4/upgrade_040_create_buffer_idx.sql [moved from src/core/SQL/SQLite/4/upgrade_040_create_buffer_idx.sql with 100% similarity]
src/core/SQL/SQLite/version/4/upgrade_050_create_buffer_cname_idx.sql [moved from src/core/SQL/SQLite/4/upgrade_050_create_buffer_cname_idx.sql with 100% similarity]
src/core/SQL/SQLite/version/5/upgrade_000_rename_networktable.sql [moved from src/core/SQL/SQLite/5/upgrade_000_rename_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/5/upgrade_010_create_newnetworktable.sql [moved from src/core/SQL/SQLite/5/upgrade_010_create_newnetworktable.sql with 100% similarity]
src/core/SQL/SQLite/version/5/upgrade_020_copy_networktable.sql [moved from src/core/SQL/SQLite/5/upgrade_020_copy_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/5/upgrade_030_drop_oldnetworktable.sql [moved from src/core/SQL/SQLite/5/upgrade_030_drop_oldnetworktable.sql with 100% similarity]
src/core/SQL/SQLite/version/5/upgrade_180_create_ircservers.sql [moved from src/core/SQL/SQLite/5/upgrade_180_create_ircservers.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_000_alter_buffertable.sql [moved from src/core/SQL/SQLite/6/upgrade_000_alter_buffertable.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_010_set_statusbuffertype.sql [moved from src/core/SQL/SQLite/6/upgrade_010_set_statusbuffertype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_020_set_channelbuffertype.sql [moved from src/core/SQL/SQLite/6/upgrade_020_set_channelbuffertype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_030_set_querybuffertype.sql [moved from src/core/SQL/SQLite/6/upgrade_030_set_querybuffertype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_040_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_040_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_050_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_050_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_060_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_060_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_070_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_070_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_080_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_080_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_090_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_090_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_100_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_100_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_110_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_110_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_120_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_120_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_130_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_130_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_140_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_140_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_150_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_150_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/6/upgrade_160_update_msgtype.sql [moved from src/core/SQL/SQLite/6/upgrade_160_update_msgtype.sql with 100% similarity]
src/core/SQL/SQLite/version/7/upgrade_000_rename_networktable.sql [moved from src/core/SQL/SQLite/7/upgrade_000_rename_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/7/upgrade_010_create_newnetworktable.sql [moved from src/core/SQL/SQLite/7/upgrade_010_create_newnetworktable.sql with 100% similarity]
src/core/SQL/SQLite/version/7/upgrade_020_copy_networktable.sql [moved from src/core/SQL/SQLite/7/upgrade_020_copy_networktable.sql with 100% similarity]
src/core/SQL/SQLite/version/7/upgrade_030_drop_oldnetworktable.sql [moved from src/core/SQL/SQLite/7/upgrade_030_drop_oldnetworktable.sql with 100% similarity]
src/core/SQL/SQLite/version/7/upgrade_040_alter_buffer_add_lastseen.sql [moved from src/core/SQL/SQLite/7/upgrade_040_alter_buffer_add_lastseen.sql with 100% similarity]
src/core/SQL/SQLite/version/8/upgrade_000_alter_network_add_connected.sql [moved from src/core/SQL/SQLite/8/upgrade_000_alter_network_add_connected.sql with 100% similarity]
src/core/SQL/SQLite/version/8/upgrade_010_alter_buffer_add_key.sql [moved from src/core/SQL/SQLite/8/upgrade_010_alter_buffer_add_key.sql with 100% similarity]
src/core/SQL/SQLite/version/8/upgrade_020_alter_buffer_add_joined.sql [moved from src/core/SQL/SQLite/8/upgrade_020_alter_buffer_add_joined.sql with 100% similarity]
src/core/SQL/SQLite/version/8/upgrade_030_update_buffer_set_joined_for_channels.sql [moved from src/core/SQL/SQLite/8/upgrade_030_update_buffer_set_joined_for_channels.sql with 100% similarity]
src/core/SQL/SQLite/version/9/upgrade_000_create_backlog_idx.sql [moved from src/core/SQL/SQLite/9/upgrade_000_create_backlog_idx.sql with 100% similarity]
src/core/SQL/SQLite/version/9/upgrade_010_create_backlog_idx2.sql [moved from src/core/SQL/SQLite/9/upgrade_010_create_backlog_idx2.sql with 100% similarity]
src/core/SQL/SQLite/version/9/upgrade_020_create_buffer_idx.sql [moved from src/core/SQL/SQLite/9/upgrade_020_create_buffer_idx.sql with 100% similarity]
src/core/SQL/updateSQLResource.sh
src/core/SQL/upgradeSchema.sh
src/core/abstractsqlstorage.cpp
src/core/abstractsqlstorage.h
src/core/sql.qrc

index e5c99e4..83a9366 100755 (executable)
@@ -29,18 +29,28 @@ cat > "$SQL_RES_FILE" <<EOF
 <qresource>
 EOF
 
-# In a subshell, change to the SQL directory so find output remains consistent,
+# In a subshell, use C locale to sort consistently regardless of
+# language, change to SQL directory so find output stays consistent,
 # then...
 # Find all files with a .sql ending...
 # | ...sort the results by version
 # | ...modify the beginning to change '.[...]' into '    <file>./SQL[...]' (add the directory path back)
 #   ...and modify the end to add '[...]</file>'
 # | ...append to the resource file.
-(cd "$SCRIPT_DIR" ; find . -name "*.sql" | sort -t/ -k2,2 -k3n | sed -e "s/^./    <file>.\/$SQL_DIR_NAME/g" -e "s/$/<\/file>/g" >> "$SQL_RES_FILE" )
+(export LC_ALL="C" ; cd "$SCRIPT_DIR" ; find . -name "*.sql" | sort --field-separator=/ --key=2,2 --key=4n | sed -e "s/^./    <file>.\/$SQL_DIR_NAME/g" -e "s/$/<\/file>/g" >> "$SQL_RES_FILE" )
 # Newer versions of sort support a "--version-sort" flag to naturally sort.
 # Unfortunately, some supported platforms don't yet have that version.
-# For now, "-t/ -k2,2 -k3n" does -almost- the same thing (there's a difference
-# when sorting periods versus underscores).
+# For now, "--field-separator=/ --key=2,2 --key=4n" does -almost- the same
+# thing (there's a difference when sorting periods versus underscores).
+#
+# Further explanation for sort command:
+# --field-separator=/
+#   > Separate fields by "/"
+# --key=2,2
+#   > Sort by the second field, i.e. "SQLite" or "Postgres"
+# --key=4n
+#   > Sort by the fourth field using numeric comparison
+#     (e.g. the "##" in "SQL/[database]/versions/##")
 
 # Add the Qt resource footer
 cat >> "$SQL_RES_FILE" <<EOF
index 2f30a11..57792e0 100755 (executable)
@@ -6,7 +6,8 @@
 # "One does not simply 'upgrade the schema'..."
 #
 # When changing Quassel's database schema, you need to follow several steps to
-# handle all cases (upgrade, Postgres migration, etc).
+# handle all cases (upgrade, Postgres migration, etc).  Some of these steps may
+# not apply to all schema upgrades.
 #
 # 1.  Run this script on -both- the PostgreSQL and SQLite directory
 #
 # Modify all query/setup .sql files that touch the 'ircserver' table for
 # -both- PostgreSQL and SQLite.
 #
-# 3.  Create an upgrade script for -both- PostgreSQL and SQLite
+# 3.  Create upgrade scripts for -both- PostgreSQL and SQLite
+#
+# They should go in the newest "[...]/version/##" folders that were created by
+# running this script.  Don't modify the files in lower-numbered version
+# folders.
 #
 # [Example] Modifying the 'ircserver' table to add column 'test'
 # Add the file 'upgrade_000_alter_ircserver_add_test.sql' with contents:
 # > ALTER TABLE ircserver
 # > ADD COLUMN test [additional column-specific details]
 #
-# 4.  Create a pair of migration scripts for moving from SQLite to PostgreSQL
+# 4.  Update the pair of migration scripts for moving from SQLite to PostgreSQL
 #
 # [Example] Modifying the 'ircserver' table to add column 'test'
-# > Modify 'SQLite/##/migrate_read_ircserver.sql' to select from new column
-# > Modify 'PostgreSQL/##/migrate_write_ircserver.sql' to insert to new column
+# > Modify 'SQLite/migrate_read_ircserver.sql' to select from new column
+# > Modify 'PostgreSQL/migrate_write_ircserver.sql' to insert to new column
 #
 # 5.  Update the SQL resource file; re-run CMake if needed
 #
 # The easy way: run "updateSQLResource.sh" in this directory.
 #
 # The manual way:
-# Add the new SQL queries to 'src/core/sql.qrc', update all existing files.
+# Add the new SQL queries to 'src/core/sql.qrc', update all changed existing
+# files.
 #
 # [Example] Modifying the 'ircserver' table to add column 'test'
-# > Add the new upgrade script...
-#   <file>./SQL/SQLite/19/upgrade_000_alter_ircserver_add_test.sql</file>
-#   <file>./SQL/PostgreSQL/18/upgrade_000_alter_ircserver_add_test.sql</file>
-# > Find/replace all non-upgrade scripts from the old schema number to new one
-#   <file>./SQL/SQLite/[18->19]/update_buffer_persistent_channel.sql</file>
-#   <file>./SQL/PostgreSQL/[17->18]/update_buffer_persistent_channel.sql</file>
+# > Add the new upgrade scripts...
+#   <file>./SQL/SQLite/version/19/upgrade_000_alter_ircserver_add_test.sql</file>
+#   <file>./SQL/PostgreSQL/version/18/upgrade_000_alter_ircserver_add_test.sql</file>
+# > Add/update non-upgrade scripts, if any...
+#   <file>./SQL/SQLite/update_buffer_persistent_channel.sql</file>
+#   <file>./SQL/PostgreSQL/update_buffer_persistent_channel.sql</file>
 #   (etc)
 #
 # 6.  Update the migration logic in 'src/core/abstractsqlstorage.h', and the
 #
 # 9.  Test everything!  Upgrade, migrate, new setups, new client/old core,
 # old client/new core, etc.
+#
+# More specifically, you likely should try the following combinations,
+# especially if you change the protocol.  Check if any data or settings get
+# lost or corrupted, or if anything unusual shows up in the log.
+#
+# [Mac/Linux]
+# Fresh configuration (reset the database and settings)
+# > SQLite
+#   > New core, new client
+#   > New core, old client
+#   > Old core, new client
+#   > New monolithic (combined core/client build)
+# > Postgres
+#   > New core, new client
+#   > New core, old client
+#   > Old core, new client
+# Migration (set up SQLite, then --select-backend PostgreSQL)
+# > SQLite -> Postgres, new core, new client
+# Upgrading existing (set up a copy from 'master', then build your branch)
+# > SQLite
+#   > Old -> new core
+#   > Old monolithic -> new monolithic
+# > Postgres
+#   > Old -> new core
+#
+# [Windows]
+# Fresh configuration (reset the database and settings)
+# > SQLite
+#   > New core, new client
+#   > New core, old client
+#   > Old core, new client
+#   > New monolithic (combined core/client build)
+# Upgrading existing (set up a copy from 'master', then build your branch)
+# > SQLite
+#   > Old -> new core
+#   > Old monolithic -> new monolithic
+# (If someone figures out how Postgres runs on Windows with Quassel, please
+#  update this comment)
+#
+# Yes, this looks excessive, and maybe it is.  But it's easy to overlook
+# some minor typo that breaks the client/core for a certain configuration.
+# People may get unhappy and rioting might happen in the streets.  And we don't
+# want that, do we?
+#
+# Thank you for reading this guide and good luck with your changes!
 
 TARGET_DIR="$1"
 # If not specified, assume current directory
@@ -95,25 +146,40 @@ if [ ! "$TARGET_DIR" ]; then
 fi
 
 if [[ ! -d "$TARGET_DIR" ]]; then
-    echo "No such directory '$TARGET_DIR'"
+    echo "No such directory '$TARGET_DIR'" >&2
     exit 1
 fi
 
-cd "$TARGET_DIR"
+# Find out the name of the target directory to offer some guidance later.
+TARGET_DB_NAME=$(basename "$TARGET_DIR")
+
+# Upgrade scripts are stored in the 'version' subdirectory, e.g.
+# 'SQL/[database]/version/##'.
+cd "$TARGET_DIR/version"
 
 # Grab the current schema version
 CURRENT_VERSION=$(ls | sort -n | tail -n1)
 
 if [ ! $CURRENT_VERSION ]; then
-    echo "No previous schema found to upgrade from"
+    echo "No previous schema found to upgrade from" >&2
     exit 2
 fi
 
 # Increment by one
 ((NEW_VERSION=$CURRENT_VERSION + 1))
 
-# Create the new schema directory, add the directory, and move all files over...
+# Create the new schema directory.
 mkdir "$NEW_VERSION"
-git add "$NEW_VERSION"
-# ...except for 'upgrade_' scripts.
-find "$CURRENT_VERSION" -maxdepth 1 -type f \! -name "upgrade_*" \! -name ".*" -exec git mv {} "$NEW_VERSION" \;
+# Git doesn't track empty folders, no need for 'git add "$NEW_VERSION"'.
+
+echo "New schema version '$TARGET_DB_NAME/version/$NEW_VERSION' created." >&2
+echo "Create any needed 'upgrade_[...].sql' scripts in this folder." >&2
+
+# Don't move any files over.  Schema version upgrade scripts are now stored
+# independently of the main SQL files in order to make the repository history
+# more useful and easier to work with.
+
+# Granted, this script doesn't do anything one couldn't easily manually do.
+# I'd argue that's a good thing.  Though as this script offers documentation
+# and guidance for contributors new to the database schema system as well as
+# helping migrate those used to the older method, it seems worthwhile keeping.
index a59b4c1..c100d4e 100644 (file)
@@ -151,10 +151,20 @@ Storage::State AbstractSqlStorage::init(const QVariantMap &settings)
 
 QString AbstractSqlStorage::queryString(const QString &queryName, int version)
 {
-    if (version == 0)
-        version = schemaVersion();
+    QFileInfo queryInfo;
+
+    // The current schema is stored in the root folder, while upgrade queries are stored in the
+    // 'versions/##' subfolders.
+    if (version == 0) {
+        // Use the current SQL schema, not a versioned request
+        queryInfo = QFileInfo(QString(":/SQL/%1/%2.sql").arg(displayName()).arg(queryName));
+        // If version is needed later, get it via version = schemaVersion();
+    } else {
+        // Use the specified schema version, not the general folder
+        queryInfo = QFileInfo(QString(":/SQL/%1/version/%2/%3.sql")
+                              .arg(displayName()).arg(version).arg(queryName));
+    }
 
-    QFileInfo queryInfo(QString(":/SQL/%1/%2/%3.sql").arg(displayName()).arg(version).arg(queryName));
     if (!queryInfo.exists() || !queryInfo.isFile() || !queryInfo.isReadable()) {
         qCritical() << "Unable to read SQL-Query" << queryName << "for engine" << displayName();
         return QString();
@@ -173,7 +183,8 @@ QString AbstractSqlStorage::queryString(const QString &queryName, int version)
 QStringList AbstractSqlStorage::setupQueries()
 {
     QStringList queries;
-    QDir dir = QDir(QString(":/SQL/%1/%2/").arg(displayName()).arg(schemaVersion()));
+    // The current schema is stored in the root folder, including setup scripts.
+    QDir dir = QDir(QString(":/SQL/%1/").arg(displayName()));
     foreach(QFileInfo fileInfo, dir.entryInfoList(QStringList() << "setup*", QDir::NoFilter, QDir::Name)) {
         queries << queryString(fileInfo.baseName());
     }
@@ -211,7 +222,8 @@ bool AbstractSqlStorage::setup(const QVariantMap &settings)
 QStringList AbstractSqlStorage::upgradeQueries(int version)
 {
     QStringList queries;
-    QDir dir = QDir(QString(":/SQL/%1/%2/").arg(displayName()).arg(version));
+    // Upgrade queries are stored in the 'version/##' subfolders.
+    QDir dir = QDir(QString(":/SQL/%1/version/%2/").arg(displayName()).arg(version));
     foreach(QFileInfo fileInfo, dir.entryInfoList(QStringList() << "upgrade*", QDir::NoFilter, QDir::Name)) {
         queries << queryString(fileInfo.baseName(), version);
     }
@@ -248,7 +260,8 @@ int AbstractSqlStorage::schemaVersion()
 
     int version;
     bool ok;
-    QDir dir = QDir(":/SQL/" + displayName());
+    // Schema versions are stored in the 'version/##' subfolders.
+    QDir dir = QDir(QString(":/SQL/%1/version/").arg(displayName()));
     foreach(QFileInfo fileInfo, dir.entryInfoList()) {
         if (!fileInfo.isDir())
             continue;
index fc1f67e..7f8e38f 100644 (file)
@@ -50,8 +50,24 @@ protected:
 
     QSqlDatabase logDb();
 
-    QString queryString(const QString &queryName, int version);
-    inline QString queryString(const QString &queryName) { return queryString(queryName, 0); }
+    /**
+     * Fetch an SQL query string by name and optional schema version
+     *
+     * Loads the named SQL query from the built-in SQL resource collection, returning it as a
+     * string.  If a version is specified, it'll be loaded from the schema version-specific folder
+     * instead.
+     *
+     * @see schemaVersion()
+     *
+     * @param[in] queryName  File name of the SQL query, minus the .sql extension
+     * @param[in] version
+     * @parblock
+     * SQL schema version; if 0, fetches from current version, otherwise loads from the specified
+     * schema version instead of the current schema files.
+     * @endparblock
+     * @return String with the requested SQL query, ready for parameter substitution
+     */
+    QString queryString(const QString &queryName, int version = 0);
 
     QStringList setupQueries();
 
index 0ac40d9..1ce6c88 100644 (file)
 <!DOCTYPE RCC><RCC version="1.0">
 <qresource>
-    <file>./SQL/PostgreSQL/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql</file>
-    <file>./SQL/PostgreSQL/16/upgrade_000_alter_network_add_sasl.sql</file>
-    <file>./SQL/PostgreSQL/17/upgrade_000_alter_quasseluser_add_passwordversion.sql</file>
-    <file>./SQL/PostgreSQL/18/upgrade_000_alter_ircserver_add_sslverify.sql</file>
-    <file>./SQL/PostgreSQL/19/upgrade_000_alter_network_add_ratelimit_usecustom.sql</file>
-    <file>./SQL/PostgreSQL/19/upgrade_001_alter_network_add_ratelimit_burstsize.sql</file>
-    <file>./SQL/PostgreSQL/19/upgrade_002_alter_network_add_ratelimit_delay.sql</file>
-    <file>./SQL/PostgreSQL/19/upgrade_003_alter_network_add_ratelimit_unlimited.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_backlog_by_uid.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_backlog_for_buffer.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_backlog_for_network.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_buffer_for_bufferid.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_buffers_by_uid.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_buffers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_identity.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_ircservers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_networks_by_uid.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_network.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_nicks.sql</file>
-    <file>./SQL/PostgreSQL/20/delete_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_buffer.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_identity.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_message.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_network.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_nick.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_sender.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_server.sql</file>
-    <file>./SQL/PostgreSQL/20/insert_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_backlog.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_buffer.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_identity_nick.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_identity.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_ircserver.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_network.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_sender.sql</file>
-    <file>./SQL/PostgreSQL/20/migrate_write_usersetting.sql</file>
-    <file>./SQL/PostgreSQL/20/select_authuser.sql</file>
-    <file>./SQL/PostgreSQL/20/select_buffer_by_id.sql</file>
-    <file>./SQL/PostgreSQL/20/select_bufferByName.sql</file>
-    <file>./SQL/PostgreSQL/20/select_bufferExists.sql</file>
-    <file>./SQL/PostgreSQL/20/select_buffer_lastseen_messages.sql</file>
-    <file>./SQL/PostgreSQL/20/select_buffer_markerlinemsgids.sql</file>
-    <file>./SQL/PostgreSQL/20/select_buffers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/20/select_buffers.sql</file>
-    <file>./SQL/PostgreSQL/20/select_checkidentity.sql</file>
-    <file>./SQL/PostgreSQL/20/select_connected_networks.sql</file>
-    <file>./SQL/PostgreSQL/20/select_identities.sql</file>
-    <file>./SQL/PostgreSQL/20/select_internaluser.sql</file>
-    <file>./SQL/PostgreSQL/20/select_messagesAllNew.sql</file>
-    <file>./SQL/PostgreSQL/20/select_messagesAll.sql</file>
-    <file>./SQL/PostgreSQL/20/select_messagesNewerThan.sql</file>
-    <file>./SQL/PostgreSQL/20/select_messagesNewestK.sql</file>
-    <file>./SQL/PostgreSQL/20/select_messagesRange.sql</file>
-    <file>./SQL/PostgreSQL/20/select_network_awaymsg.sql</file>
-    <file>./SQL/PostgreSQL/20/select_networkExists.sql</file>
-    <file>./SQL/PostgreSQL/20/select_networks_for_user.sql</file>
-    <file>./SQL/PostgreSQL/20/select_network_usermode.sql</file>
-    <file>./SQL/PostgreSQL/20/select_nicks.sql</file>
-    <file>./SQL/PostgreSQL/20/select_persistent_channels.sql</file>
-    <file>./SQL/PostgreSQL/20/select_senderid.sql</file>
-    <file>./SQL/PostgreSQL/20/select_servers_for_network.sql</file>
-    <file>./SQL/PostgreSQL/20/select_userid.sql</file>
-    <file>./SQL/PostgreSQL/20/select_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_000_quasseluser.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_010_sender.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_020_identity.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_030_identity_nick.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_040_network.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_050_buffer.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_060_backlog.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_070_coreinfo.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_080_ircservers.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_090_backlog_idx.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_100_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_110_alter_sender_seq.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_120_alter_messageid_seq.sql</file>
-    <file>./SQL/PostgreSQL/20/setup_130_function_lastmsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/update_backlog_bufferid.sql</file>
-    <file>./SQL/PostgreSQL/20/update_buffer_lastmsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/update_buffer_lastseen.sql</file>
-    <file>./SQL/PostgreSQL/20/update_buffer_markerlinemsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/update_buffer_name.sql</file>
-    <file>./SQL/PostgreSQL/20/update_buffer_persistent_channel.sql</file>
-    <file>./SQL/PostgreSQL/20/update_buffer_set_channel_key.sql</file>
-    <file>./SQL/PostgreSQL/20/update_identity.sql</file>
-    <file>./SQL/PostgreSQL/20/update_network_connected.sql</file>
-    <file>./SQL/PostgreSQL/20/update_network_set_awaymsg.sql</file>
-    <file>./SQL/PostgreSQL/20/update_network_set_usermode.sql</file>
-    <file>./SQL/PostgreSQL/20/update_network.sql</file>
-    <file>./SQL/PostgreSQL/20/update_username.sql</file>
-    <file>./SQL/PostgreSQL/20/update_userpassword.sql</file>
-    <file>./SQL/PostgreSQL/20/update_user_setting.sql</file>
-    <file>./SQL/PostgreSQL/20/upgrade_000_alter_buffer_add_lastmsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/upgrade_001_add_function_populate_lastmsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/upgrade_002_run_function_populate_lastmsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/upgrade_003_correct_bad_lastseenmsgid.sql</file>
-    <file>./SQL/PostgreSQL/20/upgrade_004_add_lastseenmsgid_constraint.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/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>
-    <file>./SQL/SQLite/3/upgrade_010_update_schemaversion.sql</file>
-    <file>./SQL/SQLite/4/upgrade_000_rename_buffertable.sql</file>
-    <file>./SQL/SQLite/4/upgrade_010_create_buffertable.sql</file>
-    <file>./SQL/SQLite/4/upgrade_020_copy_buffertable.sql</file>
-    <file>./SQL/SQLite/4/upgrade_030_drop_oldbuffertable.sql</file>
-    <file>./SQL/SQLite/4/upgrade_040_create_buffer_idx.sql</file>
-    <file>./SQL/SQLite/4/upgrade_050_create_buffer_cname_idx.sql</file>
-    <file>./SQL/SQLite/5/upgrade_000_rename_networktable.sql</file>
-    <file>./SQL/SQLite/5/upgrade_010_create_newnetworktable.sql</file>
-    <file>./SQL/SQLite/5/upgrade_020_copy_networktable.sql</file>
-    <file>./SQL/SQLite/5/upgrade_030_drop_oldnetworktable.sql</file>
-    <file>./SQL/SQLite/5/upgrade_180_create_ircservers.sql</file>
-    <file>./SQL/SQLite/6/upgrade_000_alter_buffertable.sql</file>
-    <file>./SQL/SQLite/6/upgrade_010_set_statusbuffertype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_020_set_channelbuffertype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_030_set_querybuffertype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_040_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_050_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_060_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_070_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_080_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_090_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_100_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_110_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_120_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_130_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_140_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_150_update_msgtype.sql</file>
-    <file>./SQL/SQLite/6/upgrade_160_update_msgtype.sql</file>
-    <file>./SQL/SQLite/7/upgrade_000_rename_networktable.sql</file>
-    <file>./SQL/SQLite/7/upgrade_010_create_newnetworktable.sql</file>
-    <file>./SQL/SQLite/7/upgrade_020_copy_networktable.sql</file>
-    <file>./SQL/SQLite/7/upgrade_030_drop_oldnetworktable.sql</file>
-    <file>./SQL/SQLite/7/upgrade_040_alter_buffer_add_lastseen.sql</file>
-    <file>./SQL/SQLite/8/upgrade_000_alter_network_add_connected.sql</file>
-    <file>./SQL/SQLite/8/upgrade_010_alter_buffer_add_key.sql</file>
-    <file>./SQL/SQLite/8/upgrade_020_alter_buffer_add_joined.sql</file>
-    <file>./SQL/SQLite/8/upgrade_030_update_buffer_set_joined_for_channels.sql</file>
-    <file>./SQL/SQLite/9/upgrade_000_create_backlog_idx.sql</file>
-    <file>./SQL/SQLite/9/upgrade_010_create_backlog_idx2.sql</file>
-    <file>./SQL/SQLite/9/upgrade_020_create_buffer_idx.sql</file>
-    <file>./SQL/SQLite/10/upgrade_000_switch_to_msgid.sql</file>
-    <file>./SQL/SQLite/10/upgrade_010_rename_buffer_table.sql</file>
-    <file>./SQL/SQLite/10/upgrade_020_create_buffer_table.sql</file>
-    <file>./SQL/SQLite/10/upgrade_030_copy_buffer_table.sql</file>
-    <file>./SQL/SQLite/10/upgrade_040_drop_buffer_old_table.sql</file>
-    <file>./SQL/SQLite/11/upgrade_000_create_user_setting.sql</file>
-    <file>./SQL/SQLite/12/upgrade_000_create_identity.sql</file>
-    <file>./SQL/SQLite/12/upgrade_010_create_identity_nick.sql</file>
-    <file>./SQL/SQLite/12/upgrade_020_rename_servertable.sql</file>
-    <file>./SQL/SQLite/12/upgrade_030_create_ircserver.sql</file>
-    <file>./SQL/SQLite/12/upgrade_040_copy_ircserver.sql</file>
-    <file>./SQL/SQLite/12/upgrade_050_drop_ircserverold.sql</file>
-    <file>./SQL/SQLite/13/upgrade_000_create_buffer_user_idx.sql</file>
-    <file>./SQL/SQLite/13/upgrade_010_create_buffer_cname_idx.sql</file>
-    <file>./SQL/SQLite/13/upgrade_020_create_buffer_cname_idx.sql</file>
-    <file>./SQL/SQLite/14/upgrade_000_rename_networktable.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/upgrade_000_fix_ircservers.sql</file>
-    <file>./SQL/SQLite/15/upgrade_000_fix_network.sql</file>
-    <file>./SQL/SQLite/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql</file>
-    <file>./SQL/SQLite/17/upgrade_000_alter_network_add_sasl.sql</file>
-    <file>./SQL/SQLite/17/upgrade_001_alter_network_add_sasl.sql</file>
-    <file>./SQL/SQLite/17/upgrade_002_alter_network_add_sasl.sql</file>
-    <file>./SQL/SQLite/18/upgrade_000_alter_quasseluser_add_passwordversion.sql</file>
-    <file>./SQL/SQLite/19/upgrade_000_alter_ircserver_add_sslverify.sql</file>
-    <file>./SQL/SQLite/20/upgrade_000_alter_network_add_ratelimit_usecustom.sql</file>
-    <file>./SQL/SQLite/20/upgrade_001_alter_network_add_ratelimit_burstsize.sql</file>
-    <file>./SQL/SQLite/20/upgrade_002_alter_network_add_ratelimit_delay.sql</file>
-    <file>./SQL/SQLite/20/upgrade_003_alter_network_add_ratelimit_unlimited.sql</file>
-    <file>./SQL/SQLite/21/delete_backlog_by_uid.sql</file>
-    <file>./SQL/SQLite/21/delete_backlog_for_buffer.sql</file>
-    <file>./SQL/SQLite/21/delete_backlog_for_network.sql</file>
-    <file>./SQL/SQLite/21/delete_buffer_for_bufferid.sql</file>
-    <file>./SQL/SQLite/21/delete_buffers_by_uid.sql</file>
-    <file>./SQL/SQLite/21/delete_buffers_for_network.sql</file>
-    <file>./SQL/SQLite/21/delete_identity.sql</file>
-    <file>./SQL/SQLite/21/delete_ircservers_for_network.sql</file>
-    <file>./SQL/SQLite/21/delete_networks_by_uid.sql</file>
-    <file>./SQL/SQLite/21/delete_network.sql</file>
-    <file>./SQL/SQLite/21/delete_nicks.sql</file>
-    <file>./SQL/SQLite/21/delete_quasseluser.sql</file>
-    <file>./SQL/SQLite/21/insert_buffer.sql</file>
-    <file>./SQL/SQLite/21/insert_identity.sql</file>
-    <file>./SQL/SQLite/21/insert_message.sql</file>
-    <file>./SQL/SQLite/21/insert_network.sql</file>
-    <file>./SQL/SQLite/21/insert_nick.sql</file>
-    <file>./SQL/SQLite/21/insert_quasseluser.sql</file>
-    <file>./SQL/SQLite/21/insert_sender.sql</file>
-    <file>./SQL/SQLite/21/insert_server.sql</file>
-    <file>./SQL/SQLite/21/insert_user_setting.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_backlog.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_buffer.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_identity_nick.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_identity.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_ircserver.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_network.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_quasseluser.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_sender.sql</file>
-    <file>./SQL/SQLite/21/migrate_read_usersetting.sql</file>
-    <file>./SQL/SQLite/21/select_authuser.sql</file>
-    <file>./SQL/SQLite/21/select_buffer_by_id.sql</file>
-    <file>./SQL/SQLite/21/select_bufferByName.sql</file>
-    <file>./SQL/SQLite/21/select_bufferExists.sql</file>
-    <file>./SQL/SQLite/21/select_buffer_lastseen_messages.sql</file>
-    <file>./SQL/SQLite/21/select_buffer_markerlinemsgids.sql</file>
-    <file>./SQL/SQLite/21/select_buffers_for_merge.sql</file>
-    <file>./SQL/SQLite/21/select_buffers_for_network.sql</file>
-    <file>./SQL/SQLite/21/select_buffers.sql</file>
-    <file>./SQL/SQLite/21/select_checkidentity.sql</file>
-    <file>./SQL/SQLite/21/select_connected_networks.sql</file>
-    <file>./SQL/SQLite/21/select_identities.sql</file>
-    <file>./SQL/SQLite/21/select_internaluser.sql</file>
-    <file>./SQL/SQLite/21/select_messagesAllNew.sql</file>
-    <file>./SQL/SQLite/21/select_messagesAll.sql</file>
-    <file>./SQL/SQLite/21/select_messagesNewerThan.sql</file>
-    <file>./SQL/SQLite/21/select_messagesNewestK.sql</file>
-    <file>./SQL/SQLite/21/select_messagesRange.sql</file>
-    <file>./SQL/SQLite/21/select_network_awaymsg.sql</file>
-    <file>./SQL/SQLite/21/select_networkExists.sql</file>
-    <file>./SQL/SQLite/21/select_networks_for_user.sql</file>
-    <file>./SQL/SQLite/21/select_network_usermode.sql</file>
-    <file>./SQL/SQLite/21/select_nicks.sql</file>
-    <file>./SQL/SQLite/21/select_persistent_channels.sql</file>
-    <file>./SQL/SQLite/21/select_servers_for_network.sql</file>
-    <file>./SQL/SQLite/21/select_userid.sql</file>
-    <file>./SQL/SQLite/21/select_user_setting.sql</file>
-    <file>./SQL/SQLite/21/setup_000_quasseluser.sql</file>
-    <file>./SQL/SQLite/21/setup_010_sender.sql</file>
-    <file>./SQL/SQLite/21/setup_020_network.sql</file>
-    <file>./SQL/SQLite/21/setup_030_buffer.sql</file>
-    <file>./SQL/SQLite/21/setup_040_buffer_idx.sql</file>
-    <file>./SQL/SQLite/21/setup_050_buffer_cname_idx.sql</file>
-    <file>./SQL/SQLite/21/setup_060_backlog.sql</file>
-    <file>./SQL/SQLite/21/setup_070_coreinfo.sql</file>
-    <file>./SQL/SQLite/21/setup_080_ircservers.sql</file>
-    <file>./SQL/SQLite/21/setup_090_backlog_idx.sql</file>
-    <file>./SQL/SQLite/21/setup_100_backlog_idx2.sql</file>
-    <file>./SQL/SQLite/21/setup_110_buffer_user_idx.sql</file>
-    <file>./SQL/SQLite/21/setup_120_user_setting.sql</file>
-    <file>./SQL/SQLite/21/setup_130_identity.sql</file>
-    <file>./SQL/SQLite/21/setup_140_identity_nick.sql</file>
-    <file>./SQL/SQLite/21/update_backlog_bufferid.sql</file>
-    <file>./SQL/SQLite/21/update_buffer_lastmsgid.sql</file>
-    <file>./SQL/SQLite/21/update_buffer_lastseen.sql</file>
-    <file>./SQL/SQLite/21/update_buffer_markerlinemsgid.sql</file>
-    <file>./SQL/SQLite/21/update_buffer_name.sql</file>
-    <file>./SQL/SQLite/21/update_buffer_persistent_channel.sql</file>
-    <file>./SQL/SQLite/21/update_buffer_set_channel_key.sql</file>
-    <file>./SQL/SQLite/21/update_identity.sql</file>
-    <file>./SQL/SQLite/21/update_network_connected.sql</file>
-    <file>./SQL/SQLite/21/update_network_set_awaymsg.sql</file>
-    <file>./SQL/SQLite/21/update_network_set_usermode.sql</file>
-    <file>./SQL/SQLite/21/update_network.sql</file>
-    <file>./SQL/SQLite/21/update_username.sql</file>
-    <file>./SQL/SQLite/21/update_userpassword.sql</file>
-    <file>./SQL/SQLite/21/update_user_setting.sql</file>
-    <file>./SQL/SQLite/21/upgrade_000_alter_buffer_add_lastmsgid.sql</file>
-    <file>./SQL/SQLite/21/upgrade_001_update_buffer_set_lastmsgid.sql</file>
-    <file>./SQL/SQLite/21/upgrade_002_update_buffer_fix_lastseenmsgid_over_lastmsgid.sql</file>
-    <file>./SQL/SQLite/21/upgrade_003_create_table_buffer_new.sql</file>
-    <file>./SQL/SQLite/21/upgrade_004_insert_into_buffer_new_from_buffer.sql</file>
-    <file>./SQL/SQLite/21/upgrade_005_drop_table_buffer.sql</file>
-    <file>./SQL/SQLite/21/upgrade_006_alter_table_buffer_new_rename_to_buffer.sql</file>
+    <file>./SQL/PostgreSQL/delete_backlog_by_uid.sql</file>
+    <file>./SQL/PostgreSQL/delete_backlog_for_buffer.sql</file>
+    <file>./SQL/PostgreSQL/delete_backlog_for_network.sql</file>
+    <file>./SQL/PostgreSQL/delete_buffer_for_bufferid.sql</file>
+    <file>./SQL/PostgreSQL/delete_buffers_by_uid.sql</file>
+    <file>./SQL/PostgreSQL/delete_buffers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/delete_identity.sql</file>
+    <file>./SQL/PostgreSQL/delete_ircservers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/delete_network.sql</file>
+    <file>./SQL/PostgreSQL/delete_networks_by_uid.sql</file>
+    <file>./SQL/PostgreSQL/delete_nicks.sql</file>
+    <file>./SQL/PostgreSQL/delete_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/insert_buffer.sql</file>
+    <file>./SQL/PostgreSQL/insert_identity.sql</file>
+    <file>./SQL/PostgreSQL/insert_message.sql</file>
+    <file>./SQL/PostgreSQL/insert_network.sql</file>
+    <file>./SQL/PostgreSQL/insert_nick.sql</file>
+    <file>./SQL/PostgreSQL/insert_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/insert_sender.sql</file>
+    <file>./SQL/PostgreSQL/insert_server.sql</file>
+    <file>./SQL/PostgreSQL/insert_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_backlog.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_buffer.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_identity.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_identity_nick.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_ircserver.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_network.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_sender.sql</file>
+    <file>./SQL/PostgreSQL/migrate_write_usersetting.sql</file>
+    <file>./SQL/PostgreSQL/select_authuser.sql</file>
+    <file>./SQL/PostgreSQL/select_bufferByName.sql</file>
+    <file>./SQL/PostgreSQL/select_bufferExists.sql</file>
+    <file>./SQL/PostgreSQL/select_buffer_by_id.sql</file>
+    <file>./SQL/PostgreSQL/select_buffer_lastseen_messages.sql</file>
+    <file>./SQL/PostgreSQL/select_buffer_markerlinemsgids.sql</file>
+    <file>./SQL/PostgreSQL/select_buffers.sql</file>
+    <file>./SQL/PostgreSQL/select_buffers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/select_checkidentity.sql</file>
+    <file>./SQL/PostgreSQL/select_connected_networks.sql</file>
+    <file>./SQL/PostgreSQL/select_identities.sql</file>
+    <file>./SQL/PostgreSQL/select_internaluser.sql</file>
+    <file>./SQL/PostgreSQL/select_messagesAll.sql</file>
+    <file>./SQL/PostgreSQL/select_messagesAllNew.sql</file>
+    <file>./SQL/PostgreSQL/select_messagesNewerThan.sql</file>
+    <file>./SQL/PostgreSQL/select_messagesNewestK.sql</file>
+    <file>./SQL/PostgreSQL/select_messagesRange.sql</file>
+    <file>./SQL/PostgreSQL/select_networkExists.sql</file>
+    <file>./SQL/PostgreSQL/select_network_awaymsg.sql</file>
+    <file>./SQL/PostgreSQL/select_network_usermode.sql</file>
+    <file>./SQL/PostgreSQL/select_networks_for_user.sql</file>
+    <file>./SQL/PostgreSQL/select_nicks.sql</file>
+    <file>./SQL/PostgreSQL/select_persistent_channels.sql</file>
+    <file>./SQL/PostgreSQL/select_senderid.sql</file>
+    <file>./SQL/PostgreSQL/select_servers_for_network.sql</file>
+    <file>./SQL/PostgreSQL/select_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/select_userid.sql</file>
+    <file>./SQL/PostgreSQL/setup_000_quasseluser.sql</file>
+    <file>./SQL/PostgreSQL/setup_010_sender.sql</file>
+    <file>./SQL/PostgreSQL/setup_020_identity.sql</file>
+    <file>./SQL/PostgreSQL/setup_030_identity_nick.sql</file>
+    <file>./SQL/PostgreSQL/setup_040_network.sql</file>
+    <file>./SQL/PostgreSQL/setup_050_buffer.sql</file>
+    <file>./SQL/PostgreSQL/setup_060_backlog.sql</file>
+    <file>./SQL/PostgreSQL/setup_070_coreinfo.sql</file>
+    <file>./SQL/PostgreSQL/setup_080_ircservers.sql</file>
+    <file>./SQL/PostgreSQL/setup_090_backlog_idx.sql</file>
+    <file>./SQL/PostgreSQL/setup_100_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/setup_110_alter_sender_seq.sql</file>
+    <file>./SQL/PostgreSQL/setup_120_alter_messageid_seq.sql</file>
+    <file>./SQL/PostgreSQL/setup_130_function_lastmsgid.sql</file>
+    <file>./SQL/PostgreSQL/update_backlog_bufferid.sql</file>
+    <file>./SQL/PostgreSQL/update_buffer_lastmsgid.sql</file>
+    <file>./SQL/PostgreSQL/update_buffer_lastseen.sql</file>
+    <file>./SQL/PostgreSQL/update_buffer_markerlinemsgid.sql</file>
+    <file>./SQL/PostgreSQL/update_buffer_name.sql</file>
+    <file>./SQL/PostgreSQL/update_buffer_persistent_channel.sql</file>
+    <file>./SQL/PostgreSQL/update_buffer_set_channel_key.sql</file>
+    <file>./SQL/PostgreSQL/update_identity.sql</file>
+    <file>./SQL/PostgreSQL/update_network.sql</file>
+    <file>./SQL/PostgreSQL/update_network_connected.sql</file>
+    <file>./SQL/PostgreSQL/update_network_set_awaymsg.sql</file>
+    <file>./SQL/PostgreSQL/update_network_set_usermode.sql</file>
+    <file>./SQL/PostgreSQL/update_user_setting.sql</file>
+    <file>./SQL/PostgreSQL/update_username.sql</file>
+    <file>./SQL/PostgreSQL/update_userpassword.sql</file>
+    <file>./SQL/PostgreSQL/version/15/upgrade_000_alter_buffer_add_markerlinemsgid.sql</file>
+    <file>./SQL/PostgreSQL/version/16/upgrade_000_alter_network_add_sasl.sql</file>
+    <file>./SQL/PostgreSQL/version/17/upgrade_000_alter_quasseluser_add_passwordversion.sql</file>
+    <file>./SQL/PostgreSQL/version/18/upgrade_000_alter_ircserver_add_sslverify.sql</file>
+    <file>./SQL/PostgreSQL/version/19/upgrade_000_alter_network_add_ratelimit_usecustom.sql</file>
+    <file>./SQL/PostgreSQL/version/19/upgrade_001_alter_network_add_ratelimit_burstsize.sql</file>
+    <file>./SQL/PostgreSQL/version/19/upgrade_002_alter_network_add_ratelimit_delay.sql</file>
+    <file>./SQL/PostgreSQL/version/19/upgrade_003_alter_network_add_ratelimit_unlimited.sql</file>
+    <file>./SQL/PostgreSQL/version/20/upgrade_000_alter_buffer_add_lastmsgid.sql</file>
+    <file>./SQL/PostgreSQL/version/20/upgrade_001_add_function_populate_lastmsgid.sql</file>
+    <file>./SQL/PostgreSQL/version/20/upgrade_002_run_function_populate_lastmsgid.sql</file>
+    <file>./SQL/PostgreSQL/version/20/upgrade_003_correct_bad_lastseenmsgid.sql</file>
+    <file>./SQL/PostgreSQL/version/20/upgrade_004_add_lastseenmsgid_constraint.sql</file>
+    <file>./SQL/SQLite/delete_backlog_by_uid.sql</file>
+    <file>./SQL/SQLite/delete_backlog_for_buffer.sql</file>
+    <file>./SQL/SQLite/delete_backlog_for_network.sql</file>
+    <file>./SQL/SQLite/delete_buffer_for_bufferid.sql</file>
+    <file>./SQL/SQLite/delete_buffers_by_uid.sql</file>
+    <file>./SQL/SQLite/delete_buffers_for_network.sql</file>
+    <file>./SQL/SQLite/delete_identity.sql</file>
+    <file>./SQL/SQLite/delete_ircservers_for_network.sql</file>
+    <file>./SQL/SQLite/delete_network.sql</file>
+    <file>./SQL/SQLite/delete_networks_by_uid.sql</file>
+    <file>./SQL/SQLite/delete_nicks.sql</file>
+    <file>./SQL/SQLite/delete_quasseluser.sql</file>
+    <file>./SQL/SQLite/insert_buffer.sql</file>
+    <file>./SQL/SQLite/insert_identity.sql</file>
+    <file>./SQL/SQLite/insert_message.sql</file>
+    <file>./SQL/SQLite/insert_network.sql</file>
+    <file>./SQL/SQLite/insert_nick.sql</file>
+    <file>./SQL/SQLite/insert_quasseluser.sql</file>
+    <file>./SQL/SQLite/insert_sender.sql</file>
+    <file>./SQL/SQLite/insert_server.sql</file>
+    <file>./SQL/SQLite/insert_user_setting.sql</file>
+    <file>./SQL/SQLite/migrate_read_backlog.sql</file>
+    <file>./SQL/SQLite/migrate_read_buffer.sql</file>
+    <file>./SQL/SQLite/migrate_read_identity.sql</file>
+    <file>./SQL/SQLite/migrate_read_identity_nick.sql</file>
+    <file>./SQL/SQLite/migrate_read_ircserver.sql</file>
+    <file>./SQL/SQLite/migrate_read_network.sql</file>
+    <file>./SQL/SQLite/migrate_read_quasseluser.sql</file>
+    <file>./SQL/SQLite/migrate_read_sender.sql</file>
+    <file>./SQL/SQLite/migrate_read_usersetting.sql</file>
+    <file>./SQL/SQLite/select_authuser.sql</file>
+    <file>./SQL/SQLite/select_bufferByName.sql</file>
+    <file>./SQL/SQLite/select_bufferExists.sql</file>
+    <file>./SQL/SQLite/select_buffer_by_id.sql</file>
+    <file>./SQL/SQLite/select_buffer_lastseen_messages.sql</file>
+    <file>./SQL/SQLite/select_buffer_markerlinemsgids.sql</file>
+    <file>./SQL/SQLite/select_buffers.sql</file>
+    <file>./SQL/SQLite/select_buffers_for_merge.sql</file>
+    <file>./SQL/SQLite/select_buffers_for_network.sql</file>
+    <file>./SQL/SQLite/select_checkidentity.sql</file>
+    <file>./SQL/SQLite/select_connected_networks.sql</file>
+    <file>./SQL/SQLite/select_identities.sql</file>
+    <file>./SQL/SQLite/select_internaluser.sql</file>
+    <file>./SQL/SQLite/select_messagesAll.sql</file>
+    <file>./SQL/SQLite/select_messagesAllNew.sql</file>
+    <file>./SQL/SQLite/select_messagesNewerThan.sql</file>
+    <file>./SQL/SQLite/select_messagesNewestK.sql</file>
+    <file>./SQL/SQLite/select_messagesRange.sql</file>
+    <file>./SQL/SQLite/select_networkExists.sql</file>
+    <file>./SQL/SQLite/select_network_awaymsg.sql</file>
+    <file>./SQL/SQLite/select_network_usermode.sql</file>
+    <file>./SQL/SQLite/select_networks_for_user.sql</file>
+    <file>./SQL/SQLite/select_nicks.sql</file>
+    <file>./SQL/SQLite/select_persistent_channels.sql</file>
+    <file>./SQL/SQLite/select_servers_for_network.sql</file>
+    <file>./SQL/SQLite/select_user_setting.sql</file>
+    <file>./SQL/SQLite/select_userid.sql</file>
+    <file>./SQL/SQLite/setup_000_quasseluser.sql</file>
+    <file>./SQL/SQLite/setup_010_sender.sql</file>
+    <file>./SQL/SQLite/setup_020_network.sql</file>
+    <file>./SQL/SQLite/setup_030_buffer.sql</file>
+    <file>./SQL/SQLite/setup_040_buffer_idx.sql</file>
+    <file>./SQL/SQLite/setup_050_buffer_cname_idx.sql</file>
+    <file>./SQL/SQLite/setup_060_backlog.sql</file>
+    <file>./SQL/SQLite/setup_070_coreinfo.sql</file>
+    <file>./SQL/SQLite/setup_080_ircservers.sql</file>
+    <file>./SQL/SQLite/setup_090_backlog_idx.sql</file>
+    <file>./SQL/SQLite/setup_100_backlog_idx2.sql</file>
+    <file>./SQL/SQLite/setup_110_buffer_user_idx.sql</file>
+    <file>./SQL/SQLite/setup_120_user_setting.sql</file>
+    <file>./SQL/SQLite/setup_130_identity.sql</file>
+    <file>./SQL/SQLite/setup_140_identity_nick.sql</file>
+    <file>./SQL/SQLite/update_backlog_bufferid.sql</file>
+    <file>./SQL/SQLite/update_buffer_lastmsgid.sql</file>
+    <file>./SQL/SQLite/update_buffer_lastseen.sql</file>
+    <file>./SQL/SQLite/update_buffer_markerlinemsgid.sql</file>
+    <file>./SQL/SQLite/update_buffer_name.sql</file>
+    <file>./SQL/SQLite/update_buffer_persistent_channel.sql</file>
+    <file>./SQL/SQLite/update_buffer_set_channel_key.sql</file>
+    <file>./SQL/SQLite/update_identity.sql</file>
+    <file>./SQL/SQLite/update_network.sql</file>
+    <file>./SQL/SQLite/update_network_connected.sql</file>
+    <file>./SQL/SQLite/update_network_set_awaymsg.sql</file>
+    <file>./SQL/SQLite/update_network_set_usermode.sql</file>
+    <file>./SQL/SQLite/update_user_setting.sql</file>
+    <file>./SQL/SQLite/update_username.sql</file>
+    <file>./SQL/SQLite/update_userpassword.sql</file>
+    <file>./SQL/SQLite/version/1/upgrade_000_drop_coreinfo.sql</file>
+    <file>./SQL/SQLite/version/1/upgrade_010_create_coreinfo.sql</file>
+    <file>./SQL/SQLite/version/1/upgrade_020_update_schemaversion.sql</file>
+    <file>./SQL/SQLite/version/2/upgrade_000_drop_buffergroup.sql</file>
+    <file>./SQL/SQLite/version/2/upgrade_010_update_schemaversion.sql</file>
+    <file>./SQL/SQLite/version/3/upgrade_000_update_backlog_flags.sql</file>
+    <file>./SQL/SQLite/version/3/upgrade_010_update_schemaversion.sql</file>
+    <file>./SQL/SQLite/version/4/upgrade_000_rename_buffertable.sql</file>
+    <file>./SQL/SQLite/version/4/upgrade_010_create_buffertable.sql</file>
+    <file>./SQL/SQLite/version/4/upgrade_020_copy_buffertable.sql</file>
+    <file>./SQL/SQLite/version/4/upgrade_030_drop_oldbuffertable.sql</file>
+    <file>./SQL/SQLite/version/4/upgrade_040_create_buffer_idx.sql</file>
+    <file>./SQL/SQLite/version/4/upgrade_050_create_buffer_cname_idx.sql</file>
+    <file>./SQL/SQLite/version/5/upgrade_000_rename_networktable.sql</file>
+    <file>./SQL/SQLite/version/5/upgrade_010_create_newnetworktable.sql</file>
+    <file>./SQL/SQLite/version/5/upgrade_020_copy_networktable.sql</file>
+    <file>./SQL/SQLite/version/5/upgrade_030_drop_oldnetworktable.sql</file>
+    <file>./SQL/SQLite/version/5/upgrade_180_create_ircservers.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_000_alter_buffertable.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_010_set_statusbuffertype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_020_set_channelbuffertype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_030_set_querybuffertype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_040_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_050_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_060_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_070_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_080_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_090_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_100_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_110_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_120_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_130_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_140_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_150_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/6/upgrade_160_update_msgtype.sql</file>
+    <file>./SQL/SQLite/version/7/upgrade_000_rename_networktable.sql</file>
+    <file>./SQL/SQLite/version/7/upgrade_010_create_newnetworktable.sql</file>
+    <file>./SQL/SQLite/version/7/upgrade_020_copy_networktable.sql</file>
+    <file>./SQL/SQLite/version/7/upgrade_030_drop_oldnetworktable.sql</file>
+    <file>./SQL/SQLite/version/7/upgrade_040_alter_buffer_add_lastseen.sql</file>
+    <file>./SQL/SQLite/version/8/upgrade_000_alter_network_add_connected.sql</file>
+    <file>./SQL/SQLite/version/8/upgrade_010_alter_buffer_add_key.sql</file>
+    <file>./SQL/SQLite/version/8/upgrade_020_alter_buffer_add_joined.sql</file>
+    <file>./SQL/SQLite/version/8/upgrade_030_update_buffer_set_joined_for_channels.sql</file>
+    <file>./SQL/SQLite/version/9/upgrade_000_create_backlog_idx.sql</file>
+    <file>./SQL/SQLite/version/9/upgrade_010_create_backlog_idx2.sql</file>
+    <file>./SQL/SQLite/version/9/upgrade_020_create_buffer_idx.sql</file>
+    <file>./SQL/SQLite/version/10/upgrade_000_switch_to_msgid.sql</file>
+    <file>./SQL/SQLite/version/10/upgrade_010_rename_buffer_table.sql</file>
+    <file>./SQL/SQLite/version/10/upgrade_020_create_buffer_table.sql</file>
+    <file>./SQL/SQLite/version/10/upgrade_030_copy_buffer_table.sql</file>
+    <file>./SQL/SQLite/version/10/upgrade_040_drop_buffer_old_table.sql</file>
+    <file>./SQL/SQLite/version/11/upgrade_000_create_user_setting.sql</file>
+    <file>./SQL/SQLite/version/12/upgrade_000_create_identity.sql</file>
+    <file>./SQL/SQLite/version/12/upgrade_010_create_identity_nick.sql</file>
+    <file>./SQL/SQLite/version/12/upgrade_020_rename_servertable.sql</file>
+    <file>./SQL/SQLite/version/12/upgrade_030_create_ircserver.sql</file>
+    <file>./SQL/SQLite/version/12/upgrade_040_copy_ircserver.sql</file>
+    <file>./SQL/SQLite/version/12/upgrade_050_drop_ircserverold.sql</file>
+    <file>./SQL/SQLite/version/13/upgrade_000_create_buffer_user_idx.sql</file>
+    <file>./SQL/SQLite/version/13/upgrade_010_create_buffer_cname_idx.sql</file>
+    <file>./SQL/SQLite/version/13/upgrade_020_create_buffer_cname_idx.sql</file>
+    <file>./SQL/SQLite/version/14/upgrade_000_rename_networktable.sql</file>
+    <file>./SQL/SQLite/version/14/upgrade_010_create_networktable.sql</file>
+    <file>./SQL/SQLite/version/14/upgrade_030_copy_networktable.sql</file>
+    <file>./SQL/SQLite/version/14/upgrade_040_drop_networkold.sql</file>
+    <file>./SQL/SQLite/version/15/upgrade_000_fix_ircservers.sql</file>
+    <file>./SQL/SQLite/version/15/upgrade_000_fix_network.sql</file>
+    <file>./SQL/SQLite/version/16/upgrade_000_alter_buffer_add_markerlinemsgid.sql</file>
+    <file>./SQL/SQLite/version/17/upgrade_000_alter_network_add_sasl.sql</file>
+    <file>./SQL/SQLite/version/17/upgrade_001_alter_network_add_sasl.sql</file>
+    <file>./SQL/SQLite/version/17/upgrade_002_alter_network_add_sasl.sql</file>
+    <file>./SQL/SQLite/version/18/upgrade_000_alter_quasseluser_add_passwordversion.sql</file>
+    <file>./SQL/SQLite/version/19/upgrade_000_alter_ircserver_add_sslverify.sql</file>
+    <file>./SQL/SQLite/version/20/upgrade_000_alter_network_add_ratelimit_usecustom.sql</file>
+    <file>./SQL/SQLite/version/20/upgrade_001_alter_network_add_ratelimit_burstsize.sql</file>
+    <file>./SQL/SQLite/version/20/upgrade_002_alter_network_add_ratelimit_delay.sql</file>
+    <file>./SQL/SQLite/version/20/upgrade_003_alter_network_add_ratelimit_unlimited.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_000_alter_buffer_add_lastmsgid.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_001_update_buffer_set_lastmsgid.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_002_update_buffer_fix_lastseenmsgid_over_lastmsgid.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_003_create_table_buffer_new.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_004_insert_into_buffer_new_from_buffer.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_005_drop_table_buffer.sql</file>
+    <file>./SQL/SQLite/version/21/upgrade_006_alter_table_buffer_new_rename_to_buffer.sql</file>
 </qresource>
 </RCC>