powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySQL и Firebird для Web
25 сообщений из 287, страница 7 из 12
MySQL и Firebird для Web
    #36778297
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne
- Почему столь успешно юзаемая в он-лайне СУБД, не приживается в офф-лайне?

Потому что руки её авторов... сомнительного качества.

На примере тех же триггеров: авторы MySQL вообще ничего толкового в них сделать не смогли
и потому запретили вообще обращения к таблицам. Авторы Oracle были чуть получше и
запретили обращение не ко всем таблицам, а только к некоторым. Поэтому Oracle прижился в
офф-лайне, а MySQL - не судьба.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778344
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Di_LIne
- Почему столь успешно юзаемая в он-лайне СУБД, не приживается в офф-лайне?

Потому что руки её авторов... сомнительного качества.

На примере тех же триггеров: авторы MySQL вообще ничего толкового в них сделать не смогли
и потому запретили вообще обращения к таблицам. Авторы Oracle были чуть получше и
запретили обращение не ко всем таблицам, а только к некоторым. Поэтому Oracle прижился в
офф-лайне, а MySQL - не судьба.

Дааа, самомнения у разработчиков ФБ не занимать :)
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778348
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApexДааа, самомнения у разработчиков ФБ не занимать :)

Хорошо натренированные чтением документации Оракла люди способны разглядеть ФБ таже там,
где я специально о ней ни разу не упомянул...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778378
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
ApexДааа, самомнения у разработчиков ФБ не занимать :)

Хорошо натренированные чтением документации Оракла люди способны разглядеть ФБ таже там,
где я специально о ней ни разу не упомянул...

Не только чтением и не только Оракла. А ФБ у тебя на лбу написан.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778405
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApexНе только чтением и не только Оракла. А ФБ у тебя на лбу написан.
ок, а у Вас на лбу что написано?

Кстати. Топик этот как называется? коршуны чего налетели-то, не пойму.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778412
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
ок, а у Вас на лбу что написано?

Ну уж точно не только Оракл,если вы об этом.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778705
Фотография Saller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApexДааа, самомнения у разработчиков ФБ не занимать :)А при чем тут самомнение? Или факты это такая страшная вещь чтобы их принимать как они есть? Откройте документацию того же MySQL и FireBird и сравните возможности триггеров и там и там. А так только пустозвон в Ваших постах.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778840
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я лублу Постгре. А если вы тут будите оффтопить - будем вместе изучать ФыВыМас - в наказание. А то там керды-перды-кун что-то молчит.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36778937
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warstone, ну и луби... Те кто-то(что-то) мешает?
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779033
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WarstoneА я лублу Постгре.

Вот и расскажи нам: что он позволяет читать/писать в триггерах и к каким результатам это
приводит. Чтобы можно было решить куда в этой линейке его поместить.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779189
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
WarstoneА я лублу Постгре.

Вот и расскажи нам: что он позволяет читать/писать в триггерах и к каким результатам это
приводит. Чтобы можно было решить куда в этой линейке его поместить.
Код: 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.
DROP TABLE IF EXISTS test;
CREATE TEMP TABLE test(
	id bigserial NOT NULL PRIMARY KEY,
	a integer,
	b integer
);

CREATE OR REPLACE FUNCTION test_bi_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_bi_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	RAISE NOTICE 'end of procedure. RETURNING NEW.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION test_ai_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_ai_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	RAISE NOTICE 'end of procedure.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

INSERT INTO test VALUES(DEFAULT,  1 ,  2 );

CREATE TRIGGER trg_test_bi_1 BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_bi_trg();
CREATE TRIGGER trg_test_ai_1 AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_ai_trg();

