PythonQ 240-8XX Manual de usuario Pagina 636

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 635
Kapitel 10: MySQL erweitern 615
mysql> CREATE FUNCTION metaphon RETURNS STRING SONAME "udf_example.so";
mysql> CREATE FUNCTION myfunc_double RETURNS REAL SONAME "udf_example.so";
mysql> CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "udf_example.so";
mysql> CREATE FUNCTION lookup RETURNS STRING SONAME "udf_example.so";
mysql> CREATE FUNCTION reverse_lookup RETURNS STRING SONAME "udf_example.so";
mysql> CREATE AGGREGATE FUNCTION avgcost RETURNS REAL SONAME "udf_example.so";
Funktionen onnen mit DROP FUNCTION gel¨oscht werden:
mysql> DROP FUNCTION metaphon;
mysql> DROP FUNCTION myfunc_double;
mysql> DROP FUNCTION myfunc_int;
mysql> DROP FUNCTION lookup;
mysql> DROP FUNCTION reverse_lookup;
mysql> DROP FUNCTION avgcost;
Die CREATE FUNCTION- und DROP FUNCTION-Statements aktualisieren die Systemtabelle func
in der mysql-Datenbank. Der Funktionsname, -typ und gemeinsam genutzte Bibliothek
werden in der Tabelle gespeichert. Sie ben¨otigen die insert- und delete-Berechtigungen f¨ur
die mysql-Datenbank, um Funktionen zu erzeugen und zu oschen.
Sie sollten CREATE FUNCTION nicht benutzen, um eine Funktion hinzuzuf¨ugen, die bereits
erzeugt wurde. Wenn Sie eine Funktion erneut installieren wollen, sollten Sie sie zuerst mit
DROP FUNCTION entfernen und dann mit CREATE FUNCTION erneut installieren. Sie m¨ussen
so etwas zum Beispiel tun, wenn Sie eine neue Version Ihrer Funktion kompilieren, damit
mysqld die neue Version erh¨alt. Ansonsten w¨urde der Server mit der alten Version weiter-
machen.
Aktive Funktionen werden jedes Mal neu geladen, wenn der Server startet, es sei denn,
Sie starten mysqld mit der --skip-grant-tables-Option. In diesem Fall wird die UDF-
Initialisierung ¨ubersprungen und UDFs sind nicht verf¨ugbar. (Eine aktive Funktion ist eine,
die mit CREATE FUNCTION geladen und nicht mit DROP FUNCTION entfernt wurde.)
10.1.3 Hinzuf¨ugen einer neuen nativen Function
Die Prozedur zum Hinzuf¨ugen einer neuen nativen Funktion wird hier beschrieben.
Beachten Sie, dass Sie einer Bin¨ardistribution keine nativen Funktionen hinzuf¨ugen
onnen, weil die Prozedur die
¨
Anderung des MySQL-Quelltextes beinhaltet. Sie ussen
MySQL selbst aus einer Quelldistribution kompilieren. Beachten Sie auch, dass Sie die
Prozedur wiederholen m¨ussen, wenn Sie auf eine andere Version von MySQL aktualisieren
(beispielsweise wenn eine neue Version herauskommt).
Um eine neue native MySQL-Funktion hinzuzuf¨ugen, gehen Sie wie folgt vor:
1. F¨ugen Sie lex.h eine neue Zeile hinzu, die den Funktionsnamen im sql_functions[]-
Array definiert.
2. Wenn der Funktionsprototyp einfach ist (nur keins, eins, zwei oder drei Argumente
entgegennimmt), sollten Sie in lex.h SYM(FUNC ARG#) angeben (wobei # die An-
zahl von Argumenten ist), als zweites Argument im sql_functions[]-Array, und eine
Funktion hinzuf¨ugen, die ein Funktionsobjekt in item_create.cc erzeugt. Sehen Sie
sich als Beispiel hierf¨ur "ABS" und create_funcs_abs() an.
Vista de pagina 635
1 2 ... 631 632 633 634 635 636 637 638 639 640 641 ... 767 768

Comentarios a estos manuales

Sin comentarios