powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ANN Руководство по языку SQL СУБД Firebird 3.0
345 сообщений из 345, показаны все 14 страниц
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38954258
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выпущено "Руководство по языку SQL СУБД Firebird 3.0".

Свежие версии документации выложены здесь:
https://www.ibase.ru/files/firebird/Firebird_3_0_Language_Reference_RUS.pdf

Исходные тексты и снапшоты можно скачать здесь:
https://github.com/sim1984/langref30

Кроме того, документация доступна на официальном сайте firebirdsql.org, но обновления могут отставать
https://www.firebirdsql.org/file/documentation/reference_manuals/firebird-language-reference-30-rus.pdf

Замечания и предложения по улучшению приветствуются.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38954274
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руководство по языку SQL СУБД Firebird
Денис Симонов, Пол Винкенуг, Дмитрий Филиппов, Дмитрий Еманов, Томас Воинк, Александр
Карпейкин, Денис Симонов, Александр Карпейкин, Дмитрий Кузьменко, Алексей Ковязин
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38954281
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

это проблема со стилями в DocBook. Там по умолчанию авторов и редакторов фигачат в одну строчку. Да и вообще редактор только один. Подумаю как это поправить. Сейчас самое важное замечания по содержимому
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38954632
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис,

добавь, плз, в файлы по 2.5 и 3.0 в разделы "Соединения именованными столбами" и "Естественные соединения" замечание о том, что они доступны только в третьем диалекте. В первом получаем по лбу:
Код: plaintext
1.
SQL error code = -901.
feature is not supported in dialect 1.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38954736
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

добавил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38954743
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще одна хотелка: добавль, плз, в доку по 2.5 , что результат аггрегатной ф-ции COUNT(*) есть... INT (т.е. максимум для него = 2^32-1!).

Вот проверочка для этого дела:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table test(id bigint, fx int, fs smallint);
commit;
set sqlda_display;
set planonly;

select 
         count( id ) cnt_agg
        ,sum( id ) sum_agg_n64
        ,sum( fx ) sum_agg_n32
        ,sum( fs ) sum_agg_n16
from test;


Output:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
INPUT  SQLDA version: 1 sqln: 10 sqld: 0

PLAN (TEST NATURAL)

OUTPUT SQLDA version: 1 sqln: 20 sqld: 4
01: sqltype: 496 LONG	  		 sqlscale: 0 sqlsubtype: 0  sqllen: 4 
  :  name: (0)  alias: (7)CNT_AGG
  : table: (0)  owner: (0)
02: sqltype: 581 INT64	 Nullable sqlscale: 0 sqlsubtype: 0 sqllen: 8
  :  name: (0)  alias: (11)SUM_AGG_N64
  : table: (0)  owner: (0)
03: sqltype: 581 INT64	 Nullable sqlscale: 0 sqlsubtype: 0 sqllen: 8
  :  name: (0)  alias: (11)SUM_AGG_N32
  : table: (0)  owner: (0)
04: sqltype: 581 INT64	 Nullable sqlscale: 0 sqlsubtype: 0 sqllen: 8
  :  name: (0)  alias: (11)SUM_AGG_N16
  : table: (0)  owner: (0)

И подправлено сиё безобразие только в 3.0.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38955488
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

посмотрел там так и написано

стр. 353...
Тип возвращаемого значения INTEGER.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38959570
alexl06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Стр.43
Два раза повторяется следующее:

Поиск сотрудников, имена которых состоят из 5 букв, начинающихся с букв «Sm» и
заканчивающихся на «th». В данном случае предикат будет истинен для имен «Smith»
и «Smyth».

SELECT
first_name
FROM
employee
WHERE first_name LIKE 'Sm_th'
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38960195
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexl06,

спасибо. Поправил.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38961619
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис,

добавь, плз, на странице 122 в табличку с макс. длиной индексируемой строки в зав. от набора символов еще и вот это:

для 6 байтов символ:
page_sizemax_len4096169819233916384682Это актуально для любителей поиграться с case-insens & accent-insens текстом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-- page_size = 8K
SQL> recreate table test(x varchar(339) character set utf8 unique collate unicode_ci_ai); rollback;
SQL> recreate table test(x varchar(340) character set utf8 unique collate unicode_ci_ai); rollback;
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-key size exceeds implementation restriction for index "RDB$1"

-- page_size = 16K
SQL> recreate table test(x varchar(681) character set utf8 unique collate unicode_ci_ai); rollback;
SQL> recreate table test(x varchar(682) character set utf8 unique collate unicode_ci_ai); rollback;
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-key size exceeds implementation restriction for index "RDB$5"

Да и вообще, формулу можно туда же вкрячить:

Код: plaintext
max_key_length = floor( (page_size / 4 - 9) / N )

где N = число байтов на представление символа
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38961982
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

эта формула эмпирическим путём выведена или есть источник?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38962003
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэта формула эмпирическим путём выведена или есть источник?сначала эмпирическим, потом я вспомнил, что ДС мне тут как-то вправлял моцг на эту тему, а потом вгляделся в ТВОЙ ЖЕ текст в PDF'нике, и понял, что там есть всё для того, что бы её вывести :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38962176
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

добавил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38978384
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up, ибо Beta 2, пора начинать массово тестировать, и читать доку.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38978750
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
kdvup, ибо Beta 2, пора начинать массово тестировать, и читать доку.
Не стыкуется. На firebirdsql.org ничего нет. Разработчики молчат.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38978766
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

ДЕ сказал что вот вот выйдет
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38978783
Ritter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не стыкуется. На firebirdsql.org ничего нет. Разработчики молчат.

Из файла http://web.firebirdsql.org/download/snapshot_builds/win/3.0/Firebird-3.0.0.31855-ChangeLog.txt:
<<
2015-06-02 11:07 dimitr
M doc/WhatsNew
Updated the docs for Beta 2.
>>
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38978981
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
RitterИз файла http://web.firebirdsql.org/download/snapshot_builds/win/3.0/Firebird-3.0.0.31855-ChangeLog.txt:
<<
2015-06-02 11:07 dimitr
M doc/WhatsNew
Updated the docs for Beta 2.
>>
<<
2015-03-18 17:22 dimitr
M doc/WhatsNew
Updated the docs for Beta 2.
>>
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38978998
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Симонов ДенисДЕ сказал что вот вот выйдет
Мало ли что ДЕ кому-то сказал, или сказал но не в этом смысле :)
Пока ведь нельзя скачать откуда положено, и начать тестировать? Нельзя. Поэтому предложение kdv начать тестировать выглядит как... короче для каждого оно выглядит по-своему, но общее одно - оно вводит в заблуждение. Зачем?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979002
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

все спокойно могут скачать снапшот и тестировать. Некоторые это делают ещё с 1 альфы.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979007
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Пока ведь нельзя скачать откуда положено, и начать тестировать? Нельзя. Чё-чё ?..
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979011
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид-Пока ведь нельзя скачать откуда положено, и начать тестировать? Нельзя. Чё-чё ?..
Обострение в анонимусов.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979016
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Miwaonline!
You wrote on 8 июня 2015 г. 14:12:22:

