<div dir="auto">I don't see any use of this function that isn't with either a single contact or all the contacts (correct me if I'm wrong). The "too many variables" would be avoided by having a method that in the second case just doesn't use a "where in", because the problem is too many variables and not too many results. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 14, 2019, 07:06 Simon Redman <<a href="mailto:simon@ergotech.com">simon@ergotech.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Yes, probably we could do this. The trouble is that for the first time running synchronization the desktop would then call this method with the complete list of changed contacts. Since it is first sync, it would be all of them, thus it would have the same problem.<br><br>So the simplest solution would be to just break it in to batches since this solves both cases. But what is a safe batch size?<br><br><div class="gmail_quote">On October 12, 2019 12:01:53 PM PDT, Albert Vaca Cintora <<a href="mailto:albertvaka@gmail.com" target="_blank" rel="noreferrer">albertvaka@gmail.com</a>> wrote:<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<pre>Or even, if we are requesting *all* the IDs, I guess we could remove<br>the `WHERE ID IN()` in that call?<br><br>On Sat, Oct 12, 2019 at 9:00 PM Albert Vaca Cintora<br><<a href="mailto:albertvaka@gmail.com" target="_blank" rel="noreferrer">albertvaka@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid #729fcf;padding-left:1ex"><br> Actually here is the call for all the IDs [1], the previous one only<br> requests a single ID.<br><br> <a href="https://invent.kde.org/kde/kdeconnect-android/blob/master/src/org/kde/kdeconnect/Plugins/ContactsPlugin/ContactsPlugin.java#L196" target="_blank" rel="noreferrer">https://invent.kde.org/kde/kdeconnect-android/blob/master/src/org/kde/kdeconnect/Plugins/ContactsPlugin/ContactsPlugin.java#L196</a><br><br> On Sat, Oct 12, 2019 at 8:57 PM Albert Vaca Cintora<br> <<a href="mailto:albertvaka@gmail.com" target="_blank" rel="noreferrer">albertvaka@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid #ad7fa8;padding-left:1ex"><br> It looks like in getColumnsFromContactsForIDs [1] we are passing to<br> many IDs. A solution probably would be we could request them in<br> smaller batches.<br><br> <a href="https://invent.kde.org/kde/kdeconnect-android/blob/master/src/org/kde/kdeconnect/Plugins/ContactsPlugin/ContactsPlugin.java#L161" target="_blank" rel="noreferrer">https://invent.kde.org/kde/kdeconnect-android/blob/master/src/org/kde/kdeconnect/Plugins/ContactsPlugin/ContactsPlugin.java#L161</a><br><br><br> On Sat, Oct 12, 2019 at 7:19 PM Simon Redman <<a href="mailto:simon@ergotech.com" target="_blank" rel="noreferrer">simon@ergotech.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid #8ae234;padding-left:1ex"><br> Hmm. I have no idea what is causing this (since it's below Android's<br> "we're totally not using a sqlite database" layer)<br><br> Is this reliably reproducible? (If so, how?)<br><br> On 10/12/19 8:48 AM, Aleix Pol wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid #fcaf3e;padding-left:1ex"> Hey Simon,<br> I was looking at adb logs, I saw this error, maybe you can take a look.<br><br> 10-12 17:36:27.053 29958  2983 E KDE/Device:<br> android.database.sqlite.SQLiteException: too many SQL variables (code<br> 1): , while compiling: SELECT lookup, contact_last_updated_timestamp<br> FROM view_contacts WHERE ((1)) AND (lookup<br> IN(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,<br> ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?))<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:179)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> android.content.ContentProviderProxy.query(ContentProviderNative.java:418)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> android.content.ContentResolver.query(ContentResolver.java:754)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> android.content.ContentResolver.query(ContentResolver.java:704)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> android.content.ContentResolver.query(ContentResolver.java:662)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Helpers.ContactsHelper.getColumnsFromContactsForIDs(ContactsHelper.java:307)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Plugins.ContactsPlugin.ContactsPlugin.handleRequestAllUIDsTimestamps(ContactsPlugin.java:196)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Plugins.ContactsPlugin.ContactsPlugin.onPacketReceived(ContactsPlugin.java:253)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Device.onPacketReceived(Device.java:569)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Backends.BaseLink.packageReceived(BaseLink.java:84)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Backends.LanBackend.LanLink.receivedNetworkPacket(LanLink.java:255)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Backends.LanBackend.LanLink.lambda$reset$0$LanLink(LanLink.java:109)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> org.kde.kdeconnect.Backends.LanBackend.-$$Lambda$LanLink$TabvaCXA5qL_bcJDmIELWusNThw.run(Unknown<br> Source:4)<br> 10-12 17:36:27.053 29958  2983 E KDE/Device:    at<br> java.lang.Thread.run(Thread.java:764)<br></blockquote><br></blockquote></blockquote></blockquote></pre></blockquote></div></div></blockquote></div>