Fulltext indexes werden bei MySQL nur für MyISAM-Tabellen unterstützt. Soll also ein Fulltext index angelegt werden, so ist zuerst der Typ der betroffenen Tabelle zu ändern, was am einfachsten mittels
ALTER TABLE my_table ENGINE = MYISAM;
geht.
Fulltext indexes werden bei MySQL nur für MyISAM-Tabellen unterstützt. Soll also ein Fulltext index angelegt werden, so ist zuerst der Typ der betroffenen Tabelle zu ändern, was am einfachsten mittels
ALTER TABLE my_table ENGINE = MYISAM;
geht.
Taucht nach der Installation des Moduls XML::SAX die Fehlermeldung “could not find ParserDetails.ini in /Perl/site/lib/XML/SAX” auf, so findet sich die Lösung in den Perl-XML Frequently Asked Questions:
perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
Meldet MySQL nach einem Update auf Version 5 plötzlich jede Menge “Incorrect integer value"s in den Autoincrement-Feldern, dann versucht ein Programm mit an Sicherheit grenzender Wahrscheinlichkeit gerade, eben diese Felder mit leeren Strings zu füttern.
Bis einschließlich Version 4 wurde hier der String stillschweigend durch den jeweiligen Autoincrement-Wert ersetzt, ein Verhalten, das mit Version 5 durch das standardmäßige Einschalten des “STRICT”-Modus geändert wurde.
Wer “quick and dirty” gerne wieder seine Ruhe hätte, kann einfach ein
set sql_mode = '';
absetzen. Wer stattdessen lieber auf Fehlersuche gehen will, dem sei der ‘TRADITIONAL’-Mode empfohlen, der im obigen Fall dann Fehler statt Warnungen ausspuckt.
Nächere Infos zu den verschiedenen SQL-Modi gibt es in der MySQL Dokumentation.
Die ActivePerl-Distribution kommt zwar schon mit einer Menge Module daher, aber ein paar wichtige wie z.B. das Modul zur Ansteuerung der GD Graphics Library sind nicht im Lieferumfang enthalten und fehlen auch im online Repository von ActiveState.
Glücklicherweise gibt es noch ein paar recht gut sortierte Repositories wie z.B. das der University Of Winnipeg, die sich darauf spezialisiert haben, die Lücken aufzufüllen.
Um nun das GD-Modul zu installieren, fügt man am sinnvollsten das passende Repository mittes “Edit” / “Preferences” dem Perl Package Manager hinzu:
Nach dem Synchonisieren der Paket-Datenbank kann dann unter “View all packages” das GD-Paket ausgewählt und installiert werden.
Will man aus Perl PDFs erstellen, so gibt es das vorzügliche PDF::API2-Modul, das aber einen entscheidenden Nachteil hat: man wird von Optionen und Möglichkeiten dermaßen erschlagen, daß es schwer ist, überhaupt am Ziel anzukommen.
Als einfachen Ausweg gibt es das Modul PDF::API2::SIMPLE, ein “simplistic wrapper for the excellent PDF::API2 modules”, mit dem man sich auf’s Wesentliche konzentrieren kann.
Leider kann das Modul in seiner aktuellen Version (1.1.4) Bilder nur aus Dateien (JPG, TIFF, PNM, PNG oder GIF, die im Dateisystem vorliegen müssen) einbinden, ein extrem umständlicher Weg, falls diese z.B. in einer Datenbank vorliegen.
Eine entsprechende Erweiterung ist aber schnell - und einfach - gemacht, verhält sich analog zur ursprünglichen image-Methode und kann mit einem GD-Objekt genutzt werden:
sub gdimage {
my ($self, $src, %opts) = @_;
my $x = $opts{'x'} || $self->x;
my $y = $opts{'y'} || $self->y;
my $width = $opts{'width'} || 100;
my $height = $opts{'height'} || 100;
my $scale = $opts{'scale'} || 1;
my $image = $self->current_page->gfx;
my $data = $self->pdf->image_gd($src);
$image->image($data, $x, $y, $width, $height);
$self->x( $x + $width );
$self->y( $y );
}
Der Erweiterungsvorschlag ist auch an die Entwickler raus, vielleicht wird er ja integriert …