Miwaonline> Обострение в анонимусов.
мочить казлов! (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979025
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- но общее одно - оно вводит в заблуждение. Зачем?
снапшот 3.0.0.31855 от позавчера уже пишет что он Beta 2. Сейчас в снапшотах обновленный билд 31868. Ну и что?
Или вы хотите сказать, что бета-2 в снапшотах обновляться не будет, и все тестеры Беты 2 будут жрать кактус до появления Release Candidate 1 ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979732
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
kdvИли вы хотите сказать, что бета-2 в снапшотах обновляться не будет, и все тестеры Беты 2 будут жрать кактус до появления Release Candidate 1 ?
kdvup, ибо Beta 2, пора начинать массово тестировать, и читать доку.
Это как-будто два разных человека писали. Одному, с точки зрения тестирования, не важны все эти бэты и кандидаты. А другому, с той же точки зрения, важны (ибо Beta 2). Понятно что я буду тестировать так, как мне удобно. А что делать тем, кто ещё прислушивается к старшим? Бежать тестировать Beta2, ибо важно? Или не бежать тестировать Beta2, ибо любой снапшот сойдёт?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979743
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

ты чего добиваешься-то ?

PS NickDee, не ты ли это ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979757
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
hvladты чего добиваешься-то ?А на что похоже?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979767
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-hvladты чего добиваешься-то ?А на что похоже?На неумный троллинг
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979972
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
hvlad-пропущено...
А на что похоже?На неумный троллинг
Влад, за 15 лет не реализован мультипоточный суперсервер. А спеси иногда будто пупы земли. Так как вы троллите своих пользователей, так вообще мало кто троллит. Это просто какой-то небесный уровень троллинга - на протяжении многих лет вызывать у пользователей определённые ожидания, не исполнять их, и не испытывать по этому поводу вины, а наоборот - вести себя так, будто вы всё делаете реально классно, что позволяет вам без зазрения совести ставить пользователей в различные позы.

Как вам такое? Тоже троллинг? Или правда жизни?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979995
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Miwaonline!
You wrote on 8 июня 2015 г. 14:12:22:

Miwaonline> Обострение в анонимусов.
мочить казлов! (с)
Зачем? Только посмотрите, какой интересный экземпляр попался. В отличие от многих других - да того же Йо!-шки - даже пишет без ошибок. Если повезет, еще и с нестабильного курсора начнет покровы срывать
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38979999
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

какое прокачанное ЧСВ, говорить за всех пользователей. В какие именно позы поставили лично тебя? Тебе кто-то не давал пользоваться CS/SC все эти годы? Хотя троллям всегда важны шашечки, а не ехать.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38980014
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-,

ну так помог бы. Языком чесать все горазды.

А многопоточный SS начали делать только 5 лет назад. А до этого другие задачи решали.
Распараллеливаемый SS обещали в FB 3. Но поскольку это не сделать быстро, а пользователи требовали новые версии, то FB 3 откладывался 2 раза. Первый раз когда решили выпустить 2.1 (это то что не успели сделать в 2.0), второй когда 2.5. Кроме того, в трёшке много нового помимо общего кэша.

P.S. И вообще хорош оффтопить.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38980025
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоните его нах.
это примитивное трололо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38980121
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Влад, за 15 лет не реализован мультипоточный суперсервер
1. за 15 лет (по факту - за 12-13) сделано дофига чего другого
2. Борланд, убив Classic в 2000 году, выпустил худо-бедно SMP суперсервер в 2002 году (версия 7.0), а по факту рабочий SMP суперсервер у них вышел только в версии 7.5, в 2004 году. И то, SMP допиливалось в 2007 и 2009 версиях (2006 и 2008 годы соответственно)

-А спеси иногда будто пупы земли.
где?

-на протяжении многих лет вызывать у пользователей определённые ожидания, не исполнять их, и не испытывать по этому поводу вины
это про какие "ожидания"? SMP суперсервера? Не припомню таких обещаний. Вулкан - был, все видели что это такое. Про SMP супер только в тройке обещали. Классик вполне поддерживается, да и с ним каких-то проблем нет, чтобы прямо вот ожидать SMP супер как манну небесную.

-Одному, с точки зрения тестирования, не важны все эти бэты и кандидаты.
на дурачка похоже. масштабное тестирование открывается с Beta 2. Потому что следом идет RC, а потом релиз.
Ясно что в Beta 2 будут какие-то ошибки, которые будут исправлять снапшотами. Не хочешь тестировать - не тестируй.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982175
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg. 19 NCHAR
Представляет собой символьный тип данных фиксированной длины с
предопределенным набором символов ISO8859_1
. . .
Аналогичный тип данных доступен для строкового типа переменной длины: NATIONAL
CHARACTER VARYING ( NVARCHAR ).
Денис, а в где ты про этот nVARchar увидел материал ? Ибо я что-то не могу вот этого понять:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> recreate table test(s nchar(10));
SQL> recreate table test(s nvarchar(10));
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 31
-(
SQL> recreate table test(s nvarchar);
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -607
-Invalid command
-Specified domain or source column NVARCHAR does not exist
(результат одинаковый что в 2.5, что в 3.0)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982205
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

эту часть не я писал. Уточню этот вопрос
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982217
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько помню, в синтаксисе есть "NATIONAL CHARACTER VARYING" но нет "NVARCHAR"
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982238
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

а кстати почему? Нам то этот тип конечно до лампочки, а вот тем кто захочет использовать придётся писать аж три слова вместо одного.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982244
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> в синтаксисе есть "NATIONAL CHARACTER VARYING" но нет "NVARCHAR"
Да, так и есть. Спс.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982745
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидpg. 19 NCHAR
Представляет собой символьный тип данных фиксированной длины с
предопределенным набором символов ISO8859_1
. . .
Аналогичный тип данных доступен для строкового типа переменной длины: NATIONAL
CHARACTER VARYING ( NVARCHAR ).
Денис, а в где ты про этот nVARchar увидел материал ? Ибо я что-то не могу вот этого понять:


убрал эту фигню в скобках
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982813
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня смущает вот этот абзац

"Для регистронезависимого поиска можно воспользоваться функцией UPPER:
Код: sql
1.
WHERE UPPER(name) = UPPER(:flt_name)


Для строк с набором символов WIN1251 можно для этих же целей воспользоваться предложением COLLATE PXW_CYRL.
Пример:
Код: sql
1.
WHERE  FIRST_NAME COLLATE PXW_CYRL >= :FLT_NAME

"
Возникает мысль что результаты
Код: sql
1.
WHERE UPPER(name) > UPPER(:flt_name)

и
Код: sql
1.
WHERE  FIRST_NAME COLLATE PXW_CYRL > :FLT_NAME COLLATE PXW_CYRL

всегда будут совпадать
(неважно какая операция сравнения =,>,<,....)

Ну собственно вопросы:
Для 3-ки это действительно так?
Я неправильно интерпретирую прочитанное?
"Мутно" написано?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982842
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Описание системных таблиц: RDB$FIELDS.RDB$FIELD_TYPE - а куда делись такие типы как:
9 - QUAD
10 - FLOAT
В RDB$TYPES эти типы описаны.

И еще - был вроде еще:
11 - DOUBLE PRECISION (сейчас 27)
Не могут ли появится поля с типом 11 при b/r со старых версий?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982845
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

То же самое - для поля RDB$FIELDS.RDB$ENTERNAL_TYPE
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982849
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

RDB$RELATIONS.RDB$RELATION_TYPE - типы таблиц GTT (4,5) - пропущены, см. RDB$TYPES.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982851
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

RDB$TYPES.RDB$FIELD_NAME - это скорее не имя столбца - это имя типа.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982854
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterСимонов Денис,

RDB$RELATIONS.RDB$RELATION_TYPE - типы таблиц GTT (4,5) - пропущены, см. RDB$TYPES.

Еще пропущен тип таблиц EXTERNAL (2).
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982865
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для таблиц мониторинга - MON$TRANSACTIONS.MON$STATE - пропущен STALLED (3).

Кстати, вот такое утверждение "Системные таблицы содержат префикс RDB$ в имени" - оно не совсем верно:
- есть системные таблицы мониторинга, которые MON$.
- признак "системной" таблицы - это RDB$SYSTEM_FLAG и только он - ничего не мешает сделать свою RDB$MY_TABLE
- прямым апдейтом записи мы можем любую таблицу превратить в "системную", что наблюдаем на примере IBE (его IBE$xxx)

И кстати утверждение, что если домен начинается с RDB$ (это я про RDB$FIELDS) - то он сгенерирован системой - также неверно.

Вообще, строить поведение исходя из названий (наш пресловутый префикс) - неверно.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982897
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterКстати, вот такое утверждение "Системные таблицы содержат префикс RDB$ в имени" - оно не совсем верно:
- есть системные таблицы мониторинга, которые MON$.

это таблицы мониторинга, они хоть и системные но не содержат описание схемы. И у меня они выделены в отдельный раздел.
Грубо говоря наши RDB$ таблицы это information_schema. Не надо читать как таблицы сождержащие префикс RDB$ являются системными.

DarkMaster - признак "системной" таблицы - это RDB$SYSTEM_FLAG и только он - ничего не мешает сделать свою RDB$MY_TABLE

конечно. Тут нет утверждения что каждая таблица с префиксом RDB$ является системной.

DarkMaster - прямым апдейтом записи мы можем любую таблицу превратить в "системную", что наблюдаем на примере IBE (его IBE$xxx)

В системную она никак не превратится. Это так IBE только думает, потому что он заточен считать системными все таблицы с долларом в имени. Даже если изменить флаг RDB$SYSTEM_FLAG апдейтом таблицы RDB$RELATIONS она всё равно не будет системной. Кстати в тройке такой трюк не пройдёт.

DarkMasterИ кстати утверждение, что если домен начинается с RDB$ (это я про RDB$FIELDS) - то он сгенерирован системой - также неверно.

Такого утверждения там нет. Есть утверждение что если домен сгенерирован системой то он будет иметь префикс RDB$. Обратное из этого никак не следует.
[/quot]

Если где то действительно есть предложение о том что если таблица/поле имеет такой-то префикс, то она системная. Покажи мне его.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982901
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterСимонов Денис,

Описание системных таблиц: RDB$FIELDS.RDB$FIELD_TYPE - а куда делись такие типы как:
9 - QUAD
10 - FLOAT
В RDB$TYPES эти типы описаны.

И еще - был вроде еще:
11 - DOUBLE PRECISION (сейчас 27)
Не могут ли появится поля с типом 11 при b/r со старых версий?

QUAD это внутренние потороха. Могут появиться UDF. Да и то видел только внутрях. Когда и где ты видел домен/поле с таким типом?

Про FLOAT каюсь позабыл. Добавлю. Про 11 ничего не могу сказать.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982904
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterСимонов Денис,

То же самое - для поля RDB$FIELDS.RDB$ENTERNAL_TYPE

там тем более QUAD не появится. Про FLOAT снова позабыл. И ещё надо BLOB выкинуть не может быть их во внешних таблицах. CSTRING вроде тоже не может как и в обычных таблицах.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982905
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterСимонов Денис,

RDB$RELATIONS.RDB$RELATION_TYPE - типы таблиц GTT (4,5) - пропущены, см. RDB$TYPES.

про это поле там вообще фигня написана. Поправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982910
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterДля таблиц мониторинга - MON$TRANSACTIONS.MON$STATE - пропущен STALLED (3).

Не 3 а 2. Кстати какой физический смысл STALLED транзакции?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982919
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисDarkMasterКстати, вот такое утверждение "Системные таблицы содержат префикс RDB$ в имени"
это таблицы мониторинга, они хоть и системные но не содержат описание схемы. И у меня они выделены в отдельный раздел.
Грубо говоря наши RDB$ таблицы это information_schema.


Ну вот не знаю. Может просто формулировку сменить на "системные таблицы/имена, создаваемые сервером обычно содержат префикс RDB$"? А насчет MON$ - ну это все ж таблицы специального типа VIRTUAL и они вроде как тоже к information_schema относятся. Кстати, ничто не мешает в будущем появится префиксам типа SYS$, REPL$ и т.п.


DarkMaster - прямым апдейтом записи мы можем любую таблицу превратить в "системную", что наблюдаем на примере IBE (его IBE$xxx)

В системную она никак не превратится. Это так IBE только думает, потому что он заточен считать системными все таблицы с долларом в имени. Даже если изменить флаг RDB$SYSTEM_FLAG апдейтом таблицы RDB$RELATIONS она всё равно не будет системной. Кстати в тройке такой трюк не пройдёт.
[/quot]

А, действительно - IBE свои таблицы видно по имени распознает - погорячился. Но насчет того, что IBE все таблицы с долларом в имени к системным относит - тут ты поспешил ;)

Симонов ДенисЕсли где то действительно есть предложение о том что если таблица/поле имеет такой-то префикс, то она системная. Покажи мне его.

Можно просто сменить формулировку, а то некоторая путаница получается.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982920
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

QUAD - таки да, создать домен с таким типом не получится, проверил.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982928
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterДля таблиц мониторинга - MON$TRANSACTIONS.MON$STATE - пропущен STALLED (2).


это значение похоже для столбца другой таблицы MON$STATEMENTS.

авторСостояние оператора STALLED возникает только для недовыбранных курсоров, т.е. в перерывах между получением клиентом порций данных (fetches), пока он обрабатывает предыдущую порцию.


Что это такое для транзакций хз. Наверное для них он и не возникает.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982929
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Нашел упоминания о QUAD здесь:

http://www.alberton.info/firebird_sql_meta_info.html#.VXq6K-afcYk
http://mc-computing.com/databases/firebird/DatabaseExplorer.html
http://citforum.ru/database/interbase/interbase_01.shtml

Все статьи старые. Возможно для QUAD следует сделать сноску, что оно либо не используется, либо относится к внутренним потрохам сервера.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982946
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

STALLED - это состояние "приостановлено". Возможно для запроса, который начал своё
выполнение, еще не завершил его, но в данный момент не выполняется. Например ждёт
входных параметров или очередного фетча от клиента.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982960
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Кстати,а в MON$TRANSACTIONS состояние LIMBO отображается?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38982961
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterhvlad,

Кстати,а в MON$TRANSACTIONS состояние LIMBO отображается?В MON$TRANSACTIONS, по-построению, могут отражаться только активные тр-ции.
Тр-ция в состоянии LIMBO - не активна - в том смысле, что такого run-time объекта в памяти движка нет.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983005
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

обновил доку
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983009
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Угу, сейчас качну, спасибо...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983680
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так никто и не ответил 17763288
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983686
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m> так никто и не ответил 17763288

Если ничего не изменилось, то должно быть да.
Можешь сам проверить, это не сложно.

Другое дело, что лично я не вижу смысла сегодня
цепляться за этот PXW_CYRL да и вообще описывать
его в доке не в спец.разделе про коллейты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983702
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамm7m> так никто и не ответил 17763288

Если ничего не изменилось, то должно быть да.
Можешь сам проверить, это не сложно.

Другое дело, что лично я не вижу смысла сегодня
цепляться за этот PXW_CYRL да и вообще описывать
его в доке не в спец.разделе про коллейты.


Да, это ответ на какой из вопросов
1 - Для 3-ки это действительно так?
2 - Я неправильно интерпретирую прочитанное?
3 - "Мутно" написано?

зы. PXW_CYRL мне как-то побоку, цепляюсь за выделенный кусок
" Для строк с набором символов WIN1251 можно для этих же целей воспользоваться предложением COLLATE PXW_CYRL."
ну естественно в контексте того что написано в доке
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983710
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7mМеня смущает вот этот абзац

"Для регистронезависимого поиска можно воспользоваться функцией UPPER:
Код: sql
1.
WHERE UPPER(name) = UPPER(:flt_name)


Для строк с набором символов WIN1251 можно для этих же целей воспользоваться предложением COLLATE PXW_CYRL.
Пример:
Код: sql
1.
WHERE  FIRST_NAME COLLATE PXW_CYRL >= :FLT_NAME

"
Возникает мысль что результаты
Код: sql
1.
WHERE UPPER(name) > UPPER(:flt_name)

и
Код: sql
1.
WHERE  FIRST_NAME COLLATE PXW_CYRL > :FLT_NAME COLLATE PXW_CYRL

всегда будут совпадать
(неважно какая операция сравнения =,>,<,....)

Ну собственно вопросы:
Для 3-ки это действительно так?
Я неправильно интерпретирую прочитанное?
"Мутно" написано?

А что тут отвечать то. Не означает. В тройке по этому поводу ничего не менялось
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983712
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисА что тут отвечать то. Не означает. В тройке по этому поводу ничего не менялось
Ну дык поправьте тогда
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983716
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

я не знаю что там поправить. Для поиска без учёта регистра пользоваться PXW_CYRL можно. Но это никак не означает что сам порядок сравнения будет в точности соответствовать тому что получается при использовании UPPER.

Или ты имеешь ввиду следующий за этим пример не к месту?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38983746
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисm7m,

я не знаю что там поправить. Для поиска без учёта регистра пользоваться PXW_CYRL можно. Но это никак не означает что сам порядок сравнения будет в точности соответствовать тому что получается при использовании UPPER.

Или ты имеешь ввиду следующий за этим пример не к месту?
Да именно примеры, убрать их нафиг ибо вводят в заблуждение
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #38999542
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот Beta 2 вышла официально.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39005257
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE SHADOW, pg. 69:
Создать теневую копию могут:
• владелец базы данных;
• пользователь SYSDBA;
• любой пользователь, подключенный с ролью RDB$ADMIN (роль должна быть
назначена пользователю);
• пользователь операционной системы root (Linux);
• администраторы Windows, если используется доверительная авторизация

Добавить бы надо про юзера, которому грантована роль 'alter database' (непосредственно или через роль):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
C:\...> isql -q
connect '/3333:e30' user sysdba password 'masterkey';
set wng off;
create role bkr;
create or alter user bku password '123';
commit;

revoke all on all from bku;
revoke all on all from bkr;

 grant alter database to role bkr; 
grant bkr to bku;
commit;

show grants;
commit;

connect '/3333:e30' user bku password '123' role bkr;

select current_user, current_role from rdb$database;

create shadow 1 'c:\temp\e30.shd.1';
commit;

SQL> show database;

Output:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
. . .
/* Grant permissions for this database */
GRANT BKR TO BKU
GRANT ALTER DATABASE TO ROLE BKR

USER                            ROLE
=============================== ==========
BKU                             BKR

Database: /3333:e30
        Owner: SYSDBA
 Shadow 1: "C:\TEMP\E30.SHD.1" auto
. . .
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39005286
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

добавил, но выложить смогу только к следующим выходным. Ибо инет здесь слишком медленный и нестабильный.

Также добавил примечания про права на индексы и таблицы относительно GRANT ALTER TABLE.

ещё собираюсь немного дописать про оператор SELECT: добавить туда примеры с оконными функциями (сейчас только в описании этих функций есть), про взаимодействие оконных функций с GROUP BY (т.е. когда они ещё остаются разрешёнными в SELECT). Про многократное исполнение вычисляемых выражений из DT и GTT уже добавил.

Ну и стили подгоняю ближе к ReleaseNotes.

P.S. По 2.5 теперь дока будет по структуре и оформлению полностью идентичная той что сделана для трёшки.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39009868
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выложил обещанное обновление
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39009920
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стр 313
неверная расшифровка

WHILE (<condition>) DO
<compound_statement>
...
select_stmt Оператор SELECT.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010002
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стр 374
Описании работы LEFT

В случае если числовой параметр не будет целым числом, к нему будет применено
банковское округление: то есть

0,5 станет 0,
1,5 станет 2,
2,5 станет 2,
3,5 станет 4, ...

На практике стандартное математическое округление.
test
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with A(inp_val, out_val) as
(
    select 0.5, 0 from rdb$database
    union all
    select 1.5, 2 from rdb$database
    union all
    select 2.5, 2 from rdb$database
    union all
    select 3.5, 4 from rdb$database
)
,
B as
(
  select inp_val, out_val, left('1234567890', inp_val) part_of_string from A
)
select inp_val, out_val, part_of_string, character_length(part_of_string) from B

...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010011
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmстр 313
неверная расшифровка


спасибо, поправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010021
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

хм... значит в Release Notes 2.1.6 и Language Reference Update 2.5 та же ошибка, потому как описание взято от туда. Надо бы уточнить с чего вдруг там так написали. В прочем я подозревал, что в этом месте что-то не то написано. Для RIGHT такая же байда
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010262
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О чём речь? О переводе термина statement ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010267
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmстр 374
Описании работы LEFT

В случае если числовой параметр не будет целым числом, к нему будет применено
банковское округление: то есть

0,5 станет 0,
1,5 станет 2,
2,5 станет 2,
3,5 станет 4, ...

На практике стандартное математическое округление.
test
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with A(inp_val, out_val) as
(
    select 0.5, 0 from rdb$database
    union all
    select 1.5, 2 from rdb$database
    union all
    select 2.5, 2 from rdb$database
    union all
    select 3.5, 4 from rdb$database
)
,
B as
(
  select inp_val, out_val, left('1234567890', inp_val) part_of_string from A
)
select inp_val, out_val, part_of_string, character_length(part_of_string) from B



вот об этом
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010271
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, этот идиотизм не в мой огород, так что пофиг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010273
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

ну я тебя и не обвинял. Это в английской версии такое написано
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010277
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я не про адресные обвинения.
Я такого текста просто вообще не
припомню, даже в оригинале -
только щас после ваших слов узнал.

Не знаю кому могла придти в голову
такая странная реализация (даже если
бы она на самом деле была) и нафига
её вообще нужно было в доку тащить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010291
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
убрал эту фигню из описания функций LEFT и RIGHT
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010292
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в раздел "Безопасность / Операторы управления усерами / create user" предлагаю добавить совет: поскольку снапшоты идут с неинициализированной базой sec3.fdb, а утилита gsec объявлена хромой уткой и когда-нить поедет на помойку, то можно использовать для инициализации sec3.fdb вот это:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
gsec -display -database .\security3.fdb
Install incomplete, please read the Compatibility chapter in the release notes for this version

echo create user SYSDBA password 'masterkey'; show users; set list on; select * from sec$users; | isql -user sysdba .\security3.fdb
Users in the database
  2 #SYSDBA

SEC$USER_NAME                   SYSDBA
SEC$FIRST_NAME                  <null>
SEC$MIDDLE_NAME                 <null>
SEC$LAST_NAME                   <null>
SEC$ACTIVE                      <true>
SEC$ADMIN                       <true>
SEC$DESCRIPTION                 <null>
SEC$PLUGIN                      Srp

gsec -display -database .\security3.fdb
     user name                    uid   gid admin     full name
------------------------------------------------------------------------------------------------
SYSDBA                              0     0
(два вызова gsec приведены только для иллюстрации; для прописки sysdba эта утиль не нужна)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010295
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Операторы DML / EXECUTE BLOCKВходные и выходные параметры
...
Если есть входные параметры, все становится сложнее: эти параметры должны
получить свои значения после подготовки оператора, но перед его выполнением.
Это требует специальных возможностей, которыми располагает не каждое клиентское
приложение (Например, ISQL такой возможности не предлагает ).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create sequence g;
recreate table test(id int, x int);
commit;
insert into test select gen_id(g,1), 100 from rdb$types rows 8;
commit;

set term ^;
execute block as
begin
execute statement (
    'execute block( a int = ?, b int = ? ) as '
    || 'begin '
    || '  update test set x = x/2 '
    || '  where abs(id) between :a and :b; '
    || 'end')  (2, 5) ;
end
^
set term ;^
commit;
select * from test;

:-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010296
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

это возможности execute statement но уж никак не ISQL
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010301
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безопасность / Изменение текущей ролиПараметры оператора SET ROLE

В то время как CURRENT_ROLE возможно изменить с помощью оператора
SET ROLE, ее не всегда возможно вернуть обратно той же командой,
потому что она выполняет проверку прав доступа.Не понял про выделенное. Её и вернуть можно, и даже отменить незавершенные изменения, выполненные в предыдущей роли, даже если характер этих изменений таков, что они недоступны для той роли, куда возвращаемся:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
C:\MIX\firebird\QA\fbt-repo\tmp>isql /3333:e30
Database:  /3333:e30
SQL> create table test1(id int);
SQL> create role boss;
SQL> create role acnt;
SQL> create or alter user ozzy password '123' revoke admin role;
SQL> set wng off;
SQL> revoke all on all from public;
SQL> revoke all on all from boss;
SQL> revoke all on all from acnt;
SQL> revoke all on all from ozzy;
SQL> commit;
SQL> grant insert, select on test1 to boss;
SQL> grant select on test1 to acnt;
SQL> grant boss to ozzy;
SQL> grant acnt to ozzy;
SQL> commit;
SQL> show grants;

/* Grant permissions for this database */
GRANT SELECT ON TEST1 TO ROLE ACNT
GRANT INSERT, SELECT ON TEST1 TO ROLE BOSS
GRANT ACNT TO OZZY
GRANT BOSS TO OZZY
SQL> commit; connect '/3333:e30' user ozzy password '123';
Database:  '/3333:e30', User: ozzy
SQL> set role boss;
SQL> select current_role from rdb$database;

ROLE
===============================
BOSS

SQL> insert into test1 values(1);
SQL> set role acnt;
SQL> select current_role from rdb$database;

ROLE
===============================
ACNT

SQL> insert into test1 values(2);
Statement failed, SQLSTATE = 28000
no permission for INSERT access to TABLE TEST1
SQL> select * from test1;

          ID
============
           1

SQL> savepoint sp_acnt;
SQL> set role boss;
SQL> insert into test1 values(2);
SQL> insert into test1 values(3);
SQL> set role acnt;
SQL> select * from test1;

          ID
============
           1
           2
           3

SQL> rollback to sp_acnt;
SQL> select * from test1;

          ID
============
           1

SQL>
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010322
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

согласен. Это надо бы удалить. По моему было в одной из ранних версий realese notes. Сейчас поглядел ничего такого не написано.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39010325
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39011440
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pp. 194-195Параметры оператора CREATE EXCEPTION

Внимание!
Если в тексте сообщения, встретится номер слота параметра больше 9, то
второй и последующий символ будут восприняты как литералы. Например,
@10 будет воспринято как @1, после которого следует литерал 0.Лучше привести пример какой-нить.
Типа такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> create exception ex1 'something wrong in @1 @2 @3 @4 @5 @6 @7 @8 @9 @10 @11';
SQL> -- А теперь вызовем это исключение, но не с 11 аргументами, а с 9:
SQL> execute block as
CON> begin
CON> exception ex1 using (' hvhvhv ','zxcv2','hgfd03','q04','q05','q06','bebebe7','gagaga8','mememe9');
CON> end^
Statement failed, SQLSTATE = HY000
exception 1
-EX1
-something wrong in  hvhvhv  zxcv2 hgfd03 q04 q05 q06 bebebe7 gagaga8 mememe9  hvhvhv 0  hvhvhv 1

Т.е. никакой ошибки о несоотв-вии числа аргументов не вываливается, но текст сообщения при этом явно кривой.

И еще. Передадим ровно то число аргументов, что было указано в определении exception'a:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SQL> create exception ex1 'something wrong in @1 @2 @3 @4 @5 @6 @7 @8 @9 @10 @11';
SQL> set term ^;
SQL> execute block as
CON> begin
CON> exception ex1 using ('q01','q02','q03','q04','q05','q06','q07','q08','q09','q10','q11');
CON> end^
Statement failed, SQLSTATE = 07002
Number of arguments (11) exceeds the maximum (9) number of EXCEPTION USING arguments
SQL>
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39011452
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидТ.е. никакой ошибки о несоотв-вии числа аргументов не вываливаетсяПотому что нет ошибки.
Твоё @10 интерпретируется как <параметр №1>0

Таблоидно текст сообщения при этом явно кривойОн именно такой, как описано в доке.

ТаблоидПередадим ровно то число аргументов, что было указано в определении exception'aТы в тексте exception используешь 9 пар-ров (см. выше), а передаёшь - 11.
О чём тебе швабра (c) и сказала :)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39011461
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидПередадим ровно то число аргументов, что было указано в определении exception'aТы в тексте exception используешь 9 пар-ров (см. выше), а передаёшь - 11.
О чём тебе швабра (c) и сказала :)я вот про ЭТОТ вариант:

