From e3e5f7feec68abb3de7495b6b2a56009585dbc42 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 14 Jul 2018 13:02:12 +0200 Subject: [PATCH] use explicit order for insert operations This prevents a problem from different column orders in database tables. In particular, this occurred with the user_packets table, where the `rank` column moved up in order. --- .../sqldelight/org/sufficientlysecure/keychain/Certs.sq | 2 +- .../org/sufficientlysecure/keychain/KeyMetadata.sq | 3 +-- .../org/sufficientlysecure/keychain/KeyRingsPublic.sq | 2 +- .../org/sufficientlysecure/keychain/KeySignatures.sq | 2 +- .../main/sqldelight/org/sufficientlysecure/keychain/Keys.sq | 6 +++++- .../org/sufficientlysecure/keychain/UserPackets.sq | 3 ++- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq index 80038ae3e..5678e546e 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq @@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS certs( ); insertCert: -INSERT INTO certs VALUES (?, ?, ?, ?, ?, ?, ?); +INSERT INTO certs (master_key_id, rank, key_id_certifier, type, verified, creation, data) VALUES (?, ?, ?, ?, ?, ?, ?); selectVerifyingCertDetails: SELECT master_key_id AS masterKeyId, key_id_certifier AS signerMasterKeyId, creation * 1000 AS creation diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyMetadata.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyMetadata.sq index d219f0016..daa286e59 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyMetadata.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyMetadata.sq @@ -18,8 +18,7 @@ UPDATE key_metadata SET last_updated = null, seen_on_keyservers = null; replaceKeyMetadata: -REPLACE INTO key_metadata - (master_key_id, last_updated, seen_on_keyservers) VALUES (?, ?, ?); +REPLACE INTO key_metadata (master_key_id, last_updated, seen_on_keyservers) VALUES (?, ?, ?); selectFingerprintsForKeysOlderThan: SELECT fingerprint diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyRingsPublic.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyRingsPublic.sq index 9cf728579..306aa6dac 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyRingsPublic.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeyRingsPublic.sq @@ -4,7 +4,7 @@ CREATE TABLE IF NOT EXISTS keyrings_public ( ); insertKeyRingPublic: -INSERT INTO keyrings_public VALUES (?, ?); +INSERT INTO keyrings_public (master_key_id, key_ring_data) VALUES (?, ?); selectAllMasterKeyIds: SELECT master_key_id diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq index 7472cfe18..ce1c5d89d 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq @@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS key_signatures ( ); insertKeySignature: -INSERT INTO key_signatures VALUES (?, ?); +INSERT INTO key_signatures (master_key_id, signer_key_id) VALUES (?, ?); selectMasterKeyIdsBySigner: SELECT master_key_id diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq index 8b11bb483..b19c3ae4f 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq @@ -24,7 +24,11 @@ CREATE TABLE IF NOT EXISTS keys ( ); insertKey: -INSERT INTO keys VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); +INSERT INTO keys ( + master_key_id, rank, key_id, key_size, key_curve_oid, algorithm, fingerprint, + can_certify, can_sign, can_encrypt, can_authenticate, + is_revoked, has_secret, is_secure, creation, expiry + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); updateHasSecretByMasterKeyId: UPDATE keys diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/UserPackets.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/UserPackets.sq index a6a58179d..701408c31 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/UserPackets.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/UserPackets.sq @@ -16,7 +16,8 @@ CREATE TABLE IF NOT EXISTS user_packets( ); insertUserPacket: -INSERT INTO user_packets VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?); +INSERT INTO user_packets (master_key_id, rank, type, user_id, name, email, comment, attribute_data, is_primary, is_revoked) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?); selectUserIdsByMasterKeyId: SELECT user_packets.master_key_id, user_packets.rank, user_id, name, email, comment, is_primary, is_revoked, MIN(certs.verified) AS verified_int