Как правильно передать курсор пользовательской функции? - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь передать курсор функции, подобной этой:

.create-or-alter function GetLatestValues(cursor:string) { 
    Logs | where cursor_after(cursor)
}

Но я получаю ответ Error cursor_after(): argument #1 is invalid.Я что-то упускаю?Является ли строка неправильным типом данных для использования?

Этот подход работает правильно для лямбда-функций:

let GetLatestValues = (cursor:string) {
   Logs | where cursor_after(cursor)
};
GetLatestValues('') | take 1

1 Ответ

1 голос
/ 09 апреля 2019

По умолчанию, определение функции в Kusto проверяет сохраненную функцию, и если вы используете курсор, система попытается сделать это с пустым параметром, что приведет к ошибке. Вы можете переопределить это поведение, используя параметр skipvalidation = true (см. Документацию по адресу: https://docs.microsoft.com/en-us/azure/kusto/management/functions#create-function)

.create-or-alter function with (skipvalidation = "true")
GetLatestValues(cursor:string)
{ 
    Logs | where cursor_after(cursor)
}
...