Таблоид
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQL> create exception ex1 'something wrong in  @1 @2 @3 @4 @5 @6 @7 @8 @9 @10 @11 ';
SQL> set term ^;
SQL> execute block as
CON> begin
CON> exception ex1 using ( 'q01','q02','q03','q04','q05','q06','q07','q08','q09','q10','q11' );
CON> end^
Statement failed, SQLSTATE = 07002
Number of arguments (11) exceeds the maximum (9) number of EXCEPTION USING arguments
-- тут 11 параметров, а не 9.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39011478
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай вышенаписанное ещё раз. И ещё раз. И ещё раз...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39011486
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

1 пример привести в качестве демонстрации сказанного. Второй не имеет ибо выше написано

авторМаксимальный номер параметра равен 9;

а то так можно дойти до того что демонстрировать все неверные операторы, коих может быть 100500 сочетаний
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39011492
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

тьфу блин. Не там ты читаешь. В CREATE EXCEPTION не всё написано, но там и не должно быть. Смотри PSQL оператор EXCEPTION ибо про USING основной текст там
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39013965
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидТипа такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> create exception ex1 'something wrong in @1 @2 @3 @4 @5 @6 @7 @8 @9 @10 @11';
SQL> -- А теперь вызовем это исключение, но не с 11 аргументами, а с 9:
SQL> execute block as
CON> begin
CON> exception ex1 using (' hvhvhv ','zxcv2','hgfd03','q04','q05','q06','bebebe7','gagaga8','mememe9');
CON> end^
Statement failed, SQLSTATE = HY000
exception 1
-EX1
-something wrong in  hvhvhv  zxcv2 hgfd03 q04 q05 q06 bebebe7 gagaga8 mememe9  hvhvhv 0  hvhvhv 1



добавил подобный пример, но не в оператор CREATE EXCEPTION, а в сам оператор EXCEPTION (глава PSQL)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39013978
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pp 405-406 ("Агрегатные функции")SUM

Синтаксис:
SUM([ALL | DISTINCT] <expr>)
[OVER ([<partition_exp>] [<order_exp>])]

Агрегатные функции в качестве выражения не допускаются.
Тип возвращаемого результата: тот же что и аргумент функции expr.Подправить тут надо.
Внутри аналитической функции, например sum( <expr> )over(), выражение <expr> - может быть "просто" агрегатом, см ниже.
И еще: тип возврата - всегда BIGINT, а не "тот же что и аргумент функции expr".

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> recreate table test(x smallint);
SQL> set sqlda_display on;

SQL> select sum( sum(x) )over() from test;
. . .
OUTPUT message field count: 1
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
. . .

SQL> select sum(x) from test;
. . .
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
. . .

SQL> select sum(x)over() from test;
. . .
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
. . .
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39013989
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg 422RANK
. . .
RANK() OVER ([<partition_exp>] [<order_exp>])
Тип возвращаемого результата: BIGINT
Описание:
Возвращает ранг каждой строки в секции результирующего набора. Ранг строки
вычисляется как единица плюс количество рангов, находящихся до этой строки .Примера тут не хватает, КМК. Типа такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
SQL> recreate table test(id int primary key, x int, y int);
SQL> recreate sequence g;
SQL> insert into test values(gen_id(g,1), 1, 10);
SQL> insert into test values(gen_id(g,1), 1, 10);
SQL> insert into test values(gen_id(g,1), 1, 10);
SQL> insert into test values(gen_id(g,1), 1, 10);
SQL> insert into test values(gen_id(g,1), 1, 11);
SQL> insert into test values(gen_id(g,1), 1, 12);
SQL> insert into test values(gen_id(g,1), 2, 21);
SQL> insert into test values(gen_id(g,1), 2, 21);
SQL> insert into test values(gen_id(g,1), 2, 21);
SQL> insert into test values(gen_id(g,1), 3, 31);
SQL> insert into test values(gen_id(g,1), 3, 31);
SQL> insert into test values(gen_id(g,1), 3, 32);
SQL> insert into test values(gen_id(g,1), 3, 33);
SQL> insert into test values(gen_id(g,1), 3, 34);
SQL> select t.*,rank()over(partition by x order by y) from test t;

          ID            X            Y                  RANK
============ ============ ============ =====================
           1            1           10                     1
           2            1           10                     1
           3            1           10                     1
           4            1           10                     1
           5            1           11                     5
           6            1           12                     6
           7            2           21                     1
           8            2           21                     1
           9            2           21                     1
          10            3           31                     1
          11            3           31                     1
          12            3           32                     3
          13            3           33                     4
          14            3           34                     5

И фразу о том, как вычисляется rank(), я бы написал так: "строки с одинаковыми значениями <order_expr> получают одинаковый ранг (в пределах группы <partition_exp>, если она указана). Ранг строки, у которой <order_expr> отличается от N строк, находящихся выше неё, вычисляется как 1 + N (также в пределах группы <partition_exp>)".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39013995
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pp 355-356 ("Таблица 8.1. Переменные пространства имён SYSTEM")NETWORK_PROTOCOL Протокол, используемый для соединения с базой
данных. Возможные значения: " TCPv4 ", "WNET", "XNET",
NULL.Я напоролся при анализе результатов какого-то теста, публикуемых периодически здесь , что значением может быть теперь и TCPv 6 .
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014010
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидПодправить тут надо.
Внутри аналитической функции, например sum( <expr> )over(), выражение <expr> - может быть "просто" агрегатом, см ниже.


Мочь то может. Вот только зачем?

И даже может вот так работать

Код: sql
1.
select sum( max(code_horse) )over() from horse group by code_sex;



что уже полезней. Если это не ошибка то допишу. Но тогда надо и другие варианты исследовать

ТаблоидИ еще: тип возврата - всегда BIGINT, а не "тот же что и аргумент функции expr".


Не совсем так. 1 диалект. В общем-то конечно не совсем тот же, но и не всегда BIGINT. Понятное дело что значение того типа который получается по масштабу будет больше вмещать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> set sqlda_display on;
SQL> select sum(0.23465) over() from rdb$fields rows 1;

INPUT message field count: 0

OUTPUT message field count: 1
01: sqltype: 480 DOUBLE Nullable scale: 7 subtype: 0 len: 8
  :  name: SUM  alias: SUM
  : table:   owner:

                    SUM
=======================
1082.205799999979500000

 [code=plaintext]
                    
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014011
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg 357 ("Параметры функции RDB$SET_CONTEXT")Максимальное число переменных в рамках одного соединения равно 1000;Максимальное число контекстных переменных каждого вида (USER_SESSION, USER_TRANSACTION) ограничено числом 1000. Таким обр., соединение может установить до 1000 переменных, и транзакция, открытая этим соединением, также может установить "своих" переменных тоже 1000 штук. А если коннект создает сразу N транзакций, то макс. число контекстных переменных будет (1+N)*1000:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
set term ^;
execute block returns(session_vars int, transaction_vars int)
as
  declare n int = 1000;
  declare i int;
  declare k int;
begin
  i = 1;
  while(i <= n) do
  begin
      execute statement 'select rdb$set_context(''USER_SESSION'',''VAR_ATT'||i||''', '||i||') from rdb$database' into k;
      i = i+1;
  end
  i = 1;
  while(i <= n) do
  begin
      execute statement 'select rdb$set_context(''USER_TRANSACTION'',''VAR_TX1_'||i||''', '||i||') from rdb$database' into k;
      i = i+1;
  end

  in autonomous transaction do
  begin
      i = 1;
      while(i <= n) do
      begin
          execute statement 'select rdb$set_context(''USER_TRANSACTION'',''VAR_TX2_'||i||''', '||i||') from rdb$database' into k;
          i = i+1;
      end

      in autonomous transaction do
      begin
          i = 1;
          while(i <= n) do
          begin
              execute statement 'select rdb$set_context(''USER_TRANSACTION'',''VAR_TX3_'||i||''', '||i||') from rdb$database' into k;
              i = i+1;
          end
          select 
               count( iif(c.mon$attachment_id is not null, mon$variable_value, null) )
              ,count( iif(c.mon$attachment_id is not null, null, mon$variable_value) )
          from mon$context_variables c
          into session_vars, transaction_vars;
      end
  end
  suspend;
end
^
set term ^;

Output:

Код: plaintext
1.
2.
SESSION_VARS TRANSACTION_VARS
============ ================
        1000             3000
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014013
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНе совсем так. 1 диалект. В общем-то конечно не совсем тот же, но и не всегда BIGINT.Тогда лучше по диалектам отдельно расписать.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014018
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

там не в диалекте дело. Если в 3 диалекте тип FLOAT будешь суммировать получится DOUBLE. Вот в 3 ем диалекте

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SQL> set sqlda_display on;
SQL> select sum(0.23465) over() from rdb$fields rows 1;

INPUT message field count: 0

OUTPUT message field count: 1
01: sqltype: 580 INT64 Nullable scale: -5 subtype: 0 len: 8
  :  name: SUM  alias: SUM
  : table:   owner:

                  SUM
=====================
             45.28745

SQL> select sum(cast(0.23465 as float)) over() from rdb$fields rows 1;

INPUT message field count: 0

OUTPUT message field count: 1
01: sqltype: 480 DOUBLE Nullable scale: 0 subtype: 0 len: 8
  :  name: SUM  alias: SUM
  : table:   owner:

                    SUM
=======================
      45.28745017945766

SQL>
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014056
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

добавил всё кроме агрегатов в оконных функциях. Во первых там не самое удачное место ибо описываются именно агрегатные функции, предложение окна там добавлено только потому что оно может использоваться. Во вторых надо дополнительно исследовать этот вопрос. Я ещё посмотрю что у других СУБД по этому поводу.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014134
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В раздел "Операторы управления пользователями" неплохо бы добавить, что:

1) усеров теперь можно вводить с non-ascii символами. Однако из-за вот этого:
Код: plaintext
1.
2.
SQL> show table sec$users;
SEC$USER_NAME                   (RDB$USER) CHAR( 31 ) CHARACTER SET  UNICODE_FSS  Nullable
. . .
-- максимальная длина логина будет определяться тем, сколько байт отводится на 1 символ в unicode-кодировке.
Для кириллицы отводится два байта на символ, поэтому вот этот вариант:
Код: plaintext
SQL> create or alter user "ВасяПупкинКулха" password '123';
-- прокатывает, а вот этот обломится:
Код: plaintext
1.
2.
3.
4.
SQL> create or alter user "ВасяПупкинКулха ц " password '123';
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-expected length 31, actual 16
(перед этими танцами, конечно, необходимо делать chcp 1251 и запускать isql -ch win1251, либо делатьв isql'e до коннекта 'set names win1251'; иначе прилетит швабра 'malformed string').

2) непривилегированный усер может поменять свой пароль и атрибуты (firstname, lastname + теги):
Код: plaintext
1.
2.
SQL> alter user "ВасисуалийПупка" firstname 'Vasisualiy';
SQL> alter user "ВасисуалийПупка" password '000';
SQL> alter user "ВасисуалийПупка" tags( city = 'Balaha', favorite_group = 'Deep Purple');

Но он не может сделать себя inactive или грохнуть - получит "no permission for <...> access to TABLE <...>".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014147
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg 230Замечание о равенстве

Оператор "=", который явно используется во многих условиях соединении и неявно
в соединениях именованными столбцами и естественных соединениях, только при
сравнении значений со значениями.
В соответствии со стандартом SQL, NULL не
является значением и, следовательно, два значения NULL не равны и ни неравны
друг с другом.В выделенном тексте пропущено какое-то слово. Может, имелось в виду это: "Оператор "=", который <...>, ДАЁТ ОЖИДАЕМЫЙ РЕЗУЛЬТАТ только при сравнении значений со значениями (а не с NULL)" - ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014152
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу в доке замечания о том, что в 3.0 запрещено юзать смешанные джойны. Об этом говорится в RN ("Prohibit Edgy Mixing of Implicit/Explicit Joins"), также см. CORE-2812
Ну, и пример для "забавы мозга" можно привести:

Код: plaintext
1.
2.
3.
4.
5.
recreate table t1(id int); 
commit;
insert into t1 values( 1 ); 
commit;
select a.id from t1  a , t1  b  join t1  c  on a.id=c.id where a.id=b.id; -- этот завалится
select a.id from t1  b , t1  a  join t1  c  on a.id=c.id where a.id=b.id; -- а этот - отработает без ошибок :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014166
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисдобавил всё кроме агрегатов в оконных функциях.Про rank(), pg. 424, - что там, будешь исправлять фразу про его вычисление или так оставишь ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014193
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидСимонов Денисдобавил всё кроме агрегатов в оконных функциях.Про rank(), pg. 424, - что там, будешь исправлять фразу про его вычисление или так оставишь ?

посмотрю ещё вечерком сегодня. Это из Release Notes вроде фраза. Надо бы посмотреть как оно описано в других СУБД.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014195
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидpg 230Замечание о равенстве

Оператор "=", который явно используется во многих условиях соединении и неявно
в соединениях именованными столбцами и естественных соединениях, только при
сравнении значений со значениями.
В соответствии со стандартом SQL, NULL не
является значением и, следовательно, два значения NULL не равны и ни неравны
друг с другом.В выделенном тексте пропущено какое-то слово. Может, имелось в виду это: "Оператор "=", который <...>, ДАЁТ ОЖИДАЕМЫЙ РЕЗУЛЬТАТ только при сравнении значений со значениями (а не с NULL)" - ?

это кривоватый перевод того что Paul писал. Посмотрю сегодня ещё раз как там в оригинале написано.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014198
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

про смешения джойнов я в обзоре фич FB3 писал. Там причём не все смешанные виды джойнов запрещены, а только самые кривые. Но лучше считать что все.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014280
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВ раздел "Операторы управления пользователями" неплохо бы добавить, что:

1) усеров теперь можно вводить с non-ascii символами. Однако из-за вот этого:
Код: plaintext
1.
2.
SQL> show table sec$users;
SEC$USER_NAME                   (RDB$USER) CHAR( 31 ) CHARACTER SET  UNICODE_FSS  Nullable
. . .
-- максимальная длина логина будет определяться тем, сколько байт отводится на 1 символ в unicode-кодировке.
Для кириллицы отводится два байта на символ, поэтому вот этот вариант:
Код: plaintext
SQL> create or alter user "ВасяПупкинКулха" password '123';


эта байда не только для имён пользователей, но и для всех объектов метаданных. В тройке здесь вряд ли что-то правится будет. Может быть в 4ке перейдут на внутреннюю кодировку UTF-8 и увеличат максимальный размер идентификаторов.

Таблоид2) непривилегированный усер может поменять свой пароль и атрибуты (firstname, lastname + теги):
Но он не может сделать себя inactive или грохнуть - получит "no permission for <...> access to TABLE <...>".

ну про грохнуть это в операторе DROP USER написано. Про INACTIVE добавлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014405
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg 310BEGIN ... END
. . .
Блоки могут быть вложенными, глубина вложения не ограничена.я бы не был столь категоричен :-)
Хотя пример ниже - чистой воды издевательство и за гранью добра и зла, но таки вот:

1) батник, который генерит .sql-скрипт с begin-end блоками необходимого уровня вложенности:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
@echo off
setlocal enabledelayedexpansion enableextensions
cls
set fq=%1
if .%fq%.==.. set fq=3
set sql=%~n0.tmp

del %sql% 2>nul
echo recreate exception ex_test 'Hi from Mariana Trench, depth=@1';>>%sql%
echo recreate sequence g;>>%sql%
echo commit;>>%sql%
echo set term ^^;>>%sql%
echo execute block as>>%sql%
echo declare n int = 0;>>%sql%
echo begin>>%sql%
for /l %%i in (1, 1, %fq%) do ( 
  echo begin -- level = %%i>>%sql%
  echo   n = gen_id(g, 1^);>>%sql%
)
for /l %%i in (%fq%, -1, 1) do (
  if .%%i.==.%fq%. echo exception ex_test using( n ^);>>%sql%
  echo end -- level = %%i>>%sql%
)

echo end^^>>%sql%
echo set term ;^^>>%sql%
echo commit;>>%sql%

При запуске его без параметров будет создан код в три уровня вложенности:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
recreate exception ex_test 'Hi from Mariana Trench, depth=@1';
recreate sequence g;
commit;
set term ^;
execute block as
declare n int = 0;
begin
begin -- level = 1
  n = gen_id(g, 1);
begin -- level = 2
  n = gen_id(g, 1);
begin -- level = 3
  n = gen_id(g, 1);
exception ex_test using( n );
end -- level = 3
end -- level = 2
end -- level = 1
end^
set term ;^
commit;


2) генерим теперь мега-монстра, задавая аргумент = 32000 (да, 32 тысячи уровней :)). Это будет файлик размером 2 Мб - см аттач.
3) запускаем на пустой базе: isql /3333:e30 -i nested_blocks.tmp

Можно перед "3)" открыть соседнее окошко, чтобы глядеть, как будет меняться значение генератора по мере выполнения блока "в глубину".
Только... никак оно не будут меняться! Примерно 30-40 сек значение по show sequ так и будет торчать в нуле, а затем команда 'show sequ' вообще перестанет что-либо выдавать - и наступит глухой висяк. Более того, с этого момента станет невозможным:
1) подключение к этой базе;
2) подключение или создание вообще любой другой базы по удаленному протоколу для данного инстанса ФБ (!)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014408
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидчистой воды издевательство и за гранью добра и злаps. а еще и службу ФБ при этом не остановить, только килянием в PE...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014414
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очередной вариант на тему "уложу сервер одним запросом"?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014416
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

>BEGIN..END

ты правда считаешь что такую ересь надо документировать? "Не ограничено" это в разумных пределах. Никто такую процедуру написать руками не сможет и да поддерживать её не реально.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014424
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мало ему того, что разработчикам мозг выносит, так теперь и до парсера очередь дошла.

снимите шляпы! обнажите головы! сейчас состоится вынос тела моцга! (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014430
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если количество вложенных BEGIN..END превышает 10 уже стоит задуматься над сменой консерватории. Ну разбить процедуру на несколько, или может логические условия по возможности объединить.

Теперь про скрипт создающий мегапроцедуры. Когда такое видишь уже начинаешь жалеть о том что лимит на текст запроса в 64K сняли. Хотя для пакетов это было необходимо.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014445
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы "оно" в ответ на 32к уровней вывалилось с ошибкой, или с багчеком или вообще ФБ бы грохнулся, то я бы тихо промолчал :)
Но тут - висяк, причём конкретный такой: ни к одной из баз подключиться больше не могу. При том, что проц не загружен, вообще.
Такие вот делы...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014470
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

это не к доке вопросы. Пиши трекеру.

Для execute block это может быть критично, для объектов метаданных нет, потому как создать объекты метаданных в FB3 может только SYSDBA, владелец базы, пользователь с ролью RDB$ADMIN и кому те выданы права grant create ...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014506
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто не к доке вопросы. Пиши трекеру.Трекер я успею посетить, но к доке таки просьба есть: убери оттуда слова "глубина неограниченна". На вышеприведенном батнике у мну получается, что её лимит ~12240 уровня для 32 битного ФБ на винде, и вроде как свыше 15000 для 64-битного linux-инстанса.

После незначительного превышения числа уровней (не до 32 к, конечно):
1) на винде лезет спасительное:
Statement failed, SQLSTATE = HY001
Stack overflow. The resource requirements of the runtime stack have exceeded the memory available to it.
("спасительное" - потому что это гораздо лучше, чем глухой висяк!)
2) на линухе - печалька про "error reading data from connection". При этом создался коредамп размером 170 Мб, а каким будет размер у бактрассы - хз, до сих пор формируется, уже больше 350 Мб :)

Так что пропиши, плз, что дескать "уровней может быть достаточно много, но не следует превышать их число разумным пределом (10-15)".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014607
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисПиши трекеру. Сбацал... Теперь побьют, наверное... С вердиктом "Won't fix" ...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014668
Таблоид
Код: plaintext
SQL> create or alter user "ВасяПупкинКулха" password '123';
-- прокатывает, а вот этот обломится:
Код: plaintext
1.
2.
3.
4.
SQL> create or alter user "ВасяПупкинКулха ц " password '123';
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-expected length 31, actual 16

Кто бы Trusted Auth потестировал, на предмет адекватности работы с длинными именами win-пользователей, типа "Фамилия Имя Отчество". Возможно там всё плохо.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014686
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pp 311-312IF ... THEN ... ELSE
. . .
IF (<condition>)
THEN <compound_statement>
[ELSE <compound_statement>
. . .
сompound_statement Оператор или блок операторовПосле выделенного слова предлагаю добавить: "(для ELSE - можно указать следующий IF)", т.е. я вот про это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
execute block returns(how_much varchar(20)) as
    declare n int;
begin
    n = rand()*1000;
    if (n < 100) then how_much = 'poor';
    else  if  ( n < 300 ) then how_much = 'middle';
    else  if  ( n < 700 ) then how_much = 'optimal';
    else how_much = 'high';
    suspend;
end
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014814
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидpp 311-312IF ... THEN ... ELSE
. . .
IF (<condition>)
THEN <compound_statement>
[ELSE <compound_statement>
. . .
сompound_statement Оператор или блок операторовПосле выделенного слова предлагаю добавить: "(для ELSE - можно указать следующий IF)", т.е. я вот про это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
execute block returns(how_much varchar(20)) as
    declare n int;
begin
    n = rand()*1000;
    if (n < 100) then how_much = 'poor';
    else  if  ( n < 300 ) then how_much = 'middle';
    else  if  ( n < 700 ) then how_much = 'optimal';
    else how_much = 'high';
    suspend;
end


следующий IF как раз и является оператором. Не вижу противоречий
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014848
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто мысльКто бы Trusted Auth потестировал, на предмет адекватности работы с длинными именами win-пользователей, типа "Фамилия Имя Отчество". Возможно там всё плохо.У меня получился взлёт TrustedAuth только при выполнении следующих условий:
1) коннект идёт к localhost, а не к другому хосту. При попытке коннекта не к localhost - "your user name / password траляля, идите к вашему сисдбаю"
и
2) имя OS-усера записано только в ascii-символах. Если оно есть "ВасисуалийПупка", то выдать его в isql'е не получится - malformed string (при том, что предварительно в консоли делаю chcp 1251 и коннект идёт с -ch win1251).

Короче, кому интересно - трахайтесь сами с этим trusted auth, "изабэлло" гарантированно )
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014909
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид1) коннект идёт к localhost, а не к другому хосту. При попытке коннекта не к localhost - "your user name / password траляля, идите к вашему сисдбаю"По этому пункту отбой: на удалённой машине был неверно вбит кириллический OS-user, который должен был лезть к ней. Но с malformed string трабла осталась, так что создал CORE-4885
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014910
ТаблоидКороче, кому интересно - трахайтесь сами с этим trusted auth, "изабэлло" гарантированно )
Имхо это нужно добавить в документацию, в раздел known issues . А то человек прочитает документацию и ему покажется что оно работает всегда. А оно оказывается не всегда.
Я например был бы рад прочитать о всех кnown issues в специальном разделе документации.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014922
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто мысльТаблоидКороче, кому интересно - трахайтесь сами с этим trusted auth, "изабэлло" гарантированно )
Имхо это нужно добавить в документацию, в раздел known issues . А то человек прочитает документацию и ему покажется что оно работает всегда. А оно оказывается не всегда.
Я например был бы рад прочитать о всех кnown issues в специальном разделе документации.Пока что рано создавать эти самые known issues, т.к. внутри 3.0 еще многое чего может поменяться до её выпуска.
Заскорузлые баги / багофичи смотрите в трекере, ставьте фильтр по project = 'core', issue type = {'Bug', 'Improvement'}, status = 'Open' и, если нужно 'created before'.
ЗЫ. А самое лучшее - поставьте 3.0 у себя и начинайте изгаляться над ней. Время пришло, уже RC1 в снапшотах :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014958
Таблоидпросто мысльпропущено...

Имхо это нужно добавить в документацию, в раздел known issues . А то человек прочитает документацию и ему покажется что оно работает всегда. А оно оказывается не всегда.
Я например был бы рад прочитать о всех кnown issues в специальном разделе документации.Пока что рано создавать эти самые known issues, т.к. внутри 3.0 еще многое чего может поменяться до её выпуска.
Может и рано, но я совершенно точно предпочёл бы увидеть актуальные кnown issues в документации поставляемой с релизом.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39014979
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто мысль,

3.0 не релиз ещё. Там ставятся в примечание только то что совершенно точно не будет исправлено к релизу.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015097
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 таблоид - ты вроде предлагал описать compatibility issues именно для тройки. Возьмешься их хотя бы перечислить? В отдельной ветке или в личке.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015117
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr2 таблоид - ты вроде предлагал описать compatibility issues именно для тройки. Возьмешься их хотя бы перечислить? В отдельной ветке или в личке.попробую; черновик сначала пришлю тебе в личку. Но и Дениса тоже припахать сюда надо, у него в голове больше такой инфы сидит :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015135
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВнутри аналитической функции, например sum( <expr> )over(), выражение <expr> - может быть "просто" агрегатом, см ниже.
И еще: тип возврата - всегда BIGINT, а не "тот же что и аргумент функции expr".

Код: plaintext
1.
2.
3.
4.
5.
SQL> recreate table test(x smallint);
SQL> set sqlda_display on;

SQL> select sum( sum(x) )over() from test;
. . .


вау! Оно даже вот так работает

Код: sql
1.
2.
3.
4.
5.
6.
7.
select
  code_horse,
  avg(height_horse),
  rank() over(order by avg(height_horse)) as r
from measure
where height_horse is not null
group by code_horse



В общем буду думать как это описать. Причём судя по плану сначала делается агрегирование, а потом поверх него уже окно строится. Возьму на заметку. Ибо раньше для таких случаев использовал DT или CTE
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015607
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидpg 230Замечание о равенстве

Оператор "=", который явно используется во многих условиях соединении и неявно
в соединениях именованными столбцами и естественных соединениях, только при
сравнении значений со значениями.
В соответствии со стандартом SQL, NULL не
является значением и, следовательно, два значения NULL не равны и ни неравны
друг с другом.В выделенном тексте пропущено какое-то слово. Может, имелось в виду это: "Оператор "=", который <...>, ДАЁТ ОЖИДАЕМЫЙ РЕЗУЛЬТАТ только при сравнении значений со значениями (а не с NULL)" - ?

В оригинале было
авторThe “=” operator, which is explicitly used in many conditional joins and implicitly in named column
joins and natural joins, only matches values to values.

так как ты написал в принципе верно
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015630
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил вот так написать

авторОператор "=", который явно используется во многих условиях соединении и неявно в соединениях именованными столбцами и естественных соединениях, сравнивает только значения со значениями.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015678
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последние два слова ("со значениями") - лишние.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015727
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прибейте там упоминание про NULL гвоздями - обязательно найдутся умельцы.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015732
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

оно там есть. Абзац полностью звучит так

Замечание о равенствеОператор "=", который явно используется во многих условиях соединении и неявно
в соединениях именованными столбцами и естественных соединениях, сравнивает
только значения со значениями. В соответствии со стандартом SQL, NULL не является
значением и, следовательно, два значения NULL не равны и ни неравны друг с другом.
Если необходимо, чтобы значения NULL соответствовали друг другу при объединении,
используйте оператор IS NOT DISTINCT FROM. Этот оператор возвращает истину,
если операнды имеют то же значение, или, если оба они равны NULL.

Код: sql
1.
2.
3.
SELECT *
FROM A
JOIN B ON A.id IS NOT DISTINCT FROM B.code



это вообще про предложение JOIN
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015813
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мелочёвка, но таки подправить надо.

Вот тута:267
Код: plaintext
1.
2.
UPDATE target[ [  AS  ]  alias] 
SET col= newval[, col= newval...] 
. . .
- всё хорошо.

