CTE Zukunft

hallo,

meine letzten Experimente mit CTE ergaben, dass die Anwendung (zumindest bei PG) sehr sehr sehr eng gesteckt ist - insb. bei rekursiven CTE.

Recht “naiv” dachte ich zu Anfang das Denkbare - dass man in der CTE eine beliebige Query definieren kann - und bei der Rekursion diese halt irgendwo sich selbst referenzieren darf.

Doch Pustekuchen …

  1. muss in einer (rekursiven) CTE ein UNION ALL verwendet werden …
  2. darf die CTE selbst nicht in einer SUB-QUERY auftauchen
  3. vermute ich weitere Einschränkungen denen ich wegen der Resignation nicht begegnet bin :slight_smile:

also viel Spielraum - rekursive Probleme zu optimieren - bleibt da nicht.

Es hat mich ja schon gewundert, dass man ueberhaupt RECURSIVE angeben muss, damit PG bemerkt, dass es sich um ein rekursives CTE handelt.

Weiss zufaellig jemand ob dies in Zukunft flexibler werden wird?

Falsch.

  1. darf die CTE selbst nicht in einer SUB-QUERY auftauchen

Falsch.

  1. vermute ich weitere Einschränkungen denen ich wegen der Resignation nicht begegnet bin > :slight_smile:

Toll. 3 Aussagen, davon 2 Falsch und eine Vermutung.

also viel Spielraum - rekursive Probleme zu optimieren - bleibt da nicht.

Es hat mich ja schon gewundert, dass man ueberhaupt RECURSIVE angeben muss, damit PG bemerkt, dass es sich um ein rekursives CTE handelt.

Weiss zufaellig jemand ob dies in Zukunft flexibler werden wird?

Ich denke, die Zukunft von PG besteht nicht nur aus heißer Luft wie solche Deiner Postings hier.

Im übrigen wirfst Du rekursive Abfragen und CTE in einen Topf. Auch das ist falsch.

Andreas

FEHLER: recursive query “sub” does not have the form non-recursive-term UNION [ALL] recursive-term
LINE 1: with recursive sub as (

FEHLER: recursive reference to query “sub” must not appear within a subquery
LINE 7: where id_obj in (select id_obj from sub)
^
halt doch einfach mal die klappe wenn du keine ahnung hast!