INSERT INTO test VALUES(DEFAULT,  3 ,  4 );
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
NOTICE:  CREATE TABLE will create implicit sequence "test_id_seq" for serial column "test.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
NOTICE:  begin of test_bi_trg(). New rec:  2 ,  3 ,  4 
NOTICE:  reading test:  1 ,  1 ,  2 
NOTICE:  end of procedure. RETURNING NEW.
NOTICE:  begin of test_ai_trg(). New rec:  2 ,  3 ,  4 
NOTICE:  reading test:  1 ,  1 ,  2 
NOTICE:  reading test:  2 ,  3 ,  4 
NOTICE:  end of procedure.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779234
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warstone
Т.е. PG позволяет читать из модифицируемой таблицы. В этом он обставил "старшего брата". А
писать в неё?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779251
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Warstone
Т.е. PG позволяет читать из модифицируемой таблицы. В этом он обставил "старшего брата". А
писать в неё?
Код: 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.
DROP TABLE test;
CREATE TEMP TABLE test(
	id bigserial NOT NULL PRIMARY KEY,
	a integer,
	b integer
);

CREATE OR REPLACE FUNCTION test_bi_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_bi_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	IF NEW.a <>  10  THEN
		RAISE NOTICE 'Begin Insert new vaules.';
		INSERT INTO test VALUES (DEFAULT,  10 ,  11 );
		RAISE NOTICE 'Insert new vaules. Rereading';
		FOR r IN SELECT * FROM test LOOP
			RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
		END LOOP;
	END IF;
	RAISE NOTICE 'end of procedure. RETURNING NEW.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION test_ai_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_ai_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	RAISE NOTICE 'end of procedure.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

INSERT INTO test VALUES(DEFAULT,  1 ,  2 );

CREATE TRIGGER trg_test_bi_1 BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_bi_trg();
CREATE TRIGGER trg_test_ai_1 AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_ai_trg();

INSERT INTO test VALUES(DEFAULT,  3 ,  4 );
Код: 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.
NOTICE:  CREATE TABLE will create implicit sequence "test_id_seq" for serial column "test.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
NOTICE:  begin of test_bi_trg(). New rec:  2 ,  3 ,  4 
NOTICE:  reading test:  1 ,  1 ,  2 
NOTICE:  Begin Insert new vaules.
NOTICE:  begin of test_bi_trg(). New rec:  3 ,  10 ,  11 
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  reading test:  1 ,  1 ,  2 
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  end of procedure. RETURNING NEW.
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  begin of test_ai_trg(). New rec:  3 ,  10 ,  11 
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  reading test:  1 ,  1 ,  2 
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  reading test:  3 ,  10 ,  11 
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  end of procedure.
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line  10  at SQL statement
NOTICE:  Insert new vaules. Rereading
NOTICE:  reading test:  1 ,  1 ,  2 
NOTICE:  reading test:  3 ,  10 ,  11 
NOTICE:  end of procedure. RETURNING NEW.
NOTICE:  begin of test_ai_trg(). New rec:  2 ,  3 ,  4 
NOTICE:  reading test:  1 ,  1 ,  2 
NOTICE:  reading test:  3 ,  10 ,  11 
NOTICE:  reading test:  2 ,  3 ,  4 
NOTICE:  end of procedure.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779305
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, круто. Индусы могут плакать от зависти.

А что будет если убрать "IF NEW.a<>10"?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779312
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
О, круто. Индусы могут плакать от зависти.

А что будет если убрать "IF NEW.a<>10"?
Бесконечный цикл. Хз, может пото отвалится по оверфлоу стека - не дождался.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779435
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WarstoneБесконечный цикл. Хз, может пото отвалится по оверфлоу стека - не дождался.
какая неожиданность
что-то индусы мне все больше нравятся. к стате интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где оракл мниоткат делает ?
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779473
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где
оракл мниоткат делает ?

Запросы знаю... таблицы знаю... индексы знаю... Предикатов не знаю. Что индусы называют
"предикатами"?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779479
Фотография artemana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!WarstoneБесконечный цикл. Хз, может пото отвалится по оверфлоу стека - не дождался.
какая неожиданность
что-то индусы мне все больше нравятся. к стате интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где оракл мниоткат делает ?
Может пойдем еще дальше, и для того чтобы ликвидировать опасность попадание в бесконечный цикл запретим на уровне PSQL все операторы циклов и переходов, а? Бог с тем Тьюрингом, пусть будет только последовательное выполнение и ветвление. Ерунда, что программы смогут реализовать значительно меньше алгоритмов, зато бесконечного цикла не будет ни у кого, и никогда. На смену беспорядку прийдет порядок! Как на кладбище.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779499
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!что-то индусы мне все больше нравятся. к стате интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где оракл мниоткат делает ?Ну та сначала по русски расскажи что ты хочешь услышать. Я-же с Ораклом не работал. Я тебе отвечу - что будет. Хотя что-то мне кажется что ответ будет такой:

Механизм сейвпоинтов и BEGIN EXCEPT - который реализован через вложенную транзакцию.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779554
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется, Yo! уже объясняли про сэйвпойнты в Firebird. Если нет, то тут:
www.ibase.ru/devinfo/savepoints.htm
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779614
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvмне кажется, Yo! уже объясняли про ... FirebirdЭто бесполезно...
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779902
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artemana
Может пойдем еще дальше, и для того чтобы ликвидировать опасность попадание в бесконечный цикл запретим на уровне PSQL все операторы циклов и переходов, а?
не надо ходить дальше, нуна сесть и один раз для себя разобраться в чем собственно проблема мутации данных. просто для себя, попробуй разобраться почему оракл решил ввести дополнительные механизмы защиты, хотя можно было плюнуть на эту лишнюю мороку как FB и Postgres. уход в бесконечный цикл это самый безобидный из косяков при отсутствии защиты ...

WarstoneНу та сначала по русски расскажи что ты хочешь услышать. Я-же с Ораклом не работал. Я тебе отвечу - что будет. Хотя что-то мне кажется что ответ будет такой:

есть один интересный нюанс на уровне Read Commited когда пишущий запрос в процессе исполнения обнаруживает, что конкурирующая транзакция изменила строки входящие в предикат.

http://www.oracle.com/global/ru/oramag/dec2006/russia_minirollback.html

ЗЫ. для Firebird вопрос снимается, там же Read Commited и не пытается консистентный набор выдать.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36779968
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!уход в бесконечный цикл это самый безобидный из косяков при отсутствии
защиты
Рекурсии бояться - в программисты не ходить.

Yo.!
ЗЫ. для Firebird вопрос снимается, там же Read Commited и не пытается консистентный набор
выдать.

Вообще-то DML никакого набора и не выдаёт... Firebird при подобном конфликте не станет
заниматься фрикциями, а просто откатит всю предыдущую работу запроса и вернёт ошибку
пользователю.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36780014
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!есть один интересный нюанс на уровне Read Commited когда пишущий запрос в процессе исполнения обнаруживает, что конкурирующая транзакция изменила строки входящие в предикат.

http://www.oracle.com/global/ru/oramag/dec2006/russia_minirollback.html

я посмотрел статью только в части update и delete, и вижу тут только одно отличие ФБ от Оракла:
- ФБ не стартует "мини-снапшот" при старте выполнения оператора

дальше все "примерно одинаково". Т.е. если во время update/delete ФБ обнаруживает конфликт, то откатывает именно этот оператор (через savepoints).

Еще, как я понимаю, в отличие от Оракла ФБ в ReadCommitted проигнорирует наличие committed-данных, которые были сохранены ПОСЛЕ момента старта RC с update, но ДО обновления этих данных update-ом. Что в отношении ФБ справедливо для уровня изолированности SNAPSHOT. А про микро-снапшот, стартуемый Ораклом в начале оператора, я сказал выше.
...
Рейтинг: 0 / 0
MySQL и Firebird для Web
    #36780016
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЧто в отношении ФБ справедливо для уровня изолированности SNAPSHOT.
блин, записался. Имел в виду что поведение Оракла относительно оператора в RC эквивалентно снапшоту в ФБ потому что в начале оператора Оракл как раз как бы стартует микро-снапшот-транзакцию на время работы оператора.
...
Рейтинг: 0 / 0
25 сообщений из 287, страница 7 из 12
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySQL и Firebird для Web
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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