А вот тута:275
Код: plaintext
1.
2.
3.
4.
MERGE INTO target[ AS  target_alias] 
USING <source>[ AS  source_alias] 
ON <join condition>
<merge when>[<merge when>...] 
. . .
- не хватает "[" & "]" вокруг "AS", т.к. это слово необязательное везде и всегда.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39015818
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По mon$attachments, mon$memory_usage, mon$io_stats, mon$record_stats и появившейся в 3.0 таблице mon$table_stats можно закинуть в доку пару примеров ? Они мне зело помогли, когда искал buttleneck'и в oltp-emul тесте:
1. Снимок с детализацией по таблицам:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
select
        t.mon$table_name
        ,r.mon$record_inserts
        ,r.mon$record_updates
        ,r.mon$record_deletes
        ,r.mon$record_backouts
        ,r.mon$record_purges
        ,r.mon$record_expunges
        -----------
        ,r.mon$record_seq_reads
        ,r.mon$record_idx_reads
        ,r.mon$record_rpt_reads
        ,r.mon$backversion_reads
        ,r.mon$fragment_reads
        -----------
        ,r.mon$record_locks
        ,r.mon$record_waits
        ,r.mon$record_conflicts
        ------------
        ,a.mon$stat_id
    from mon$record_stats r
    join mon$table_stats t on r.mon$stat_id = t.mon$record_stat_id
    join mon$attachments a on t.mon$stat_id = a.mon$stat_id
    where
        a.mon$attachment_id = current_connection
    ;



2. Снимок обобщённых данных по текущему коннекту (БЕЗ детализации по таблицам):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
select
        -- mon$io_stats:
         i.mon$page_reads
        ,i.mon$page_writes
        ,i.mon$page_fetches
        ,i.mon$page_marks
        -- mon$record_stats:     
        ,r.mon$record_inserts
        ,r.mon$record_updates
        ,r.mon$record_deletes
        ,r.mon$record_backouts
        ,r.mon$record_purges
        ,r.mon$record_expunges
        ,r.mon$record_seq_reads
        ,r.mon$record_idx_reads
    
        ,r.mon$record_rpt_reads
        ,r.mon$backversion_reads
        ,r.mon$fragment_reads
    
        ,r.mon$record_locks
        ,r.mon$record_waits
        ,r.mon$record_conflicts
        ------------------------
        ,u.mon$memory_used
        ,u.mon$memory_allocated
        ,a.mon$stat_id
        ,a.mon$server_pid
    from mon$attachments a
    left join mon$memory_usage u on a.mon$stat_id=u.mon$stat_id
    left join mon$io_stats i on a.mon$stat_id=i.mon$stat_id     
    left join mon$record_stats r on a.mon$stat_id=r.mon$stat_id     
    where     
      a.mon$attachment_id = current_connection
   ;
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39018249
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194Параметры оператора SET GENERATOR
seq_name Имя последовательности (генератора).
new_val Новое значение последовательности (генератора). 64 битное целое в
диапазоне от -2^63..2^63 + 1Денис, подправь, плз: макс. bigint есть 2^63 - 1 (9,223,372,036,854,775,807)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39018253
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

попправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39018271
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
624Пример E.8. Получение уровня изолированности текущей
транзакций
Код: plaintext
1.
2.
SELECTMON$ISOLATION_MODE
FROMMON$TRANSACTIONS
WHEREMON$TRANSACTION_ID = CURRENT_TRANSACTION
"Вредный" пример, ибо за ним будут лезть и копипастить в код и грузить бедный сервак лишним запросом к mon$ :-)
А между тем, уровень изолированности определять лучше так:
Код: plaintext
rdb$get_context('SYSTEM','ISOLATION_LEVEL')

Лучше записать в доку запрос типа "отобрать инфу по всем аттачам, которые стартовали транзакции с режимом, отличающимся от RO/RC"
Код: sql
1.
2.
3.
4.
select a.* 
from mon$attachments a 
join mon$transactions t using (mon$attachment_id) 
where NOT (t.mon$read_only=1 and t.mon$isolation_mode>=2 );
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39018277
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

можно и такой.

Ты мне вот что скажи

CORE-4881Increase maximum string literal length to 64K (bytes) while setting a lower limit (of characters) for multibyte charsets based on their max char. length (UTF-8 literals will be limited to 16383 characters)
опять трекер в дауне

Это реально только для литералов? Что там с CHAR/VARCHAR переменными и столбцам таблиц?
Снапшоты под винду сейчас не строятся, пока сам проверить не могу.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39018571
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

только для литералов
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019730
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
383Параметры функции SUBSTRING
str Выражение строкового типа.
startpos Позиция, с которой начинается извлечение подстроки
Целочисленное выражение.
length Длина возвращаемой подстроки. Целочисленное выражение. Какое именно целочисленное ? У мну получается, что только до 2^31-1 там всё пучком, а дальше -
Код: plaintext
1.
2.
Statement failed, SQLSTATE = 22003
arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range

Так что, если не будет сбацано , то лучше правду там писать: int, и не более :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019741
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидлучше правду там писать: int
Ты не поверишь, но "int" и есть "целое".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019743
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

а дальше BLOB пока размер больше не может быть
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019758
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а smallint, bigint - чо, дробные ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019759
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениса дальше BLOB пока размер больше не может бытьМожет. Тест сделай, как я в тикете написал.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019775
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоида smallint, bigint - чо, дробные ?
Они так, погулять вышли.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019785
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

тут есть кое-что про блобы >2G

http://firebirder.ru/firebird_and_large_blob#comments

Судя по комментам это надолго. По крайней мере не в FB3
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019791
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но читать и писать такие блобы ничто не мешает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019813
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Согласен. Но вот обрабатывать их строковыми функциями, особенно SUBSTRING ... Даже если это сделают, то только спровоцирует некоторых, которые потом будут жаловаться на дикие тормоза, когда FB уйдёт в своп.

Хотя для CHAR_LENGTH, BIT_LENGTH и OCTET_LENGTH выходной результат теперь BIGINT, но они по крайней мере не создают новый BLOB
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019827
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денистолько спровоцирует некоторых, которые потом будут жаловаться на дикие тормоза, когда FB уйдёт в свопЭто будут _ИХ_ проблемы, а не ФБ. Если в СУБД явно не запрещено создавать такие блобы, то почему должны быть запрещены вспомогательные операции с ними ? Давайте тогда вообще запретим конкатенацию blob-переменных, а то ведь она тоже "временные пухлости" в базе создаёт. Или вообще запросы с кросс-джойнами отменим, а то ФБ тормозить начнёт :)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39019948
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновил документацию
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39020340
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисОбновил документациюА ты будешь что-нить менять в доке по вот этим вопросам (про оконные ф-ции и юзание внутри их агрегатов, про rank() etc):
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17923351
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17928739
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17923477
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17923528

- ?

И еще.32Строковые литералы
Строковые литералы могут содержать произвольные символы . Весь литерал
заключается в апострофы. Апостроф внутри символьного литерала должен
повторяться два раза, чтобы отличить его от признака завершения литерала.
Максимальная длина строкового литерала составляет 64 КБайт .1) Бравур на тему "произвольные символы" слегка настораживает. Ты ведь при чарсете коннекта = win1251 не воткнёшь символ евро в литерал ? Т.е. я к тому, что надо про чарсет коннекта упомянуть. Кроме того, создать литералы такой длины в мультибайтовой кодировке не удастся. Например, unicode-строка, в которой все символы требуют для кодирования три байта, может создана только до 16383 символов, и это будет 49149 октета (а не "64 Кбайт").
2) Точное значение максимального числа октетов, которые можно затолкать в строковый литерал, равно 65535, т.к. это 2^16-1. Лучше записать именно это число, а не "64 КБайт".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39020364
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидА ты будешь что-нить менять в доке по вот этим вопросам (про оконные ф-ции и юзание внутри их агрегатов, про rank() etc):
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17923351
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17928739
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17923477
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1155625&msg=17923528


да. Но про агрегаты внутри окна я ещё не решил куда воткнуть, точно не в описание агрегатных функций. Пока там есть одно изменение. см. секцию "Оконные (аналитические) функции", где расписаны параметры и написано что использовать агрегаты можно. Это бы снабдить примерчиком конечно. Но я думаю один пример мало чем поможет, там очень много ограничений на этот счёт, когда этот агрегат не сам по себе, а с предложением GROUP BY, что гораздо полезнее. Вот здесь надо бы уже пару абзацов написать, когда это позволяется, а когда нет, и про то что агрегатная функция будет выполнена раньше построения окна.

ТаблоидИ еще.32Строковые литералы
Строковые литералы могут содержать произвольные символы . Весь литерал
заключается в апострофы. Апостроф внутри символьного литерала должен
повторяться два раза, чтобы отличить его от признака завершения литерала.
Максимальная длина строкового литерала составляет 64 КБайт .1) Бравур на тему "произвольные символы" слегка настораживает. Ты ведь при чарсете коннекта = win1251 не воткнёшь символ евро в литерал ? Т.е. я к тому, что надо про чарсет коннекта упомянуть. Кроме того, создать литералы такой длины в мультибайтовой кодировке не удастся. Например, unicode-строка, в которой все символы требуют для кодирования три байта, может создана только до 16383 символов, и это будет 49149 октета (а не "64 Кбайт").
2) Точное значение максимального числа октетов, которые можно затолкать в строковый литерал, равно 65535, т.к. это 2^16-1. Лучше записать именно это число, а не "64 КБайт".

По поводу произвольных символов. Там довольно много вариантов. Если этот литерал посылается с клиента, то да символы ограничены чарсетом коннекта. А вот внутри ХП ты можешь разные кодировки применять. Да и вообще указывать кодировку по месту. Так что лучше здесь оставить как есть.

По поводу 64K, наверное проще действительно написать 65535 байт. Про количество символов лучше не писать. Это и так разжёвывается чуть выше, где говорится о кодировках.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39020396
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЕсли этот литерал посылается с клиента, то да символы ограничены чарсетом коннекта. А вот внутри ХП ты можешь разные кодировки применять. Да и вообще указывать кодировку по месту.
внутри ХП литерал может использовать только символы чарсета, в каком эта ХП создавалась. Либо да, указать "по месту".

я бы написал: "Строковые литералы могут содержать произвольные символы, допустимые для применяемой/используемой кодировки". А уж каким образом применяемой/используемой - это оставить за кадром.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39020414
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

да так будет лучше всего
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39021160
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновил документацию.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39024677
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидpg 310BEGIN ... END
. . .
Блоки могут быть вложенными, глубина вложения не ограничена.я бы не был столь категоричен :-)


Адриано решил ограничить вложенность 512 уровнями. Добавлено в документацию.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39038779
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мелочь:pg 350 Параметры оператора POST_EVENT SHADOW
event_name Имя события, ограничено 64 символами.
Описание:
Оператор POST_EVENT сообщает о событии менеджеру событий, который сохраняет
его в таблице событий.Очепятка какая-то, видимо из-за копипаста. 'SHADOW' тут как-то странновато выглядит... ;-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39040074
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

поправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39042841
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлены изменения из последнего снапшота, касающиеся DDL триггеров
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043676
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1425. Триггеры на события ALTER и DROP обычно не запускаются. Если объект не
существует. Исключения описаны в пункте 6.Напомнило что-то: "я тебя потом... поцелую... если захочешь..." ( к/ф ) - запятую бы надо перед "если"... :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043682
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидзапятую бы надо перед "если"...
Получится ещё хуже: "иногда они запускаются даже если объект не существует". А это уже
прямая дорога в трекер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043688
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1428. Для упакованных процедур и функций не запускаются индивидуальные триггеры
{CREATE | ALTER | DROP} {PROCEDURE | FUNCTION}.- может, лучше так: "для процедур и функций в составе пакетов ", т.е. как в доке:doc\sql.extensions\README.ddl_triggers.txt 8) Packaged procedures and triggers do not fire individual {CREATE | ALTER | DROP} {PROCEDURE | FUNCTION} triggers.
- ?
А то что-то про архиваторы и степень компрессии мысли идут... :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043689
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

да чёто фигня какая-то. Должно быть "если объект не существует, то триггеры на события ALTER и DROP не запускаются. ..."
поправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043701
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

я ещё изменения вносил по поводу размера страницы по умолчанию в CREATE DATABASE. Теперь она 8192. Вроде больше она нигде всплыть не должна.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043721
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисДолжно быть "если объект не существует, то триггеры на события ALTER и
DROP не запускаются. ..."
Кэп, а ты уже написал, что для DELETE и UPDATE, которые не изменили ни одной строчки,
триггера тоже не запускаются?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043751
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

это Адриано написал вообще-то. Предложение имеет смысл для операторов CREATE OR ALTER и RECREATE.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043755
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

на самом деле со следующим пунктом звучит вполне нормально


5. Если объект метаданных не существует, то обычно триггеры на события ALTER и DROP не запускаются. Исключения описаны в пункте 6.

6. Исключением из правила 5 являются BEFORE ALTER/DROP USER триггеры, которые будут вызваны, даже если имя пользователя не существует. Это вызвано тем, что эти команды выполняются для базы данных безопасности, для которой не делается проверка существования пользователей перед их выполнением. Данное поведение, вероятно, будет отличаться для встроенных пользователей, поэтому не пишите код, который зависит от этого.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39043757
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

поправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39044330
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновлена документация по 2.5 и 3.0. Изменения коснулись главы PSQL. Прежде всего структуры и общего описания языка.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39048148
Опечатки в Руководстве 3.0 страницах 45-46

Таблица 3.7. Описание формата даты и времени

1.
Год из 4ех цифр - ужасно не по-русски. Места хватает, чтобы написать
"Год из черырёх цифр"

2.
Год из 2ух цифр (00-99). - исправляем на
"Последние две цифры года (00-99)"

3.
лидирующие и завещающие пробелы игнорируются
"завещающие" на завершающие


Эти же опечатки присутствуют и в Руководстве 2.5, на странице 39
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39048175
сам влепил опечатку четырёх
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39051306
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновлено
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39073564
Фотография MNF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица 2.8
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39073565
Фотография MNF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MNFТаблица 2.8
4-я колонка, диалект неверно указан.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39073724
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MNF,

исправил. Кроме того, перенесены дополнения и улучшения из документации по 2.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39081034
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В документацию внесены изменения связанные с внедрением 64 битных номеров транзакций. См. CORE-4965
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39100100
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправил несколько мелких ошибок
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39110394
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправил несколько мелких ошибок, улучшил оформление и добавил про права CREATE/ALTER/DROP DATABASE
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39115042
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c 220При создании сортировки можно указать учитываются ли конечные пробелы при сравнении.
Если указана опция NO PAD, то конечные пробелы при сравнении учитываются. Если указана
опция PAD SPACE, то конечные пробелы при сравнении не учитываются
.
Тут надо подправить: при проверке на равенство или ">" / "<" / between - да, действительно не учитываются.
А вот при использовании like, containing & starting with - еще как учтутся.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create collation nums_coll for utf8 from unicode pad space case insensitive 'NUMERIC-SORT=1';
commit;

set list on;
select
     '|'||s1||'|' as s1
    ,'|'||s2||'|' as s2
    ,iif(s1 = s2, 1, 0) as "s1=s2"
    ,iif( s1 containing s2, 1, 0) as "s1 containing s2"
    ,iif( s1 starting with s2, 1, 0) as "s1 starting with s2"
    ,iif( s1 like s2, 1, 0) as "s1 like s2"
    ,iif( s2 like s1, 1, 0) as "s2 like s1"
from (
    select
         _utf8 'qWE ' collate nums_coll as s1
        ,_utf8 'qwe    ' collate nums_coll as s2
    from rdb$database
);

Output:
Код: plaintext
1.
2.
3.
4.
5.
6.
S1                              |qWE |
S2                              |qwe    |
s1=s2                           1
s1 containing s2                0
s1 starting with s2             0
s1 like s2                      0
s2 like s1                      0


ЗЫ. А также в описание like (pg 66) и containing (pg 69) можно тоже добавить про эту их фичу (учёт trailing-пробелов, незав. от чарсета и коллации).
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39116773
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

like, starting with и containing это не сравнение строк. Сюда же можно и similar to включить.

ТаблоидЗЫ. А также в описание like (pg 66) и containing (pg 69) можно тоже добавить про эту их фичу (учёт trailing-пробелов, незав. от чарсета и коллации).

