Projet

Général

Profil

Development #63608

csv, filtrer avec postgresql pour les cas simples

Ajouté par Benjamin Dauvergne il y a environ 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
05 avril 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Les cas simples :
  • /data/?column-name=foo
  • /query/xyz/?column-name=foo où la colonne id existe (pas de projection)
  • /query/xyz/?id=foo où là colonne id est une projection simple du genre id:column-name

Fichiers


Demandes liées

Lié à Passerelle - Bug #64788: IntegrityError: duplicate key value violates unique constraint "csvdatasource_tablerow_resource_id_line_number_7f...Fermé03 mai 2022

Actions

Révisions associées

Révision 68f135e8 (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 ans

csvdatasource: use SQL for simple filters (#63608)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

  • Assigné à mis à Benjamin Dauvergne
#2

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

Au passage j'ajoute un index GIN sur la colonne JSONB "data", ça devrait grandement accélérer les cas "id=foo" (mais même sans ça, ça ira beaucoup plus vite).

PS: cet index ne nécessite pas d'extension, jsonb_path_ops est natif au moins depuis la 9.6 (https://www.postgresql.org/docs/9.6/gin-builtin-opclasses.html)

PS2: l'index exige d'utiliser l'opérateur @> et pas ->, donc data__contains={"id": ...} plutôt que data__id=... avec l'ORM de Django

#4

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

J'ai remis la couverture du code pour le filtre ?id=foo en python.

#5

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée
#6

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

#7

Mis à jour par Frédéric Péters il y a environ 2 ans

C'est le même patch (erreur?).

#8

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

  • Statut changé de Solution proposée à Résolu (à déployer)
commit 68f135e827805f7656645e4c37e124294f511152
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Apr 5 19:42:21 2022 +0200

    csvdatasource: use SQL for simple filters (#63608)
#9

Mis à jour par Benjamin Dauvergne il y a environ 2 ans

Frédéric Péters a écrit :

C'est le même patch (erreur?).

Oui PBKAC, j'ai fait git sub au lieu de git mp.

#10

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#11

Mis à jour par Valentin Deniaud il y a presque 2 ans

  • Lié à Bug #64788: IntegrityError: duplicate key value violates unique constraint "csvdatasource_tablerow_resource_id_line_number_7f... ajouté
#12

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF