Как выполнить функцию MAL в monetdb?
Я читаю Внутреннее описание MonetDB, потому что мне интересно реализовать специальную процедуру непосредственно на языке алгебры MonetDB (MAL) вместо SQL-интерфейса (я надеюсь, что при этом увеличу производительность). Вот пример кода MAL, предоставленного в документации MonetDB
function sample(nme:str, val:any_1):bit;
c := 2 * 3;
b := bbp.bind(nme); #find a BAT
h := algebra.select(b,val,val);
t := aggr.count(h);
x := io.print(t);
y := io.print(val);
end sample;
Мой вопрос заключается в том, как выполнить такой код MAL на одной из моих существующих баз данных?
Спасибо за любой повтор
1 ответ
Клиентская программа monetdb имеет языковую директиву -l.
Используйте команду:
mclient -d -l mal
вы увидите приглашение mal>, после чего вы сможете вызвать функцию, например:
mal> sample ('colname', 23)
Обратите внимание, что операция bbp.bind() имеет неверный тип. Это не может быть установлено во время компиляции. Используйте вместо:
b: bat [: oid,: any_1]: = bpp.bind (nme);