это можно
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39117691
Энди Таккер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Руководство по языку SQL СУБД Firebird 3.0", стр. 531.
В следующих вер В иях поддержка SQLCODE может полностью прекратиться.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39121218
Энди Таккер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Руководство по языку SQL СУБД Firebird 3.0",
стр. 146
В таблице 4.22 содержимое первой колонки выходит за её границы.
стр. 148
При создании триггера каждое событие (INSERT, UPDATE или DELETE) не долж ЕН упоминаться более одного раза.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39121382
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Энди Таккер,

поправил.

Таблоид,

в LIKE и CONTAINING добавил про учёт конечных пробелов.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39121475
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg 284 select ... from ...into :var
pg 355 for select ... from ...into :var

Не вижу там предупреждения, что если :var был до этого установлен чему-то not-null, а выборка не вернула ни одной строки, то этот :var останется равным прежнему значению, т.е. не обnull'ится.
Или плохо ищу ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39122211
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c 220При создании сортировки можно указать учитываются ли конечные пробелы при сравнении.
Если указана опция NO PAD, то конечные пробелы при сравнении учитываются. Если указана
опция PAD SPACE, то конечные пробелы при сравнении не учитываются
.

Симонов Денисlike, starting with и containing это не сравнение строк. Сюда же можно и similar to включить

Тогда желательно там же это добавить как сноску. Лучше лишний раз повторить, чем потом "а вот 100 страниц назад..."
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39132731
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, об этом уже писали, но на всякий случай:

На странице 29
Числа типа SMALLINT находятся в диапазоне 2^-16 .. 2^16 - 1, или -32 768 .. 32 767


а должно быть
Числа типа SMALLINT находятся в диапазоне -2^15 .. 2^15 - 1

Аналогично для Integer и BigInt - страницы 29-30
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39132740
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Граур Станислав,

мне почему-то казалось что я это уже исправлял. Оказалось нет. Исправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39132746
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправил для 2.5 и 3.0
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39138444
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стр 71Создание регулярных выраженийВ регулярных выражениях большинство символов представляет сами себя. Единственное
исключение — специальные символы (special character):
[ ] ( ) | ^ - + * % _ ? {
и управляющие символы, если они заданы.Пропущена закрывающая фигурная скобка. Она, как оказалось, тоже требует '\':
2.5
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
C:\MIX\firebird\OLTPTEST>isql /3255:"C:\MIX\firebird\OLTPTEST\OLTP25{smaLL}.FDB"
Database: /3255:C:\MIX\firebird\OLTPTEST\OLTP25{smaLL}.FDB, User: SYSDBA
SQL> set list on;
SQL> select mon$database_name from mon$database;

MON$DATABASE_NAME               C:\MIX\FIREBIRD\OLTPTEST\OLTP25{SMALL}.FDB


SQL> set list on; select 1 from mon$database where mon$database_name similar to '%[\\/](OLTP25\{SMALL \} ).FDB' escape '\';

CONSTANT                        1


SQL> set list on; select 1 from mon$database where mon$database_name similar to '%[\\/](OLTP25\{SMALL } ).FDB' escape '\';

Statement failed, SQLSTATE = 42000
Invalid SIMILAR TO pattern
3.0
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
C:\MIX\firebird\OLTPTEST>isql /3333:"C:\MIX\firebird\OLTPTEST\OLTP30{smaLL}.FDB"
Database: /3333:C:\MIX\firebird\OLTPTEST\OLTP30{smaLL}.FDB, User: SYSDBA
SQL> set list on;
SQL> select mon$database_name from mon$database;

MON$DATABASE_NAME

===============================================================================
C:\MIX\FIREBIRD\OLTPTEST\OLTP30{SMALL}.FDB


SQL> set list on; select 1 from mon$database where mon$database_name similar to '%[\\/](OLTP30\{SMALL \} ).FDB' escape '\';

CONSTANT                        1


SQL> set list on; select 1 from mon$database where mon$database_name similar to '%[\\/](OLTP30\{SMALL } ).FDB' escape '\';

Statement failed, SQLSTATE = 42000
Invalid SIMILAR TO pattern
Проверено на:
WI-V2.5.5.26952
WI-V3.0.0.32239
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39138490
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

поправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39138498
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис,

Точно поправил ? я вот скачал только что отсюда (2.5 и 3.0 соотв-но):

https://www.assembla.com/spaces/firebird-russian-documentation/documents/a79eFIzQqr5io3acwqjQXA/download/a79eFIzQqr5io3acwqjQXA

https://www.assembla.com/spaces/firebird-russian-documentation/documents/dbyddG3Vmr5lSgacwqjQXA/download/dbyddG3Vmr5lSgacwqjQXA

- и как-то не бросилось в глаза... Или ссылки опять на старьё указывают ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39138509
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

там на титульной странице дата правки стоит. Да и на странице 71 сейчас обе фигурные скобки
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39139394
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стр. 297 Синтаксис UPDATE OR INSERT: пропущено слово INTO
Код: sql
1.
UPDATE OR INSERT target [(<column_list>)] 
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39139408
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r,

спасибо. Исправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39139644
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r,

исправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39184322
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
улучшил навигацию по таблицам мониторинга и системным таблицам
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186167
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страница 319.

Типы хранимых процедурСуществуют два вида хранимых процедур — выполняемые хранимые процедуры (executable
stored procedures) и селективные процедуры (selectable stored procedures).


Очень хорошо, что процедуры стали называться "селективными" (раньше назывались "процедуры выбора").

Однако, в следующем абзаце они снова становятся "процедурами выбора".


Страница 319, 3й абзац снизу
Хранимые процедуры выбора
Хранимые процедуры выбора обычно осуществляют выборку данных из базы данных,
возвращает при этом произвольное количество строк. /* Кроме того, предложение не согласовано:"хранимые - возвращает" .*/
...
Страница 319, последний абзац Процедуры выбора могут иметь входные параметры и выходное множество, заданное в
предложении RETURNS заголовка процедуры.

Страница 320, первый абзацОбращение к хранимой процедуре выбора осуществляется при помощи оператора SELECT
(см. Выборка из селективной хранимой процедуры). См. пример создания хранимой процедуры
выбора
в конце раздела CREATE PROCEDURE главы «Операторы DDL».



Страница 320, 2й абзацСинтаксис создания выполняемых хранимых процедур и процедур выбора ничем не


Страница 320, 4й абзацЗаголовок хранимой процедуры обязательно содержит имя процедуры, которое должно
быть уникальным среди имён хранимых процедур, таблиц и представлений. В нем так
же может быть описано некоторое количество входных и выходных параметров. Входные
параметры перечисляются после имени процедуры внутри пары скобок. Выходные параметры,
которые являются обязательными для процедур выбора , перечисляются внутри пары скобок
в предложении RETURNS.


Страница 351, 2й абзац снизуПример 6.17. Использование оператора EXIT в процедуре выбора .

Страница 352, 2й абзац снизуПример 6.18. Использование оператора SUSPEND в процедуре выбора .

Страница 359Оператор FOR SELECT выбирает очередную строку из таблицы (представления, хранимой
процедуры выбора )

Страница 517, 2й абзац снизуДля хранимых процедур привилегия EXECUTE позволяет не только выполнять хранимые
процедуры, но и делать выборку данных из процедур выбора (с помощью оператора SELECT).

Страница 660, таблица, 2я строка снизуавтор1 — хранимая процедура выбора
(содержит в своём составе
оператор SUSPEND);
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186245
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

поправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186609
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стр 319, 3й абзац снизу.Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращает при этом произвольное количество строк.


Грамматическая ошибка. Правильные варианты:

1. Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращают при этом произвольное количество строк.
2. Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращ ая при этом произвольное количество строк.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186610
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То же самое - в руководстве FB 2.5, на стр 256.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186624
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис, а не добавить ли в доку некоторые нюансы про переменную row_count ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186628
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

можно и добавить.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39187522
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

поправил

Таблоид,

добавил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39189538
Minkus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinSspi надо Win_Sspi
стр.117 Compatibility Issues.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39189607
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Minkus,

вот ведь странный человек. Открываем 117 страницу Руководство по языку SQL СУБД Firebird 3.0 и видим, что никакого "Compatibility Issues." там нет.

Баги в Release Notes надо сообщать сюда
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39190216
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По какому принципу выстроены подразделы в DDL/DML? Лично я бы ожидал их отсортированными
по алфавиту. Сейчас минуту тупо пялился на список, пытаясь найти TABLE сразу перед TRIGGER...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39190255
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

особого порядка нет. А так в порядке того как обычно создаются объекты БД. Т.е до базы данных не создашь ничего, домены до таблиц, вьюхи на основе таблиц, потом триггеры... Хотя это не везде соблюдается. В принципе PDF содержит закладки (оглавление слева) по которому можно быстро переходить. В алфавитном индексе можно вообще все оператору по алфавиту смотреть. Но если есть идеи что улучшить предлагайте.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39190262
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВ принципе PDF содержит закладки (оглавление слева)
Вот на него-то я и пялился. Обычно там всё-таки слова по алфавиту, для быстрого поиска.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194015
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стр 297, UPDATE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Синтаксис: 

UPDATE target[[AS] alias] 
SET col= newval[, col= newval...] 
[WHERE {search-conditions| CURRENT OF cursorname}] 
 [PLAN plan_items]  
[ORDER BY sort_items] 
[ROWS m[TO n]] 
[RETURNING <returning_list>[INTO <variables>]]
. . .
Кляуза PLAN - указана, но пример с ней (именно для UPDATE) - стыдливо пропущен, объяснения даны для WHERE и затем перепрыгивают на ORDER BY
А я тут немного попытал кое-кого , и выяснилось вдруг, что можно указывать планы не только для примитивных update/delete случаев, но и в "сложносочетанных травмах", типа такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
    recreate table company(id int not null primary key, contact_id int, company_name varchar(60));
    recreate table contact(id int not null  primary key using index contact_id, contact_name varchar(60));
    alter table company add constraint company_fk foreign key(contact_id) references contact(id);
    commit;

    insert into contact values(1, '+784956253581, Vovan');
    insert into contact values(2, '+375172223217, Shurik');
    insert into contact values(3, '+380442057337, Vitalik');

    insert into company values(100, 1, 'Pepsico, Inc.');
    insert into company values(101, 1, '');
    insert into company values(102, 2, 'Balaha, Inc.');
    insert into company values(103, 2, '');
    insert into company values(104, 2, null);
    insert into company values(105, 3, null);
    insert into company values(106, 3, 'Firebird Foundation');
    commit;

    set list on;

    select c.*
    from company c order by c.id;

    set plan on;
    set count on;

    update company c set c.company_name = 
    ( select k.contact_name 
      from contact k 
      where k.id = c.contact_id
       PLAN (K INDEX (CONTACT_ID)) 
    )
    where c.company_name is null or c.company_name = ''
     PLAN (C NATURAL) 
    ;

    set plan off;
    set count off;

    select c.*
    from company c order by c.id;
2 Денис : добавь в копилку, плз (2.5 & 3.0). Авось пригодится.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194078
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

про планы в подзапросах вообще ничего не сказано. На выходных постараюсь добавить. И про update/delete тоже

Тем не менее такие запросы как этот

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT *
FROM COLOR
WHERE EXISTS(
             SELECT *
             FROM HORSE
             WHERE HORSE.CODE_COLOR = COLOR.CODE_COLOR
             PLAN (HORSE INDEX (FK_HORSE_COLOR)))
PLAN(COLOR NATURAL) 



через некоторое время могут перестать работать с таким планом, если in/exists начнут выполняться как полу-джойн.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194086
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисмогут перестать работать с таким планомЭто уже будут проблемы индейцев, которые всунули PLAN-кляузу. Главное - зафиксировать в доке пример её применения, а про последствия можно и страшилку-предупреждалку красным цветом показать.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194093
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

это мои домыслы. Как появится ДЕ скажет точно.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194139
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
явные планы - зло :-) Уже сейчас они не работают на запросах сложнее линейных джойнов. Насчет semi-joins - можно просто их не применять, если указан явный план. Но если в целом говорить, то в будущем может что угодно отломиться на этот счет.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194175
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitr!
You wrote on 17 марта 2016 г. 11:31:01:

Dimitr> Но если в целом говорить, то в будущем может что угодно отломиться на этот счет.
знаем. помним. 15 лет уже как ;)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194345
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrявные планы - зло :-) Уже сейчас они не работают на запросах сложнее линейных джойнов.
вот поэтому ждёмс нормальных хинтов. То же зло, но иногда необходимое. Кстати в планах на FB4 я их не заметил.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194418
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениспоэтому ждёмс нормальных хинтов. То же зло, но иногда необходимое.Когда в будущем нормальные хинты появятся -тогда и будущую доку (для соотв. версии ФБ) можно будет подправить. Выкинуть PLAN, добавить всякие там insert /*+ append */ into ...
А пока лучше добить работающими фрагментами кода ту, что имеем. С указанием страшилок, что "планы - это ууу! не хорошо!" и т.п.
ИМХО.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194425
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид, +100500!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194451
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

будет, не волнуйся.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39195467
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg. 507
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ALTER USER
Назначение:  Изменение учётной записи пользователя Firebird.
Доступно в:  DSQL.
Синтаксис: 
ALTER {USER username| CURRENT USER}
{ 
[SET]
 [PASSWORD 'password'] 
[FIRSTNAME 'firstname']
[MIDDLENAME 'middlename']
[LASTNAME 'lastname']
[ACTIVE | INACTIVE]
[TAGS (<tag>| DROP tagname[, <tag>| DROP tagname...] )]
}
[USING PLUGIN 'pluginname'] 
[{GRANT | REVOKE} ADMIN ROLE];
Из синтаксиса вроде бы понятно, что кляузу password "лучше" указывать первой, но явно об этом не говорится (или же нельзя это выразить данной нотацией - не знаю :)).
Так что лучше об этом заявить во всеуслышание:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> create user foo password '123';
SQL> alter user foo firstname 'john'  password 'bar'  lastname 'smith';
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 33
-password
SQL> alter user foo firstname 'john' lastname 'smith'  password 'bar' ;
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 50
-password
SQL> alter user foo  password 'bar'  firstname 'john' lastname 'smith';
SQL>  -- только так прокатит --
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39195477
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Таблоид!
You wrote on 18 марта 2016 г. 15:11:49:

Таблоид> только так прокатитдык это глюк

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39195482
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийдык это глюк
+1
В трекер, не в доку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39195578
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39206858
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, куда лучше добавить: в "Соединения именованными столбами" (стр. 254) или же в "Неоднозначные имена полей в соединениях" (стр. 258), но суть в следующем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> recreate table t1(x int unique);
SQL> recreate table t2(x int unique);
SQL> set plan on;
SQL> select 1 from t1 a join t2 b on a.x=b.x where x = 0;
Statement failed, SQLSTATE = 42702
Dynamic SQL Error
-SQL error code = -204
-Ambiguous field name between table T2 and table T1
-X
 /* да, так и должно быть*/ 

SQL> select 1 from t1 a join t2 b using(x) where x = 0;
PLAN JOIN (A NATURAL, B INDEX (RDB$2))
 /* :::NB::: здесь будет NATURAL по одной из таблиц, хотя наверняка ожидалось  PLAN JOIN (A INDEX (...), B INDEX (...))*/ 

SQL> select 1 from t1 a join t2 b using(x) where  a. x = 0; -- или ' b. x'
PLAN JOIN (A INDEX (RDB$1), B INDEX (RDB$2))
/* ожидался, вероятно,  именно этот план - см тж след. запрос */

SQL> select 1 from t1 a join t2 b using(x) where b.x = 0;
PLAN JOIN (A INDEX (RDB$1), B INDEX (RDB$2))

ИТОГО: граждане, будьте бдительны. Если юзаете using-способ соединения, то в where-секции столбы надо всё равно снабжать префиксами, если не хотите вдруг натуралов :-)

Объяснение смотрим тут: http://tracker.firebirdsql.org/browse/CORE-5040 (dimitr, 03/Apr/16 10:49 AM).

