Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
dollar-quoted strings, функции и др. непонятки
|
|||
|---|---|---|---|
|
#18+
Вот объясните плиз тупому ламеру, почему на Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. постгрес ругается psql ERROR: unterminated dollar-quoted string at or near "$$ DECLARE a1 text;" at character 63 Даже если пример из документации скопировать и вставить в psql - та же фигня. Если написать .. AS '<тело функции>' ..., то все нормально, но экранирование кавычек внутри функции превращает все в офигеннейшую кашу... 2. Как-нибудь можно сказать постгресу, чтобы он не предупреждал psql WARNING: nonstandard use of escape in a string literal HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. CONTEXT: SQL statement in PL/PgSQL function "tmp_f" near line 3 и вообще, к чему это предупреждение (на \\d в регулярке)?? Ведь я написал так, как в доках на 8.2 было, даже пример там с такой штукой ( regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g') ). И, похоже, что из-за этих предупреждений и функция не работает. Если сделать SELECT tmp_f('0123-abcd'), то ничего не вернется, а если SELECT substring('0123-abcd' from '(\\d+)-.+') - то все нормально... Ничччего не понимаю...... PS. Postgres - 8.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2007, 14:47 |
|
||
|
dollar-quoted strings, функции и др. непонятки
|
|||
|---|---|---|---|
|
#18+
Футкция буквально скопированная с вашего поста(copy+past) прекрасно создаеться и работает. Правда у меня 8.1. Но, думаю, не в этом дело. Может вы ее из файла создаете, в котором помимо этой функции еще что-то есть? ..... А вообще глянте вот тут У вас случаем psql не от 7.x? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2007, 17:32 |
|
||
|
dollar-quoted strings, функции и др. непонятки
|
|||
|---|---|---|---|
|
#18+
О, спасибо за наводку! Действительно, запускался psql от 7.1, оказывается от 8-ки пути не были прописаны в шелле для другого пользователя, а я обычно пользовался другим аккаунтом, где пути были в порядке. Две трети проблем решились. Но постгрес продолжает предупреждать psql WARNING: nonstandard use of \\ in a string literal at character 29 HINT: Use the escape string syntax for backslashes, e.g., E'\\'. QUERY: SELECT substring( $1 from '(\\d+)-.+') Ну какой же это nonstandard use, если все поголовно этим пользуются. Неужели придется везде писать 'bla-bla-bla' || E'\'' || 'bla-bla' вместо простого 'bla-bla-bla\'bla-bla' чтобы предупреждения не сыпались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2007, 18:08 |
|
||
|
dollar-quoted strings, функции и др. непонятки
|
|||
|---|---|---|---|
|
#18+
Эээээ.... На сколько я помню, у них какая-то толи дырка, то ли бага была с эскейппоследовательностями, и в 8.2 что-то на этот щет сильно поменялось. Так что изучайте документацию именно по 8.2 E.2.2. Migration to version 8.2 Observe the following incompatibilities: Set escape_string_warning to on by default (Bruce) This issues a warning if backslash escapes are used in non-escape (non-E'') strings. escape_string_warning (boolean) When on, a warning is issued if a backslash (\) appears in an ordinary string literal ('...' syntax) and standard_conforming_strings is off. The default is on. Applications that wish to use backslash as escape should be modified to use escape string syntax (E'...'), because the default behavior of ordinary strings will change in a future release for SQL compatibility. This variable can be enabled to help detect applications that will break. http://www.postgresql.org/docs/8.2/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS По ходу можете просто дерективу отключить в конфиге, или переходить именно на E формат (что и рекомендуеться!). Или просто забить на варнинги - работает же и с ними! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2007, 19:42 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34286342&tid=2005754]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
384ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 705ms |

| 0 / 0 |
