php / php/php-src

Cannot "unregister" a function, collation or aggregate in SQLite3 extension

Offen
#10,726 14 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Extension: sqlite3 Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

The following code:

<?php
$db = new SQLite3(':memory:');
$db->createFunction('like', 'strcmp');
$db->createFunction('like', null);

Resulted in this output:

Argument #2 ($callback) must be of type callable, null given

But I expected to be able to unregister the custom like function, as documented in SQLite doc:

To delete an existing SQL function or aggregate, pass NULL pointers for all three function callbacks.

https://www.sqlite.org/c3ref/create_function.html

Passing NULL to SQLite3::create* methods should un-register the existing function.

PHP Version

Any

Operating System

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne am Einstiegspunkt SQLite3::createFunction und vergleiche dessen Callback-Validierung mit der im Issue verlinkten SQLite-Dokumentation. Füge eine Abdeckung für die Übergabe von null hinzu, um die Registrierung der benutzerdefinierten Funktion aufzuheben, und überprüfe anschließend, dass das gemeldete Beispiel und das verwandte create*-Verhalten das erwartete Ergebnis liefern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php, sqlite
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
58/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.