2 Денис : добавь, плз, в виде примера-предупреждалки в доку как по 3.0 так и по 2.5.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39206861
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

ИХМО неоднозначные поля в WHERE не должны допускаться.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39207505
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

так в случае "using(x)" они перестали быть неоднозначными

разумеется если не ввести в запрос третью таблицу ,в колторой ТОЖЕ есть столбец x

кстати, о третьей таблице ( с идентичным первым двум определением )...

Код: sql
1.
select 1 from t1 a join t2 b using(x) join t3 c using(x) 

- интересно, это отработает? с кем будут сервер связывать c.x - с a.x или с b.x ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39207545
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

да я всё равно добавлю примечание. Впрочем там работы несколько побольше, ибо кое-какие исправления надо внести из английской версии, обновление которой недавно вышло. Просто высказал своё мнение
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39211816
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boolean, pg 41Предикаты могут использовать оператор IS [NOT] для проверки соответствия. Например, field1
IS FALSE или field1 IS NOT TRUE
.
Примечание
• Представлен в API типом FB_BOOLEAN и константами FB_TRUE и FB_FALSE;
• Операторы эквивалентности ( =, !=, <> и др.) допустимы во всех сравнениях;
• Значение TRUE больше чем FALSE;
. . .Оператор 'IS', в отличие от "=", весьма привередлив: ему надо, чтобы сразу после него был только литерал TRUE | FALSE | UNKNOWN (записанный именно так, без апострофов), и ничего более.
Например, нельзя делать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select false is  ' true '  from rdb$database;
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 17
-'true'

select false is  ( true )  from rdb$database;
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 17
-(

А вот с заменой 'IS' на '=' - всё прокатит ОК.
Надо бы добавить сиё в доку.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39211877
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

я похоже забыл там ссылку добавить на описание предиката IS (Общие элементы языка/Предикаты/Другие предикаты сравнения/IS p. 80)

Добавлю ссылку и эту оговорку в этом предикате сделаю.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39211989
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

добавил примечание про IS и про USING. Кроме того перенёс некоторые улучшения из английской версии LR, самое главное из которых касается особенностей задания чисел в 16ричном виде
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213675
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил приоритет операторов так чтобы описание соответствовало текущему положению вещей.
Задуматься об этом заставил тикет CORE-5193

Итак какой ответ должен быть

Код: sql
1.
select not false = true is not unknown from rdb$database;



Согласно текущему приоритету по типам операторов:
1. Конкатенация
2. Арифметические
3. Сравнения
4. Логические

IS - это оператор сравнения, поэтому

Код: sql
1.
not false = true is not unknown


эквивалентно
Код: sql
1.
not ((false = true) is not unknown) => not (false is not unknown) => not true => false



Я предположил, что оператор IS должен обладать большим приоритетом, чем =, а потому
Код: sql
1.
not (false = (true is not unknown)) => not (false = true) => not false => true


Что Адриано моментально сделал. А вот теперь я сомневаюсь.

А что насчёт этого говорит стандарт?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213746
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисIS - это оператор сравнения
За стандарт не скажу, но http://www.tutorialspoint.com/sql/sql-operators.htm придерживается другого мнения.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213799
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov http://www.tutorialspoint.com/sql/sql-operators.htm придерживается другого мнения.Мну кажется, что у них нет мнения про 'IS', от слова "вообще" (см аттачик).
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213810
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисА что насчёт этого говорит стандарт?А ничего не говорит: про это приоритеты boolean операций он как-то стыдливо помалкивает ;-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213818
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

моё ИХМО. IS это один и тот же оператор что для BOOLEAN, что для проверки NULL.

В том же тикете я привёл как это сделано в PG. Сначала у них было так
http://www.postgresql.org/docs/9.0/static/sql-syntax-lexical.html#SQL-PRECEDENCE-TABLE
потом с какого-то перепугу они изменили вот так
http://www.postgresql.org/docs/9.5/static/sql-syntax-lexical.html#SQL-PRECEDENCE-TABLE

Причём Адриано тоже соосторожничал. Фикс применил только для FB4, но не тройки.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213828
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

тут кстати важно не куда, они отнесли оператор IS (я с ними не согласен, ибо логические операторы это те что делаются над логическими значениями, а не те что дают логический результат), а конкретно приоритет одного оператора над другим. Что у них не описано.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213842
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЧто Адриано моментально сделал

он в трекере вроде ничего не делал, просто со всеми согласился, в основном с ПостГрессом :-)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213853
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

да ну. Fix Versions 4.0 Alpha видишь? Можешь ещё в GIT по четвёрке изменения посмотреть
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39213861
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

ну я на вкладку commits заглянул - там пусто было

может быть вам стоит как-нибудь настроить https://marketplace.atlassian.com/plugins/com.xiplink.jira.git.jira_git_plugin/server/overview
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39214038
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochможет быть вам стоит как-нибудь настроить
портируй его на нашу версию JIRA сначала, умник...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39219863
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стр. 20. "Вопросы, не связанные с SQL в данном документе не рассматриваются." Должно быть "Вопросы, не связанные с SQL, в данном документе не рассматриваются."

Стр. 20.
"Симонов Денис;
• Винкенуг Пол;
• Дмитрий Филиппов;
• Дмитрий Еманов;"
Почему у Винкенуга и Симонова сначала фамилия, потом имя, а у всех остальных сначала имя, потом фамилия?

Стр. 22 "Оба языковых подмножества, как DSQL, так и PSQL полностью...". Надо "Оба языковых подмножества, как DSQL, так и PSQL, полностью...".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39231953
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
документация обновлена
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39293674
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LR ROUND ...
Тип возвращаемого результата: INTEGER, масштабируемый BIGINT, DOUBLE PRECISION
Для ROUND(1.25, 0) тип NUMERIC(18, 2).
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39293705
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

здесь нет противоречий
"масштабируемый BIGINT" это и есть NUMERIC(18, x), хотя возможно можно было бы написать NUMERIC(18, x). Подумаю на выходных
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39293791
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Результат зависит от типа первого аргумента и наличия второго.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
SELECT

ROUND(1), -- INTEGER
ROUND(1,0), -- INTEGER

ROUND(4000000000), -- BIGINT
ROUND(4000000000,0), -- BIGINT

ROUND(CAST(1 AS SMALLINT)), -- SMALLINT
ROUND(CAST(1 AS SMALLINT), 0), -- SMALLINT

ROUND(CAST(1 AS INTEGER)),  -- INTEGER
ROUND(CAST(1 AS INTEGER), 0),  -- INTEGER

ROUND(CAST(1 AS BIGINT)),   -- BIGINT
ROUND(CAST(1 AS BIGINT), 0),   -- BIGINT

ROUND(1.5), -- BIGINT
ROUND(1.5, 0), -- NUMERIC(18,1)

ROUND(CAST(1.5 AS FLOAT)),  -- FLOAT
ROUND(CAST(1.5 AS FLOAT), 0),  -- FLOAT

ROUND(CAST(1.5 AS DOUBLE PRECISION)), -- DOUBLE PRECISION
ROUND(CAST(1.5 AS DOUBLE PRECISION), 0), -- DOUBLE PRECISION

ROUND(CAST(1.5 AS NUMERIC(1,1))),  -- NUMERIC(4,0)
ROUND(CAST(1.5 AS NUMERIC(1,1)), 0),  -- NUMERIC(4,1)

ROUND(CAST(1.5 AS NUMERIC(5,1))),  -- NUMERIC(9,0)
ROUND(CAST(1.5 AS NUMERIC(5,1)), 0),  -- NUMERIC(9,1)

ROUND(CAST(1.5 AS NUMERIC(10,1))), -- NUMERIC(18,0)
ROUND(CAST(1.5 AS NUMERIC(10,1)), 0), -- NUMERIC(18,1)

ROUND(CAST(1.5 AS DECIMAL(1,1))),  -- DECIMAL(9!,0)
ROUND(CAST(1.5 AS DECIMAL(1,1)), 0),  -- DECIMAL(9!,1)

ROUND(CAST(1.5 AS DECIMAL(5,1))),  -- DECIMAL(9,0)
ROUND(CAST(1.5 AS DECIMAL(5,1)), 0),  -- DECIMAL(9,1)

ROUND(CAST(1.5 AS DECIMAL(10,1))),  -- DECIMAL(18,0)
ROUND(CAST(1.5 AS DECIMAL(10,1)), 0)  -- DECIMAL(18,1)

FROM RDB$DATABASE



Из шаблона выпадает вот это:
Код: sql
1.
2.
ROUND(1.5), -- BIGINT
ROUND(1.5, 0), -- NUMERIC(18,1)

И обратите внимание на странность с типом выражения "1.5". Я попробовал кастовать его ко всем типам, но так и не получил BIGINT в качестве типа результата.

Hint: в IBExpert типы данных можно смотреть наведением мышки на заголовок или перейдя в режим формы.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39390008
doos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка.
стр. 27:

Блочные комментарии начина е тся с символов /* и заканчивается символами */. Блочные
комментарии могут содержать текст произвольной длины и занимать несколько строк.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39390041
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doos,

спасибо, исправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39392052
doos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Здравствуйте!
стр. 69:

Подзапросы, используемые в предикатах поиска, кроме предикатов существования и
количественных предикатов, должны возвращать скалярное результат, то есть не более...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39393960
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39405729
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка.
NEW.CHANGE_DATE = CAST('now' AS TIMESTANP);
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39439847
зеленый админ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что для новичка фраза 'Процедурный SQL является расширением Динамического SQL' является ошибкой. Как минимум
PSQL не поддерживает DDL, что нужно обворачивать в EXECUTE STATEMENT...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39439915
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зеленый админ,

"динамический SQL" - это DSQL, подмножество DML.
DDL это Data Definition Language, в противоположность DML - Data Manipulation Language.
Причем, DDL частично поддерживается в PSQL.

С терминологией "Динамического SQL" на самом деле не очень хорошо. Базово это считается "не статический SQL", т.е. выполняемый через execute immediate, prepare, и в том числе execute statement.
Но в Firebird вообще весь sql выполняется через prepare и компиляцию в псевдокод BLR, поэтому, получается что он весь динамический.

IBM, например, статическим sql называет те операторы, которые обрабатываются препроцессором Embedded SQL (через EXEC SQL).

Если же доболтаться до того, что статический SQL - это тот, который не компилируется при передаче на сервер, то тогда view, триггеры и процедуры в Firebird - это и есть статический SQL. А все остальное - динамический.
В общем, забей.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39440114
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима, будь проще: всё, что не ESQL - DSQL. То есть разница чисто между компиляцией при
компиляции приложения и интерпретацией при его выполнении.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39440154
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovвсё, что не ESQL - DSQL
да.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39442993
зеленый админ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще маленькая очепятка:

в доке указано для FK, что

Код: plsql
1.
2.
3.
4.
REFERENCES other_table [(<col_list>)] [<using_index>]
[ON DELETE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
[ON UPDATE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
| CHECK (<check_condition>)



однако на практике [<using_index>] предикат должен быть обязательно после [ON DELETE/UPDATE ...]
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39442995
зеленый админ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvзеленый админ,

"динамический SQL" - это DSQL, подмножество DML.
...
В общем, забей.

Там не совсем важно, что автора понимают под DSQL и PSQL. Куда гораздо важнее, что автора структуировали документ так, что каждая команда явна описана как доступная из той или иной категории. Тогда предлагаю для всех DDL, где написано, что команда доступна в DSQL, применить сноску, что, мол, в PSQL она доступна через execute statement...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39443049
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зеленый админ,

я это проверю и внесу правки если действительно так
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39447323
doos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Руководство по языку
SQL СУБД Firebird 4.0
30 марта 2017 — v.0000-1 для Firebird 4.0 Alpha 1

Случайно не 30 апреля?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39447327
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doos,

ты прав. Там от 30 апреля. Я как раз описание DECFLOAT добавлял. Но там пока куча ошибок может быть. Всё таки это даже не альфа версия.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39452681
зеленый админ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибки в документации по встроенным фунуциям.
1)
FB_DOCНаписание 'NOW' зависит от регистра

хотя по аналогии со всеми не зависит

2) 'TOMORROW', 'YERSTERDAY' - напишите аналогичное
FB_DOCНаписание 'xxx' не зависит от регистра, при
преобразовании в дату функция игнорирует все пробелы слева и справа от слова.

по аналогии с 'TODAY' и 'NOW'
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39452684
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зеленый админ,

это не я писал. Проверю что там с регистром и исправлю как должно быть
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39455584
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

авторНад документом работали:
Денис Симонов, ...
Редактор:
Симонов Денис
"Имя Фимилия" и "Фамилия Имя"
Наверное лучше привести к одному виду?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39557269
мастер_ёда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стр.291 два идентичных примера

-----------------

Примеры:
Следующий запрос возвращает все строки кроме первых 10, упорядоченных по столбцу COL1:
SELECT *
FROM T1
ORDER BY COL1
OFFSET 10 ROWS

В этом примере возвращается первые 10 строк, упорядоченных по столбцу COL1:
SELECT *
FROM T1
ORDER BY COL1
OFFSET 10 ROWS

---------------------
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39579580
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторые шероховатости в описании SIMILAR TO /Создание регулярных выражений:

Фраза
В регулярных выражениях большинство символов представляет сами себя. Единственное
исключение — специальные символы (special character): Несколько коряво звучит.
Мне кажется будет лучше так:
В регулярных выражениях большинство символов представляет сами себя, за исключением специальных символов (special character):

При объяснении классов символов не упомянуто, должны ли спецсимволы ескейпится.
Судя по синтаксису должны. Или нет?

Фраза
Если определение класса запускается со знаком вставки (^), то все, что следует за ним,
исключается из класса. Все остальные символы проверяются. вовсе не понятна, если не в курсе о чём речь.
Возможно более понятно будет так:
Если определение класса начинается знаком вставки (^), то класс инвертируется. С ним совпадают любые символы кроме указанных в классе.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39594094
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините за кросспостинг, но раз уж возникают вопросы...В документации фраза есть:

Стр. 295Простой оператор SELECT может быть использован в PSQL, только если он возвращает
единственную строку, то есть, если это запрос типа синглтон (singleton).

Может, исправить на:

Простой оператор SELECT может быть использован в PSQL, только если он возвращает не более одной строки.
В случае, когда запрос не возвращает данных (ноль строк), значение переменных <variable-list> в списке INTO <variable-list> не изменяется.

?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39594102
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

подумаю. Про 0 строк оговорку добавлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39594103
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Исправь заодно ошибку перевода.
В доке ясно написано "A “plain” SELECT statement can only be used in PSQL if it returns at most one row, i.e., if it is a singleton select."
"Не более одной строки".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39594568
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Добавь про текстовые блобы добавь ремарочку что они не конвертируются в/из чарсета клиента при тередаче с сервера.
А то не ясно из общих соображений.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39594796
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685472
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

надо бы стартовый пост заменить, ибо давно уже не бета, да и ссылка на ассембле протухла

Выпущено "Руководство по языку SQL СУБД Firebird 3.0".

Свежие версии документации выложены здесь:
https://www.ibase.ru/files/firebird/Firebird_3_0_Language_Reference_RUS.pdf

Исходные тексты и снапшоты можно скачать здесь:
https://github.com/sim1984/langref30

Кроме того, документация доступна на официальном сайте firebirdsql.org, но обновления могут отставать
https://www.firebirdsql.org/file/documentation/reference_manuals/firebird-language-reference-30-rus.pdf

Замечания и предложения по улучшению приветствуются.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685474
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

кстати HTML версии по 3.0 на ibase.ru почему-то не выложено
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685511
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

как-то не планировал, но раз есть - выложу.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685529
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

там первая страница неполная, сильно отличается от pdf.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685531
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Готово.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685533
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, а где я был тогда в мае... В отпуске что ли. Галлемар бы точно за "первон..ха" получил.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685547
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

