разбираюсь в исходниках одной большой проги, не могу понять. Есть такая строка
SELECT usesuper FROM pg_user WHERE usename = '%.*s'
//проверка юзера на супер права
что могут обозначать эти символы?
>разбираюсь в исходниках одной большой проги, не могу понять. Есть такая строка
>
>SELECT usesuper FROM pg_user WHERE usename = '%.*s'
>//проверка юзера на супер права
>что могут обозначать эти символы?Любой пользователь имя которого кончается на .*s
Hi,Actually it should not work like expected if it is just SQL statement (i mean "SELECT usesuper FROM pg_user WHERE usename = '%.*s'") In order to work from SQL point of view it should be:
SELECT usesuper FROM pg_user WHERE usename LIKE '%.*s'
In that case meaning is: get all usesuper where usename is ending with ".*s". Without "LIKE" it will get just all usesuper where usename = '%.*s' (exact string).
But if it is format string of the "printf family" of the functions (printf; sprintf etc.) meaning is different: "*" can be used to specify number of chars in the result string. For example
printf("%*d", width, num);Thanks and hope it helps
--- sas