La béquille de SQLite

Ajustement, Treffiagat, France, août 2010
La zone de carénage et de remise en état des bateaux au Guilvinec

Toujours dans ma revue de code qui casse des trucs, je butte souvent sur le typage des résultats (standards) des requêtes SQL qui sont soit un record (pour MySQL et PostgreSQL) soit un staticRecord (pour SQLite), parce que SQLite n’est pas capable de parcourir via un fetch() le résultat depuis le serveur de base de données, il faut récupérer toutes les données et ensuite seulement les parcourir comme un tableau.

J’avoue que parfois ça me titille de virer le support SQLite, sauf que je sais qu’il y a encore des utilisateurs actifs aujourd’hui avec ce driver, donc non :-)

On pourrait concevoir de basculer tous les résultats au type staticRecord, sauf que ça veut dire récupérer toutes les données d’un coup et ça peut être lourd1, donc on va éviter.

Ou alors il faudrait un nouveau type, sorte de fusion entre les deux record et staticRecord, qui supporte au passage les extensions de classe2, et qui soit capable de gérer tous les cas prévus3 dans les deux types initiaux, ce qui ne sera probablement pas très simple ; il faut que j’y réfléchisse…

Par ailleurs le système d’extension, qui permet d’ajouter des méthodes à un record/staticRecord ne me plaît pas trop en l’état ; pas sûr cependant qu’on puisse s’en passer…


  1. Cette lourdeur étant assumée avec l’usage de SQLite, le défaut de sa légèreté. ↩︎

  2. Il s’agit du mécanisme spécifique à Dotclear qui permet de rajouter des méthodes à un objet record ou staticRecord↩︎

  3. C’est-à-dire propriétés et méthodes. ↩︎

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15470

Haut de page