Tag: postgresql

  • PostgreSQL und Mac OS X 10.5

    Wer in der Hoffnung kommt, ich hätte nach meiner Anleitung für PostgreSQL auf Mac OS X Tiger eine Fortsetzung für Mac OS X Leopard geschrieben, der kann nun aufatmen. Die neue Anleitung gibt es hier. Update: Da ich das acts-as-blog in dieses Blog re-integriere, wird sich der Artikel hoffentlich mit der Suchfunktion finden lassen.

  • Neue Array-Operatoren in PostgreSQL 8.2

    Seit Version 8.2 verfügt PostgreSQL über einige neue Operatoren, die Arrays in SQL erst richtig nützlich machen. Konnte man bislang (bis Version 8.1) nur möglich die Arrays zu verketten, Elementweise zu vergleichen oder einzelne Elemente aus dem Array wieder herauszufischen, so kann man nun auch Testen, ob zwei Arrays über gemeinsame Elemente verfügen oder gar…

  • SQL ohne Schleifen

    Manche Aufgaben schreien geradezu danach, mit Schleifen gelöst zu werden. In SQL ist dies selten nötig. In meinem Beispiel wollten wir für jeden Monat des letzten Jahres die Häufigkeit eines bestimmten Ereignisses errechnen um es graphisch darzustellen. Mein Kollege, der an dieser Stelle besser anonym bleiben möchte, schlug schon vor, die Abfrage 12× mit unterschiedlichen…

  • Es ist alles eine Ansichtssache

    Wir stellen in der Firma derzeit Teile unserer alten Software auf eine hippe und coole Rails-Anwendung um. Solange unsere Anwendung nicht fertig ist, muß die alte und die neue Software parallel laufen und auf die gleichen Daten zugreifen können. Da wird die alte Software nicht ändern können und wollen, muß sich Rails entsprechend anpassen. Wir…

  • PostgreSQL auf Mac OS X, diesmal mit Syslog-Logging

    Ich hatte vor einer Weile geschrieben, wie man PostgreSQL auf Mac OS X sauber installiert. Das klappt zwar prima, doch die Logfiles waren ein wenig chaotisch. Bei der Installation von PostgreSQL 8.2 habe ich also beschlossen, via Syslog zu loggen. Die eigentliche Installation läuft wie im letzten Artikel beschrieben ab. Erst bei Punkt 10 mußte…

  • MS Access, pgsqlODBC und Booleans

    pgsqlODBC macht in den Standardeinstellungen einige sehr sonderbare Sachen. Eine Spalte mit Booleans erscheint in MS Access als Textfeld. Das führt dann natürlich zu einigen Problemen mit Checkboxen. Access meint dann, das Feld wäre zu klein, um den Wert zu speichern. Dabei beherrscht MS Access Booleans. Man muß nur den pgsqlODBC-Treiber überzeugen, das ganze für…

  • Spielereien mit Rules und Check Constraints in PostgreSQL

    Ich hatte heute das Problem, daß ich in der Datenbank Zeiträume (Start- und Enddatum) speichern mußte, in denen bestimmte Resourcen in Benutzung sind/sein werden. Eine Resource darf dabei zu einem bestimmten Zeitpunkt nicht mehrfach belegt werden. Ich mußte also sicherstellen, daß sich die Zeitbereiche einer Resource nicht überlappen. Check Constrainst von PostgreSQL alleine hilft da…

  • PostgreSQL auf Mac OS X selbstgebaut

    Dies ist eine Anleitung, um PostgreSQL auf Mac OS X Tiger zu installieren. Diese Anleitung ist größtenteils an diese Anleitung angelehnt, doch an einigen Stellen weiche ich davon ab, wo es mir sinnvoll erschien. Ich habe sie für mich und meinen Arbeitskollegen geschrieben, doch ich hoffe, daß sie sich auch für andere als hilfreich erweist.…

  • Mit Array in PostgreSQL herumhantieren

    Ich brauchte bei einer Abfrage einfach nur die beteiligten Mitarbeiter. Eine einfache Auflistung der Namen reichte mir da. Mit PostgreSQL kann man sowas recht einfach erledigen. SELECT array_to_string(ARRAY[‘foo’, ‘bar’, ‘baz’, ‘qux’], ‘, ‘); array_to_string ——————– foo, bar, baz, qux (1 row) Das Array wird als String mit jeweils dem zweiten Parameter aus array_to_string() verkettet. Ist…

  • Notiz an mich selbst: PostgreSQL ACLs

    Damit ein Benutzer auf eine Tabelle zugreifen darf, muß ihm dieses privileg erst eingeräumt werden. Soweit nix neues. Allerdings sollte man bei PostgreSQL nicht vergessen dem User auch Rechte auf etwaige Sequenzen zu geben, sonst schlägt ein nextval(footable_id_seq) fehl und damit der ganze Insert. Also immer schön ein GRANT SELECT, UPDATE ON footable_id_seq TO foouser;…