Ich versuche, nach einem leeren Array zu testen. Ich verstehe die Begründung hinter array_length
zurückgeben NULL
, da es eine 0-dimensionale Array ist, aber warum ist array_ndims(array[]::int array)
nicht 0
, sondern NULL
?Warum erzeugt `array_ndims (array [])` NULL?
Antwort
Sieht aus wie es nie 0 zurück:
/* Sanity check: does it look like an array at all? */
if (AARR_NDIM(v) <= 0 || AARR_NDIM(v) > MAXDIM)
PG_RETURN_NULL();
Sie könnten Ihre eigene C-Funktion für dieses schreiben, einfach <= 0
in < 0
ändern. Als Gründe dafür kann ich nichts finden.
Quelle ist in: https://www.postgresql.org/ftp/source/v10.1/ (gleicher Sache für 9.6.2, mit dem, was ich zunächst überprüft)
Datei: ./src/backend/utils/adt/arrayfuncs.c
Blick für einfache, 10 Linienfunktion: array_ndims
Bitte geben Sie einen Link zur Codebasis ein. Ich würde auch erwarten, dass die Anzahl der leeren Arrays Null ist. Vielleicht wollte smbd nur nicht überprüfen, ob ein leeres Array Array ist? –
@VaoTsun Ich nehme an, Dimensionen wieder zählen (Funktion hält es nicht in Variable) und sie zurück zu bringen ist ein bisschen zeitaufwendiger als nur NULL zurückgeben und jemand dies schreiben Funktion wurde nicht benötigt, um 0-dimensionale Arrays zu überprüfen. –
Entschuldigung, ich meinte etw wie https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/arrayfuncs.c#L1635 :) –
- 1. Warum erzeugt (! [] + []) [+ !! [] + []] "
- 2. Zeichenfolge konvertieren [zum Byte] erzeugt Null Charakter
- 3. Mein Array erzeugt NAN
- 4. Warum erzeugt '////'split('/') []?
- 5. Warum getReference erzeugt sofort select
- 6. Warum druckt mein Array null? (Java)
- 7. Warum numpy Funktion leer() erzeugt nur Nullen?
- 8. Warum erzeugt dies keine Mehrdeutigkeit?
- 9. Warum Python-Array arr2d [: 2,1:] erzeugt folgendes Ergebnis?
- 10. Erzeugt 'array [i] = undefined' ein Sparse-Array?
- 11. Warum gibt der Zufallsindex im String-Array null zurück?
- 12. exec ("dir") erzeugt Ausnahme: Arbeitsverzeichnis: null Umgebung: null
- 13. Programmatically einen Json-Array erstellen erzeugt Fehler
- 14. Stax-API-XML-Analyse erzeugt Null-Ergebnisse
- 15. IssueFactory.getIssue() erzeugt ein Problem mit id == null
- 16. ReactiveForms: [Wert] Feld erzeugt Null beim Senden
- 17. GCC erzeugt falschen Strukturoffset warum?
- 18. Warum erzeugt coffescript solche Klassen?
- 19. Warum Annotate doppelte Einträge erzeugt?
- 20. Warum erzeugt UnboundLocalError für Parameter?
- 21. Warum wp_send_json null zurückgeben
- 22. Warum würde "null" funktionieren, aber nicht null?
- 23. Warum diese Java-Rekursivmethode keine Endlosschleife erzeugt?
- 24. Warum erzeugt dies eine Nullwert-Ausnahme?
- 25. Kind nicht aktualisiert, wenn über Array erzeugt
- 26. Ionic 2 erzeugt keine scss-Quellkarten. "Main.css.map" enthält "null"
- 27. Java Array liefert Null
- 28. Warum wird mein Array als null gelesen? Was vermisse ich?
- 29. Warum sind alle Elemente in meinem Array von Objekten null?
- 30. Android - Nicht sicher, warum mein Array null ist
http://www.postgresql-archive.org/array-ndims-never-returns-zero-td5998579.html Bitte akzeptieren Sie @Lukasz Antwort - wie es die richtige (zumindest heute) und in der Tat nicht (zumindest heute) richtig dokumentiert –