так она и в 2.5 сильно отличается.
Я только вчера добавил чтобы на первую страницу список авторов выводился и текущая редакция.
Что ещё надо? Лого спонсоров как в pdf?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39685572
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЧто ещё надо? Лого спонсоров как в pdf?
да, желательно максимальное соответствие пдф-у.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39812583
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В разделе описания RDB$GET_CONTEXT для контекста 'SYSTEM' не хватает упоминания контекстной переменной 'CLIENT_HOST'. Возможно, что в третьей версии ФБ этой контекстной переменной нет, а появилась она только в четвёрке - не проверял.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39812668
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

да нет, в тройке ещё появилась. Чёт я проспал момент когда именно. Добавлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39812685
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
готово
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39825083
Dmitry Kurbsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице B.1 у кодов SQLSTATE обрезаны нули слева.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39825118
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Kurbsky,

поправил, если конечно правильно понял о чём ты
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847197
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВыпущено "Руководство по языку SQL СУБД Firebird 3.0".

Свежие версии документации выложены здесь:
https://www.ibase.ru/files/firebird/Firebird_3_0_Language_Reference_RUS.pdf

Исходные тексты и снапшоты можно скачать здесь:
https://github.com/sim1984/langref30

Кроме того, документация доступна на официальном сайте firebirdsql.org, но обновления могут отставать
https://www.firebirdsql.org/file/documentation/reference_manuals/firebird-language-reference-30-rus.pdf

Замечания и предложения по улучшению приветствуются.

Братцы. По первой ссылке на самом деле лежит руководство к FB 4.0 beta 2. Я полдня (извините за мой французский) мудохался, пытаясь применить фичи fb4 к fb3: https://www.sql.ru/forum/1315726/fb-3-0-kak-pravilno-zadat-generated-always-as-identity
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847201
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

вот что значит в воскресенье обновы выкладывать! Вечером обновлю на github и отпишусь kdv, чтобы он на ibase обновил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847204
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
воскресенье (и шаббат) - дни избавления от компьютеров!
ни один правоверный (и ортодоксальный) эникейшик
в эти дни к кампутеру и пальцем не притронется!

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847212
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

где ж таких взять ? ;)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847221
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

на https://github.com/sim1984/langref30 лежит правильная версия. На ibase будет чуть позже когда Дмитрий обновит
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847226
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновил, всё норм.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847257
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, пора ссылку на руководство по 4й версии разместить? Отдельным топиком.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847258
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

http://www.ibase.ru/files/firebird/Firebird_4_0_Language_Reference_RUS.pdf

или вам тут топик нужен? Там на днях одно крупное изменение скорее всего будет
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847282
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryБлин, а где я был тогда в мае... В отпуске что ли. Галлемар бы точно за "первон..ха" получил.
За что?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847284
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийвоскресенье (и шаббат) - дни избавления от компьютеров!
ни один правоверный (и ортодоксальный) эникейшик
в эти дни к кампутеру и пальцем не притронется!


Я тогда кто, язычник? У меня суббота-воскресенье рабочие дни
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847297
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarУ меня суббота-воскресенье рабочие дниЯ конечно понимаю про часовые пояса, сдвиги там всякие, но чтоб на пару суток?

Симонов Денисили вам тут топик нужен?Сделаете топик, можно и к потолку подвесить
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847333
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
09.08.2019 8:52, Ivan_Pisarevsky пишет:
> Сделаете топик, можно и к потолку подвесить

+500
топик нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39847393
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По просьбам общественности ANN Руководство по языку SQL СУБД Firebird 4.0
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39848078
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Влад, на выходные всем жеребцам - в пампасы!!!

hvladМимопроходящий,

где ж таких взять ? ;)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39857411
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет
Нашел кое-что, чего нет в руководстве:
в главе 9 - "Безопасность" - "Отображение объектов безопасности" не указано, что при наличии локального глобальный маппинг игнорируется.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39857431
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

хм. Ну вообще-то не игнорируется. Локальный заменяет глобальный для выбранного объекта безопасности. На самом деле там несколько сложнее и зависит от кучи параметров.

Давай пример, что ты там отображаться хотел.

З.Ы. ты первый на моей памяти кто полез в маппинг, дальше включения доверительной аутентификации и SYSDBA подобного доступа для администраторов Windows.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39857448
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

хм. Ну вообще-то не игнорируется. Локальный заменяет глобальный для выбранного объекта безопасности. На самом деле там несколько сложнее и зависит от кучи параметров.

"игнорируется" - это слова разработчика, я просто цитирую. Скинул тебе в почту кусок переписки, посмотри.

Симонов ДенисДавай пример, что ты там отображаться хотел.

Хм. Сложно, но попробую.
При использовании двух одинаковых по логике маппингов , например
Код: sql
1.
CREATE MAPPING usr_cluster1 USING PLUGIN CLUSTER FROM USER SYSDBA TO user SYSDBA;


и
Код: sql
1.
CREATE  MAPPING usr_cluster2 USING PLUGIN CLUSTER FROM USER SYSDBA TO user SYSDBA; 



получается ошибка:
Execute statement error at attach :
335545083 : Multiple maps found for SYSDBA

Если будут два таких маппинга глобальными и один локальный - запрос выполнится, если один глобальный и два локальных - получим ошибку. Надеюсь как пример подойдет такое описание.
Симонов ДенисЗ.Ы. ты первый на моей памяти кто полез в маппинг, дальше включения доверительной аутентификации и SYSDBA подобного доступа для администраторов Windows.

Верю. Я в маппинг зарылся конкретно и беспощадно. Нашел ещё одну неточность в документации:
Пример 9.3. Включение доступа определённому пользователю из другой базы данных
к текущей базе данных под другим именем.
Код: sql
1.
CREATE MAPPING FROM_RT USING PLUGIN SRP IN "rt" FROM USER U1 TO USER U2;  


и
Пример 9.4. Включение обще серверного SYSDBA (от основной базы данных
безопасности) для доступа к текущей базе данных.
Предположим, что база данных использует базу данных безопасности не по умолчанию.
Код: sql
1.
CREATE MAPPING DEF_SYSDBA USING PLUGIN SRP IN "security.db" FROM USER SYSDBA TO USER;    


Что упустили:
В обоих примерах "rt" и "security.db" - базы безопасности. Но, т.к. в тройке база может быть самой для себя security database, то правильнее будет "прошли аутенфикацию c sec/db 'rt'". А у тебя указано только в примере 9.4, что "база данных использует базу данных безопасности не по умолчанию", хотя "rt" тоже не дефолтная. Как-то так.
Ещё момент - при указании бд указывается её запись в "DatabaseAccess" вместе с расширением, если оно есть или алиас.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39857509
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarЕсли будут два таких маппинга глобальными и один локальный - запрос выполнится, если один глобальный и два локальных - получим ошибку.

Что тут удивительного? Глобальный и локальный маппинг живут в разных базах данных. Первый в базе данных безопасности уровня сервера security.db, вторая — в самой базе данных.

LRЕсли существуют одноименные глобальные и локальные отображение, то вам следует знать,
что это разные объекты.

вот чего не нашёл у себя в документации так это, то что сочетание источник и объект отображения должны быть уникальны для своего "места проживания".

К маппигам относится то же правила что и к любом настройке. Маппинг уровня БД перекрывает глобальный маппинг. Это действе точно так же как для настроек (настройки в databases.conf для конкретной БД перекрывают глобальные настойки в firebird.conf). Это добавлю.

GallemarВ обоих примерах "rt" и "security.db" - базы безопасности. Но, т.к. в тройке база может быть самой для себя security database, то правильнее будет "прошли аутенфикацию c sec/db 'rt'".

добавлю пояснению к примеру. Хотя в описании параметра в создании маппинга написано, что "database - Имя базы данных, в которой прошла аутентификация."

GallemarЕщё момент - при указании бд указывается её запись в "DatabaseAccess" вместе с расширением, если оно есть или алиас.

этот тут причём? Правила DatabaseAccess общие, по фигу будешь ты БД использовать в маппинге или нет.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39857559
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновил документацию на github
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39865604
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, в разделе CREATE INDEX хорошо бы исправить грамматическую ошибку - слово "низходящий" заменить на "нисходящий".
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39865884
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

исправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950115
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

На firebirdsql.org лежит такой интересный документ: "Firebird 3.0 Developer's Guide", автор Denis Simonov. И в нем английскими буквами написано, что это есть перевод с русского оригинала. Так вот тот оригинал не могу найти ни на firebirdsql.org, ни на ibase.ru.

Не то, чтобы критично, но хорошую литературу предпочитаю читать в оригинале. Нельзя ли выложить и русскую версию?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950146
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

странно что на ibase нет

https://github.com/sim1984/fbdevgd30/files/1797297/fbdevgd30_ru.pdf
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950148
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

А шапку темы этого топика смотрел?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950154
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Ага, взял, спасибо!
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950155
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

так альфа-версия же. будет бета - выложу.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950159
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На ibase.ru на странице документации под пунктом "Пошаговые примеры разработки приложений для СУБД Firebird" лежит набор статей, которые, вероятно, послужили источником для указанного документа. Но когда все в кучке и в pdf, куда как удобнее. Еще раз спасибо!
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950165
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv

так альфа-версия же. будет бета - выложу.

Ах, альфа... ну, понятно, альфа - это несерьезно. А вот английский перевод назван "Release 1.0" и лежит себе на firebirdsql.org, открытый всему миру. Придется пользоваться им, раз такое дело :)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950177
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

статьи писались одновременно с руководством. Но выкладывались раньше.
Насчёт версий это забавный вопрос, английская это перевод русской.
Но версии в английском варанте проставляются независимо.
Когда Хелен посчитала, что переведённый документ в её редакции полностью готов она поставила версию 1.0.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950178
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

походу я забыл убрать что она альфа
Изначально думал туда про написание UDR воткнуть, но потом как оказалось это слишком большая тема. И по UDR выпустили отдельный документ.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950181
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

ок, тогда завтра
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39950190
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40002229
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://firebirdsql.org/file/documentation/reference_manuals/firebird-language-reference-30-rus.pdf

стр.320
авторВ DSQL приложениях, использующих Firebird API или иную обёртку, вызов процедурычерез EXECUTE PROCEDURE не требует указания предложения RETURNING_VALUES дляполучения выходных значений в однострочный буфер.
фраза " не требует " тут не совсем точна.
ибо указывает на необязательность кляузы RETURNING_VALUES.

на самом же деле НЕ ДОПУСКАЕТ .
и если её таки воткнуть, то поимеем: "Token unknown - RETURNING_VALUES".

в общем, это надо как-то поправить.
более литературно чем я тут понаписал.

зы: и кому оно блин так мешало...
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40002271
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

там вообще криво написано. DSQL приложения нет такого понятия.

Наверное лучше написать

авторПредложение RETURNING_VALUES доступно только в PSQL. В приложениях, использующих Firebird API
или иную обёртку, для получения выходных значений из хранимой процедуры
через EXECUTE PROCEDURE не нужно указывать предложение RETURNING_VALUES.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40002278
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Наверное лучше написать

авторПредложение RETURNING_VALUES доступно только в PSQL. В приложениях, использующих Firebird API
или иную обёртку, для получения выходных значений из хранимой процедуры
через EXECUTE PROCEDURE не нужно указывать предложение RETURNING_VALUES.
"не нужно", это опять таки не запрет, а мягкая рекомендация.
нужно как-то жОсче.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40002284
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийнужно как-то жОсче.

Предложение убрать целиком. "Выражение RETURNING_VALUES используется только в PSQL." И точка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40002291
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Предложение убрать целиком. "Выражение RETURNING_VALUES используется только в PSQL."
И точка.
не точка, а восклицательный знак!
(так жОсче)
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40002410
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, Dimitry Sibiryakov

хорошо напишем коротко и ясно
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40015172
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Есть как в 3-ей, так и в 4-ой версии.

Пример 3.12. Квантор ANY

Вывести только тех заказчиков, чьи оценки выше, чем у любого заказчика в Риме

imho, правильный вариант:

Вывести только тех заказчиков, чьи оценки выше, чем у какого-либо заказчика в Риме.
или
Вывести только тех заказчиков, чьи оценки выше, чем хотя бы у одного заказчика в Риме.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40016965
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

исправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40044697
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стр. 515:
обще серверный => общесерверный

Стр.517:
обще серверными => общесерверными
обще серверной => общесерверной

Стр. 519:
обще серверного => общесерверного
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102387
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На странице 366 некорректно переведён на русский язык абзац, посвящённый WITH CALLER PRIVILEGES, что вносит путаницу в понимание:

По умолчанию операторы SQL выполняются с правами текущего пользователя. Спецификация WITH CALLER PRIVILEGES добавляет к ним привилегии для вызова хранимой процедуры или триггера , так же, как если бы оператор выполнялся непосредственно подпрограммой.

Надо как-то так:

По умолчанию операторы SQL выполняются с правами пользователя текущего подключения к БД. Спецификация WITH CALLER PRIVILEGES объединяет привилегии этого пользователя с привилегиями, выданными вызывающей оператор EXECUTE STATEMENT подпрограмме (хранимой процедуре или триггеру), в результате чего, исполняемое этим оператором SQL выражение получает права не только пользователя, но и вызывающей подпрограммы, как если бы SQL выражение из оператора EXECUTE STATEMENT выполнялось непосредственно подпрограммой.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102484
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ты бы определился, откуда не так переведено. Потому что документация исходно на русском языке пишется.
Какие-то мелкие части берутся из release notes, которые исходно на английском, но не более того.
Кроме того, при сомнениях в переводе прилично показывать оригинал на английском и текст на русском.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102541
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, на английском:
WITH CALLER PRIVILEGES
By default, the SQL statement is executed with the privileges of the current user. Specifying WITH CALLER PRIVILEGES combines the privileges of the calling procedure or trigger with those of the user
, just as if the statement were executed directly by the routine. WITH CALLER PRIVILEGES has no effect if the ON EXTERNAL clause is also present.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102548
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это потому что именно эта часть бралась из перевода LangRef Update 2.5.

Поправлю
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102573
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, видимо, в мой огород камень.

Перевод и правда косноязычен, но я бы не сказал,
что предлагаемый альтернативный вариант чем-то
лучше (пдюс сильно многословнее).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102595
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там всего то надо поправить

добавляет к ним привилегии для вызова хранимой процедуры или триггера

на


добавляет к ним привилегии вызывающей хранимой процедуры или триггера
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102608
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, типа того.

Плюс, можно было бы везде оформлять в виде
"процедуры (или триггера)" и заменить/выкинуть
из текста "подпрограммы", как чуждое SQL-у.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102627
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"...или Execute Block-а", ага. Проще сказать "PSQL блока" не уточняя его
происхождение.

PS: Хотя да, я неправ, какие ещё привилегии у EB?..
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102630
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

у EB нет своих привилегий. Но в целом фразу надо расширять до хранимых процедур, функций, пакетов и триггеров
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102635
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> "PSQL блока" не уточняя его происхождение.

Кстати, да, PSQL-блока или даже "из PSQL".

Симонов Денис> до хранимых процедур, функций, пакетов и триггеров

Разве в ФБ пакетам можно задавать собственные привилегии?
Я как-то пропустил, видимо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102636
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

да, конечно. Причём только на пакет целиком, а не на отдельные процедуры и функции в нём.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102663
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, у EXECUTE BLOCK'а только привилегии пользователя.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102664
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно, спасибо.

А на отдельные процедуры совсем нельзя что ли?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102668
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

на отдельные процедуры и функции пакета нет
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102669
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Гаджимурадов Рустам,

да, конечно. Причём только на пакет целиком, а не на отдельные процедуры и функции в нём.
EXECUTE BLOCK не имеет имени. Каким образом на него сослаться из GRANT, чтобы дать привилегии, отличные от привилегий пользователя?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102671
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, а, ты про PACKAGE... Догнал!
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #40102675
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> на отдельные процедуры и функции пакета нет

Странное решение... Ну да ладно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
345 сообщений из 345, показаны все 14 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ANN Руководство по языку SQL СУБД Firebird 3.0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]