PostgreSQL v9.X echte "array of record"?

Diese Abfrage funktioniert einwandfrei,

 WITH test AS (
   SELECT array_agg(t) as x FROM (
     SELECT 1111 as id, 'aaaaa' as cc  
   ) AS t
 ) SELECT x[1] FROM test;

aber, kann ich auf die recod Elemente? Ich versuche SELECT x[1].id; SELECT x[1][1]; ... nichts funktioniert.

PS: mit Google sehen wir nur die ALTEN Lösungen... Der Rahmen hier ist v9.X, keine Nachrichten über "array of record"?


Ich versuche auch

 select x[1] from (select array[row(1,2)] as x) as t;

keine Lösung, nur den Zugriff auf Artikel 1 oder nur Punkt 2.


Ahnung, dass ich nicht in der Lage war zu Folgen: postgresql.1045698.n5.nabble.com lösen das problem mit einer CREATE TYPE... Ok, aber ich brauche "alle in einer Abfrage" - Lösung. Wo die "dynamische Typisierung" von PostgreSQL?? Wie GUSS-oder express-der Typ ohne CREATE TYPE - Klausel?

  • Sie können konvertieren Sie den Wert hstore packe und Felder, draus das so, aber das ist nicht wirklich das, was Sie wollen. PostgreSQL ist record pseudo-Typ ist ein bisschen eingeschränkt - insbesondere, es gibt keine anonymen Datensatz cast, z.B. CAST(somerecord AS t(x integer, y text)) funktioniert nicht.
  • BTW, ist dies etwas, was Sie wollen, werden Sie brauchen, um Lärm zu machen über Sie, und vermutlich, dass der Lärm mit der Bereitschaft zu tun, echte Arbeit und/oder dazu beitragen dev Zeit. Es ist ein bisschen von einer Ecke des Typ-system, und keiner ist wirklich scharf auf daran zu arbeiten, so müssen Sie kümmern sich genug, es zu schaffen, sich selbst, oder finden Sie Wege, um andere zu sorgen genug, um mit Ihr umzugehen.
  • Hast du mehr Kontext dazu? Es könnte einen anderen Weg zu bekommen, wo Sie sein müssen.
  • Sorry @Mu, wir brauchen nicht "mehr Kontext", ist ein syntatic Widerspruch von PostgreSQL... ich denke, dass Craig bestätigt meine Täuschung mit pg9.X: keine Neuigkeiten.
  • Danke @CraigRinger, Sie verstehen meine Täuschungen, und zeigen eine bessere Namen: "anonyme Datensatz cast" ist die "syntax Mangel" von PG. Das war es, was ich Suche, beim Aufbau dieser Art von Abfragen. PostgreSQL ermöglicht es ausdrückt, "etwas, das scheint Array von Recortd" aber uns enttäuschen, auf dem halben Weg... ja, ich brauche, um Lärm über viele kleine Dinge, aber vielleicht der erste Krach ist "Hallo PG-Community! Wir sind in 2014! Wo die RFC-Website? Wo die Schnittstelle für den Stakeholder zu wählen!??"
  • Es ist open-source. Bist du ein stakeholder, wenn Sie dazu beitragen - werden, die helfen, die Menschen auf die Listen oder hier, das detaillierte design, die bug-Jagd und-reporting, bug-fixing, code-Bereinigungen, feature-Beiträge, patch review, etc etc. Ich schlage vor, sich einzubringen und einen Beitrag, wenn Sie möchten, um gehört zu werden. (Auch, bitte sagen Sie nicht "9.x" - 9.0, 9.1, 9.2, ... sind alle major releases. Ja, das ist dumm, aber wir sind dabei geblieben). Sie interessieren sich für diese Sache - andere Pflege über die bidirektionale Replikation, andere über row-level-security und multi-tenant -, ... . Lärm machen, hören, beitragen.

InformationsquelleAutor Peter Krauss | 2014-01-20
Schreibe einen Kommentar