Zum Inhalt springen

Der Probelauf

Ausprobieren führt die Abfrage aus, ohne sie zu speichern. Der Knopf steht im SQL-Editor und im Baukasten. Vorher gab es diesen Weg nicht: Man speicherte und hoffte, und eine kaputte Abfrage zeigte sich als schlechter Wert auf einem Board.

Der Probelauf geht denselben abgesicherten Weg wie ein Abfrage-Tag im Betrieb. Kein zweiter Zugang zu den Daten:

  • Nur lesen. Die Abfrage läuft in einer Transaktion, die mit BEGIN READ ONLY beginnt. Ein Schreibversuch wird von der Datenbank abgelehnt, nicht von einer Textprüfung. Auf dem Bildschirm steht dann, dass ein Abfrage-Tag liest und nicht schreiben darf.
  • Mit Zeitlimit. Der Probelauf hat 3 Sekunden; ein Tag im Betrieb hat 5. Wird die Zeit überschritten, sagt die Antwort das als Satz — nicht als leere Tabelle. Eine Abfrage, die länger als drei Sekunden braucht, ist auch keine, auf der ein Board stehen sollte.
  • Mit echten Bindeparametern. Was Sie in die Parameterfelder tippen, geht getrennt vom Text an die Datenbank.
  • Auf echten Daten. Deshalb läuft er nicht beim Tippen, sondern nur, wenn Sie ihn anstoßen.

Bei Erfolg: die Spalten, die Zeilen und die Laufzeit in Millisekunden. Höchstens 50 Zeilen werden gezeigt; sind es mehr, steht das dabei. Der Probelauf beantwortet „tut das, was ich meinte” — dafür braucht es die Tabelle nicht ganz.

Prüfen Sie dabei zweierlei: dass die Abfrage läuft, und dass sie die Spalte liefert, die das Widget sucht. Für eine Kennzahl ist das Value.

Keine Zeilen ist eine Antwort, kein Fehler. Steht da, dass die Abfrage lief und diese Auswahl nichts enthält, dann stimmt die Abfrage und der Zeitraum oder der Filter ist leer. Ein Fehler steht als Satz da, nie als leere Tabelle.

Die Syntaxprüfung ist die Datenbank selbst, nicht ein nachgebauter Parser. PostgreSQL antwortet mit einer Meldung und einer Zeichenposition, und aus dieser Position wird die Markierung unter dem Wort, auf das sie zeigt.

Zwei Fälle sehen anders aus:

  • Ein unbekannter Name. "Foo.Bar", das kein Feld dieses Mandanten ist, wird schon vor der Datenbank abgelehnt — mit Nennung des Namens und einer Markierung an seiner Stelle.
  • Ein Schreibversuch. Wird abgelehnt und als solcher benannt.

Der Probelauf führt beliebiges lesendes SQL aus. Das darf, wer den Mandanten verwaltet — genau der Kreis, der auch ein Abfrage-Tag schreiben darf.