Missing MySQL 5.1 Functions

Document ID : KB000020623
Last Modified Date : 14/02/2018
Show Technical Document Details

ISSUE

Data is not being stored or displayed, and you come across this error, or one like it:

FUNCTION nms2.PERCENTILE does not exist

 

DETAILS

This is most commonly an install or upgrade issue. Re-running the installer or upgrader may fix it. The provided resolution is for when re-running the installer or upgrader either isn't an option, or didn't work.

 

RESOLUTION

  • If you're missing one function, you're probably missing more, if not all of them. First, make sure you have the dll's you need.
    The dlls are kept in D:\NetQoS\MySql51\lib\plugin. All NetQoS products need nqUDF.dll. NetVoyant also needs nvUDF.dll.
  • Find out what functions you have, and what you're missing, by getting into the database and running

    mysql> select * from mysql.func;

    Figure 1

    ** = NetVoyant only.
  • The ret column shows the return type. Return types are as follows:

    • 0=string
    • 1=real
    • 2=int
  • Create each function that you're missing from the above list. The syntax for creating a function is as follows:

    create [aggregate] function <name> returns <ret> soname <'dl'>;\
  • Here are all of the create functions for the listed functions: 
  • use mysql;
    create function v6_type returns int soname 'nqUDF.dll';
    create function v6_ntoa returns string soname 'nqUDF.dll';
    create function v6_aton returns string soname 'nqUDF.dll';
    create aggregate function associate returns int soname 'nqUDF.dll';
    create function v6_subneta returns string soname 'nqUDF.dll';
    create function v6_subnetn returns string soname 'nqUDF.dll';
    create function v6_maskbits returns int soname 'nqUDF.dll';
    create function format_bps returns string soname 'nqUDF.dll';
    create aggregate function percentile returns real soname 'nqUDF.dll';
    create aggregate function slope returns real soname 'nqUDF.dll';
    create aggregate function yIntercept returns real soname 'nqUDF.dll';
    create aggregate function nfa_flowcount returns int soname 'nqUDF.dll';
    create aggregate function nfa_flowcount_all returns int soname 'nqUDF.dll';
    create aggregate function smallest returns real soname 'nqUDF.dll';
    create aggregate function largest returns real soname 'nqUDF.dll';
    **create function tz_time returns string soname 'nvUDF.dll';
    **create function tz_hourofday returns int soname 'nvUDF.dll';
    **create function tz_dayofweek returns int soname 'nvUDF.dll';

** = NetVoyant only.