# Return version() as a list of integers [major, minor, patch] create or replace function semver() as version().regexp_extract('v[0-9.]*')[2:].split('.') .list_transform(x->cast(x as INTEGER)); # semversion should be a list of integers [major, minor, patch] create or replace function errorIfBefore(semversion) as if (semver() <= semversion, error( version() || ' is too old'), null); select errorIfBefore([1,1,5]);