Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 8 [9] 10 11   вперед  Ctrl      все
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
dennis-r,

исправил
28 дек 15, 21:36    [18620236]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
улучшил навигацию по таблицам мониторинга и системным таблицам
2 мар 16, 22:40    [18889755]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
чччД
Guest
Страница 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);
4 мар 16, 19:02    [18898355]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
чччД,

поправил
4 мар 16, 21:56    [18898966]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
чччД
Guest
Стр 319, 3й абзац снизу.
Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращает при этом произвольное количество строк.


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

1. Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращают при этом произвольное количество строк.
2. Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращая при этом произвольное количество строк.
5 мар 16, 22:12    [18901738]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
чччД
Guest
То же самое - в руководстве FB 2.5, на стр 256.
5 мар 16, 22:14    [18901745]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Таблоид
Member

Откуда:
Сообщений: 9454
Блог
Денис, а не добавить ли в доку некоторые нюансы про переменную row_count ?
5 мар 16, 22:39    [18901838]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
Таблоид,

можно и добавить.
5 мар 16, 22:45    [18901870]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
чччД,

поправил

Таблоид,

добавил
8 мар 16, 15:08    [18908175]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Minkus
Member

Откуда:
Сообщений: 66
WinSspi надо Win_Sspi
стр.117 Compatibility Issues.
10 мар 16, 23:53    [18917916]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
Minkus,

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

Баги в Release Notes надо сообщать сюда
11 мар 16, 08:48    [18918263]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43932

По какому принципу выстроены подразделы в DDL/DML? Лично я бы ожидал их отсортированными
по алфавиту. Сейчас минуту тупо пялился на список, пытаясь найти TABLE сразу перед TRIGGER...

Posted via ActualForum NNTP Server 1.5

11 мар 16, 16:21    [18920701]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
Dimitry Sibiryakov,

особого порядка нет. А так в порядке того как обычно создаются объекты БД. Т.е до базы данных не создашь ничего, домены до таблиц, вьюхи на основе таблиц, потом триггеры... Хотя это не везде соблюдается. В принципе PDF содержит закладки (оглавление слева) по которому можно быстро переходить. В алфавитном индексе можно вообще все оператору по алфавиту смотреть. Но если есть идеи что улучшить предлагайте.
11 мар 16, 16:47    [18920864]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43932

Симонов Денис
В принципе PDF содержит закладки (оглавление слева)

Вот на него-то я и пялился. Обычно там всё-таки слова по алфавиту, для быстрого поиска.

Posted via ActualForum NNTP Server 1.5

11 мар 16, 16:53    [18920897]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Таблоид
Member

Откуда:
Сообщений: 9454
Блог
стр 297, UPDATE
Синтаксис: 

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 случаев, но и в "сложносочетанных травмах", типа такой:
+
    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). Авось пригодится.
17 мар 16, 08:21    [18941257]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
Таблоид,

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

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

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 начнут выполняться как полу-джойн.
17 мар 16, 09:45    [18941466]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Таблоид
Member

Откуда:
Сообщений: 9454
Блог
Симонов Денис
могут перестать работать с таким планом
Это уже будут проблемы индейцев, которые всунули PLAN-кляузу. Главное - зафиксировать в доке пример её применения, а про последствия можно и страшилку-предупреждалку красным цветом показать.
17 мар 16, 09:53    [18941497]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
Таблоид,

это мои домыслы. Как появится ДЕ скажет точно.
17 мар 16, 10:01    [18941534]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 6700
явные планы - зло :-) Уже сейчас они не работают на запросах сложнее линейных джойнов. Насчет semi-joins - можно просто их не применять, если указан явный план. Но если в целом говорить, то в будущем может что угодно отломиться на этот счет.
17 мар 16, 10:49    [18941776]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 28459

Hello, Dimitr!
You wrote on 17 марта 2016 г. 11:31:01:

Dimitr
> Но если в целом говорить, то в будущем может что угодно отломиться на этот счет.

знаем. помним. 15 лет уже как ;)

Posted via ActualForum NNTP Server 1.5

17 мар 16, 11:32    [18942072]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
dimitr
явные планы - зло :-) Уже сейчас они не работают на запросах сложнее линейных джойнов.

вот поэтому ждёмс нормальных хинтов. То же зло, но иногда необходимое. Кстати в планах на FB4 я их не заметил.
17 мар 16, 13:33    [18942898]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Таблоид
Member

Откуда:
Сообщений: 9454
Блог
Симонов Денис
поэтому ждёмс нормальных хинтов. То же зло, но иногда необходимое.
Когда в будущем нормальные хинты появятся -тогда и будущую доку (для соотв. версии ФБ) можно будет подправить. Выкинуть PLAN, добавить всякие там insert /*+ append */ into ...
А пока лучше добить работающими фрагментами кода ту, что имеем. С указанием страшилок, что "планы - это ууу! не хорошо!" и т.п.
ИМХО.
17 мар 16, 14:13    [18943205]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 28459

Таблоид, +100500!

Posted via ActualForum NNTP Server 1.5

17 мар 16, 14:19    [18943248]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7420
Таблоид,

будет, не волнуйся.
17 мар 16, 14:44    [18943438]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 3.0  [new]
Таблоид
Member

Откуда:
Сообщений: 9454
Блог
pg. 507
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 "лучше" указывать первой, но явно об этом не говорится (или же нельзя это выразить данной нотацией - не знаю :)).
Так что лучше об этом заявить во всеуслышание:

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> -- только так прокатит --
18 мар 16, 15:05    [18948663]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 8 [9] 10 11   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить