Re: off snapshort

2010-01-13 Пенетрантность Kovalenko Dmitry
   Вообще говоря, это НЕ Firebird и в таком виде распространять его вы не 
имеете права.


Ой, ужос то какой.


PS Ох засужжжу :)


Я те говорил - шли свой почтовый адрес и все уладим :)

Коваленко Дмитрий. 





Re: off snapshort

2010-01-13 Пенетрантность Kovalenko Dmitry




Сервер отличается от оригинального


кстати. убрал бы ты это, от греха. лицензию нарушаешь, как минимум.


Все прям напряглись как - о боже как он посмел ...

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


Коваленко Дмитрий.
www.ibprovider.com 





Re: off snapshort

2010-01-13 Пенетрантность Kovalenko Dmitry

Или ты не знаешь, что даже отданный лично одному человеку файл
имеет шансы потом всплыть где угодно и в больших количествах?


Так, давай не будем устраивать истерию по этому поводу.

Если ты хочешь мое профессиональное мнение - то официальное выкладывание FB 
2.5 RC1 ничем не лучше. Не говоря про Беты, Альфы, а так же предыдущие 
_релизы_ FB.


Я понимаю чего Влад беснуется. Сто пудово - не из-за ссылки.

А тебе то какой резон?

Коваленко Дмитрий. 





Re: off snapshort

2010-01-13 Пенетрантность Kovalenko Dmitry

Мля

PPS Фактически, если мне\в трекер\куда угодно ещё придёт багрепорт и 
выяснится, что это на твоей сборке - я лично приеду в Липецк и


А то что в течении двух лет в ваш трекер шли репорты именно с таких сборок - 
ни чо, нормально?


Ну правда, надо отдать должное, иногда по полгода ерничали - типа Коваленко 
сам там натупил.


---
А теперь выдохнем и поймем, что для такого рода сборок - альфы, беты, RC 
нужен механизм триальности. Самый примитивный - с железно прописанным сроком 
годности.


Но поскольку это предлагаю я, то уверен, что эту идею объявят абсурдной.

Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-12 Пенетрантность Kovalenko Dmitry

Меня больше интересует что по этому поводу думает Кальтенбруннер.

Но он, как всегда, сохраняет молчание :))


Стабильные курсоры будут. Но скорее всего опционально. И не сегодня :-)


Спасибо за лучик надежды, Отто :

Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-12 Пенетрантность Kovalenko Dmitry

DY Стабильные курсоры будут. Но скорее всего опционально.

Управляться параметрами транзакции, или рулиться конфигом?


Это неважно, потому что требует  1% от основных усилий в данном 
направлении :-)


По мне, такие вещи должны работать по умолчанию.

Но возможно есть какие-то нюансы. Типа селекта из SP, которая добавляет 
новые записи в таблицу из которой она делает выборку :)))


Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-12 Пенетрантность Kovalenko Dmitry



Стандарт тоже так считает. Но если это будет стоить каких-либо заметных 
тормозов, то лучше дефолтом оставить старое поведение.


Я надеюсь, что когда это появится, у меня уже будет очередной аппарат и эти 
лишние телодвижения на уровне сервера мне будут по-барабану :)))


Коваленко Дмитрий. 





Re: off snapshort

2010-01-12 Пенетрантность Kovalenko Dmitry

Привет
Искал в гугле последнюю версию птицы. на запрос firebird 2.5 первая 
страница idprovider. :-)) Коваленко мог уже и rc там выложить вместо бетты


Ага, типа намусорили мы конкретно :)

http://www.ibprovider.com/download/fb/firebird2_clear9_10_v2_5_0_25904__2010_01_07.rar

Тут обе сборки - 32 и 64 бита.

Сервер отличается от оригинального
- Докручено ICU, что бы оно не падало при многопоточной работе и не гадило 
при выгрузке.

- Исправлена фигня с перекодированием NONE массивов
- Может что еще, но не сильно принципиально
- Юзается VS2008 SP1+


У меня он течет. Но не думаю, чтобы это из за моих изменений.

Если не считать этого, то в остальном работает более чем стабильно.

Коваленко Дмитрий.
www.ibprovider.com 





Re: Грабли с кэшем данных

2010-01-11 Пенетрантность Kovalenko Dmitry
Предлагаю крайним сделать сервер - пусть создает стабильные курсоры. 
EUSUS.

а что говорит стандарт по этому поводу?


Меня больше интересует что по этому поводу думает Кальтенбруннер.

Но он, как всегда, сохраняет молчание :))

Коваленко Дмитрий. 





Re: С Новым Годом!!!

2010-01-10 Пенетрантность Kovalenko Dmitry

Дим, какой в ж... Ахтамар? Все это уже давно только паленое продается.


Ахтамар, как я уже сказал, ни разу не пил. Друзья первую бутыль высосали и 
сказал ни чо так :)


Поэтому сам я ни чего сказать не могу.

Это пусть кто нибудь из Воронежа стаскается к Перекрестку возле Цирка, 
закупит (стоил он чуть меньше двух штук за 0.75) и отрапортует.


Пришлось взять семилетнию классику. Про запас. Батя (после длительных 
расчетов) сказал что у него этого коньяка теперь пол-ведра и можно с 
оптимизмом смотреть в 2010 :-


ну-ну.



А семилетний Зватноц, в течении пяти или уже шести(?) лет, своего вкуса не 
меняет. Сивухой не пахнет :)


Батя доволен как слон.

Мнение известного, независимого эксперта с Украины тоже было положительным. 
Угыгы :)))


Батя сравнивал с хеннеси (типа из лимузинского дуба и все такое) и этим ... 
как его ... 10-летним Асханазаном. Не оценил. Обе бутыли до сих пор стоят не 
допитые :)


Звартноц сюда завозят очень мелкими партиями (на фоне остального Арарата). 
И стоит он раза в два дороже - полторы за 0.75. Во всем городе - только в 
одном месте он есть.


Обычного Арарата в каждом магазине - заставлены полки. Но мы с ним завязали 
очень давно. Последней бутылью был 10 летний специальный. Отец сделал 
Бррр и потом спаил его гостям. А Звартноц прятал в у себя спальне :


Коваленко Дмитрий. 





Re: Windows7 Ultimate 64 and Firebird 2.5 64

2010-01-10 Пенетрантность Kovalenko Dmitry




  ... 32-битных клиентов забьём сразу ?


Не не, меня подождите. Хочу по-присутствовать.

Коваленко Дмитрий. 





Re: С Новым Годом!!!

2010-01-10 Пенетрантность Kovalenko Dmitry

кто пьет коньяк стопками,


Не, батя Зватноц пьет исключительно серебрянной чайной ложечкой. Одну в день 
:)))


Мне он разрешает делать пару бульков с горла - а мне больше и не надо :


Короче, берегите здоровье :-)


Золотые твои слова :))

Коваленко Дмитрий. 





Re: Re[2]: Грабли с кэшем данных

2010-01-08 Пенетрантность Kovalenko Dmitry




Предлагаю крайним сделать сервер - пусть создает стабильные курсоры.
EUSUS.



но лучше спросить у Хвастунова, он точно скажет.


Хаха. На 200% он скажет тоже самое - моя тут ни причем, ето все сервер


А сервер тут не причём :P)


Чтобы понять что как раз причем нужно попробовать самому покурить тему 
реализации универсального датасета на уровне компонент доступа.


Универсального в том смысле, что запрос для этого датасета дается извне. И 
может быть каким угодно.


Запрос select * from TABLE - это самый тривиальный случай.

Причем покурить не теоритически типа можно вот так, а можно и вот так.. А 
по-настоящем ;-)


---
Текущие решения я (и не только) озвучивал. С двумя транзакциями - это не 
всегда подходит. Может клиенту не хочется юзать две транзакции.


С полной загрузкой ... многотонной таблицы ... провайдер такое выдержит, 
хотя и уйдет на некоторое время в себя. А вот к остальным прийдет 
мемори_оверфлоф :)))


---
Так что, господа - проблема на уровне сервера :

---
Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-07 Пенетрантность Kovalenko Dmitry




7. Идем обратно, в начало нашего множества. И там мы её тоже видим.


Ясный пень, я понимаю почему это происходит.


   А я - нет, объясни


На пустой таблице это делается так.

0. Выполняем запрос select * from TABLE. Фетч не делаем.
1. Юзер добавляет запись в гриде
 - Клиент добавляет запись во внутренний кэш
 - Клиент выполняет запрос INSERT INTO и запись попадает в таблицу
2. Юзер видит добавленную запись.
3. Юзер начинает движение вниз по гриду.
 - Клиент делает фетч и выбирает запись, которую мы добавили в п.2.2.
   И он её снова добавляет в кэш

таким образом, одна и та же запись дважды фигурирует в кэше.

---
В IBE с пустыми таблицами тест не провернешь. Он начинает делать фетчи чтобы 
заполнить видимую часть грида. Поэтому там надо забить в таблицу побольше 
данных. Чтобы, после того как мы добавим новую запись, он смог продолжить 
фетч и выбрать эту запись снова.


Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-07 Пенетрантность Kovalenko Dmitry




   Т.е. в клиентском кеше ? В датасете ? И в чём проблемы идентифицировать
отфетченную запись и оставить в кеше что-то одно ?


В чем проблемы, говоришь? Бугага. Да во всем.


   И, главное, причём тут доработка со стороны сервера ?


Пусть он (курсор) не возвращает записи, которые добавились после начала 
выполнения запроса.


Вообще говоря, тут надо по другому сказать - Пусть курсор не видит 
изменения, которые произошли в БД после его открытия.


Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-07 Пенетрантность Kovalenko Dmitry




   Ну, жди... :)


Дык, это мое перманентное состояние :-)

Чередуемое с периодами беснования :-)))

Коваленко Дмитрий. 





Re: Грабли с кэшем данных

2010-01-07 Пенетрантность Kovalenko Dmitry




0. Выполняем запрос select * from TABLE. Фетч не делаем.
1. Юзер добавляет запись в гриде
 - Клиент добавляет запись во внутренний кэш
 - Клиент выполняет запрос INSERT INTO и запись попадает в таблицу


Вот тут и косяк. Иделогически датасет дожен либо сделать предварительно 
FetchAll или Refresh после инсерта.


Либо перед первой вставкой форсированно загружать все множества. И тут тоже
можно нарваться :)

Про рефрешЪ я не думал - потому что тут думать нечего. Не катит :-))


Если инсерт ещё и с сохранением ордера, то ситуация ещё более очевидна.


Кругом засада :))

---
Предлагаю крайним сделать сервер - пусть создает стабильные курсоры. 
EUSUS.


Коваленко Дмитрий.




Грабли с кэшем данных

2010-01-06 Пенетрантность Kovalenko Dmitry

Привет всем.

С наступившим, типа.

Я тут накатал тест, результаты которого меня заставили задуматься :)

В эксперте это воспроизводится таким образом.

1. Таблица с одной INTEGER-колонкой

2. Заполняем таблицу
execute block
as
declare variable n integer;
begin
n=1;
while(n=10)do
begin
 insert into TEST_TABLE_3197 (ID) VALUES (:n);

 n=n+1;
end
end

3. Открываем данные таблицы. У меня эксперт вывел первые 39 записей.

4. Вставляем (в гриде) новую запись (ID=999 999)

5. Нажимаем Ctrl+End для перехода на последнию запись

6. И видим нашу добавленную запись с ID=999 999

7. Идем обратно, в начало нашего множества. И там мы её тоже видим.


Ясный пень, я понимаю почему это происходит.

И не спасет никакой уровень изоляции. Ну только если вставку делать в другой 
транзакции. А читать в повторяемом чтении. Но это не всегда хорошо.


Либо перед первой вставкой форсированно загружать все множества. И тут тоже 
можно нарваться :)



Я правильно понимайт, что спасет только (та самая что и для insert from 
select) доработка со стороны сервера? :)))


Коваленко Дмитрий. 





Re: С Новым Годом!!!

2010-01-01 Пенетрантность Kovalenko Dmitry



На выходных таскался в местную Линию и пристал там с вопросом - у вас 
есть Ахтамар, 10 летний?. Там печально на меня посмотрели и сказали что 
из дубовых местных законов у них его нету.



Да, уж. Я десятилетний Ахтамар лет 8 уже не пил.


Не расстраивайся, я его вообще ни разу не пил. Только дарил :-))

Коваленко Дмитрий. 





Re: SQL_DEFAULT

2009-12-31 Пенетрантность Kovalenko Dmitry
Возможно я не слишком оригинален с этим вопросом, но когда (пи-пи-пи) в 
сервере (понятно каком) появится тип SQL_DEFAULT, шоб можно было задавать 
значения по умолчнию для параметров SP и колонок?


Еще раз вот подумал ...

Вообще, если у параметра есть значение по умолчанию, то пусть SQL_DEFAULT в 
него и транслируется.


А если нет - то пусть транслируется в NULL.

Во.

Еще раз, ВСЕХ - С Наступающими Днями Обжираловки.

Коваленко Дмитрий. 





Re: С Новым Годом!!!

2009-12-30 Пенетрантность Kovalenko Dmitry




Ибо день рабочий сегодня для многих последний в уходящем году,


Всех, дожил до конца этого года - С Наступающим Новым Годом!

Коваленко Дмитрий. 





Re: С Новым Годом!!!

2009-12-30 Пенетрантность Kovalenko Dmitry

Ибо день рабочий сегодня для многих последний в уходящем году,


Всех, дожил до конца этого года - С Наступающим Новым Годом!


Ну вот, вроде отмечать еще не начал, а букы пропускаю :)))

Коваленко Дмитрий. 





Re: С Новым Годом!!!

2009-12-30 Пенетрантность Kovalenko Dmitry




Компилятыры, ну, вы в курсе, да? :)


Йа тоже об этом подумал :)


Всем, всем, всем - прыгучего Нового года! Ура!!!


Usus.
Коваленко Дмитрий. 





Re: С Новым Годом!!!

2009-12-30 Пенетрантность Kovalenko Dmitry




:-)
http://www.znaymeru.ru/ru/snegur/


Пошарился по сайти... Угыгы.

Закрыл окно с камментом - умри дура :)

На выходных таскался в местную Линию и пристал там с вопросом - у вас 
есть Ахтамар, 10 летний?. Там печально на меня посмотрели и сказали что из 
дубовых местных законов у них его нету.


Пришлось взять семилетнию классику. Про запас. Батя (после длительных 
расчетов) сказал что у него этого коньяка теперь пол-ведра и можно с 
оптимизмом смотреть в 2010 :-


Коваленко Дмитрий 





Re: SQL_DEFAULT

2009-12-13 Пенетрантность Kovalenko Dmitry

а на уровне параметра такое зачем?


Для хранимых процедур.
1. Я подготавливаю единый запрос в котором перечислены маркеры всех 
параметров.
2. Для параметров, которым пользователь не передал значения, буду 
устанавливать SQL_DEFAULT


Для запросов на INSERT
1. тоже самое, только для колонок
2. тоже самое, только для колонок

--
Допустим, юзер подготавливает запрос exec SP

Провайдер определяет имя SP, получает список параметров, определяет наличие 
SUSPEND и подготавливает


либо execute procedure SP(??)
либо select * from SP(??)

После этого, если юзер не захочет указывать значения каких либо параметров 
(типа пусть сервер использует значения по-умолчанию), мне надо 
переподготавливать запрос, чтобы исключить эти параметры. А так, я буду туда 
передавать SQL_DEFAULT


Сейчас, если пользователь не указал значение для маркера, я с посылаю его в 
сад. Потому что возится с переподготовкой запроса - не дворянское занятие.


Коваленко Дмитрий. 





SQL_DEFAULT

2009-12-12 Пенетрантность Kovalenko Dmitry

Привет.

Возможно я не слишком оригинален с этим вопросом, но когда (пи-пи-пи) в 
сервере (понятно каком) появится тип SQL_DEFAULT, шоб можно было задавать 
значения по умолчнию для параметров SP и колонок?


Ы?

Измученный нарзаном,
Коваленко Дмитрий. 





Re: Про RDB-домены

2009-12-11 Пенетрантность Kovalenko Dmitry

Это известная хрень или где?


В трекере разберутся :-)


Ага, понял. Щас нацарапаю туда хэлло пиплы :)



мы еще предыдущее не закрасили, а ты опять царапать? А ну брось гвоздь.



Аааа, ну как скажете...

Нам что подтаскивать, что оттаскивать - без разницы :)))

Коваленко Дмитрий. 





Re: SuperClassic

2009-12-11 Пенетрантность Kovalenko Dmitry
А потом, когда замутил многопоточную тестовую систему - перешел на одну 
базу. И то, если мне не изменяли глаза, супер умудрялся выжирать чуть 
больше одного ядра (~30% на четырехядернике). При 8 тестовых потоках.


А что она тестила?


Конвертирование текстовых данных (блобы, массивы, обычные колонки) в разных 
мутанских комбинациях кодовых страниц, форматов и размеров данных. 
Фактически, проверяется каждая буква определенного набора кодовых страниц в 
разных позах (WIN1251 тоже проверям :) )


То есть _дофига_ простых операций по чтению, записи и удалению.

Багов они поймали ... ну типа много :)

Да и щас вот ... интересную картину показывают :))

Там еще другие веселые тесты есть.


CTE не пробовал джойнить с немерянными таблицами?


Не, CTE я вообще ни разу не юзал :))

Максимум - это у нас юзаются EB которые проверяют какую то формулу с датами.

Коваленко Дмитрий.

PS. Желающим поигратсо
- качаем триал провайдера (тока щас обновил, свеженький)
- собираем тесты TestCode\ActiveX\IBP\oledb_test (VS2008 желательно)
- генерим базу TestCode\ActiveX\IBP\test_database

И насилуем FB (вместе со своим компутером) :-)))

Особенно приветствуются четырех и более ядерные монстры :-) 





Re: ~Re: SuperClassic

2009-12-11 Пенетрантность Kovalenko Dmitry
На супере 2.5 независимые базы нормально параллельно работают. Я года 
назад очень активно с этим игрался.


Интересно насколько параллельно.


Запусти и посмотри сам :)


Как я помню по FB1.0 банальный yacc выдавал нереентабельный парсер.


Я на днях всю линейку мучал. IB4-IB9, FB0.9-FB2.5

Жизнь начинается с IB7 / FB1.5.

Коваленко Дмитрий. 





Re: FB 2.5 RC1

2009-12-11 Пенетрантность Kovalenko Dmitry

А я так и не пощупал это чудо природы. Как жаль :(


Ничо так. На ощупь. Но пока есть некоторые проблемы с интенсивным сексом.

Хотя, возможно, это не секс, а чисто[е липетцкое] убийство :-)

---
Меня тут вот, после распития содержимого бутылки с этикеткой Девичья 
Башня, посетила мысль. Тесть бодяжит.


Щас проще в FB допилить многопоточность, чем в IB реализовать все (зачастую, 
конкретные) фичи Firebird :-)


Но это мои субъективные мысли :))

Коваленко Дмитрий. 





Re: FB 2.5 RC1

2009-12-11 Пенетрантность Kovalenko Dmitry

Меня тут вот, после распития содержимого бутылки с этикеткой Девичья
Башня, посетила мысль. Тесть бодяжит.


Не экспортирует часом? :-)


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



Щас проще в FB допилить многопоточность, чем в IB реализовать все
(зачастую, конкретные) фичи Firebird :-)


В корень зришь.


Дык. Останется только один :)

Коваленко Дмитрий. 





Про RDB-домены

2009-12-10 Пенетрантность Kovalenko Dmitry


Это опять я.

Есть хранимая процедура с параметром
CREATE PROCEDURE SP (A INTEGER)

Имя у домена этого параметра - RDB$123

Создаем новую хранимую процедуру
CREATE PROCEDURE SP1(A RDB$123)

Сервер (FB2.5) создает SP1 без проблем.

Удаляем SP1. Коммитим.

---
Смотрим в базу - SP имеет параметр, который ссылается на несуществующий 
домен.


Это известная хрень или где?

---
IBE - маладца. По-всей видимости, юзает left join для пересечения 
PROCEDURE_PARAMETERS и FIELDS. Поэтому список параметров убитой SP все 
равно показывает корректно.


Коваленко Дмитрий.

PS. Не виноватая я! 





Re: Про RDB-домены

2009-12-10 Пенетрантность Kovalenko Dmitry



Это известная хрень или где?


В трекере разберутся :-)


Ага, понял. Щас нацарапаю туда хэлло пиплы :)

Коваленко Дмитрий.




~Re: SuperClassic

2009-12-10 Пенетрантность Kovalenko Dmitry


Но это всё ещё не то, чего хочется. Сейчас проблема в том, что 
суперсервер

из за кривизны кода плохо параллелится по разным потокам.


он вообще не параллелится, и не из-за кривизны, а из-за архитектуры.


На супере 2.5 независимые базы нормально параллельно работают. Я года назад 
очень активно с этим игрался.


А потом, когда замутил многопоточную тестовую систему - перешел на одну 
базу. И то, если мне не изменяли глаза, супер умудрялся выжирать чуть больше 
одного ядра (~30% на четырехядернике). При 8 тестовых потоках.


Честное пионерское. Мне сказали - возможно это асинхронное I/O. Да и по 
любому - в рамках одной базы одно время были грабли с многопоточностью. 
Значит он (супер) таки что то там делает параллельно. Грабли исчезли где то 
с начала прошедшей оcени. Причем все - и у FB, и у Висты c новыми дисками :)


[стучу по дереву]

Но щас пересел на суперклассик. И пруся от нереальной загрузки процессора :)

Вот.
Коваленко Дмитрий. 





Re: CHECK у домена

2009-12-09 Пенетрантность Kovalenko Dmitry



А то только Дима Коваленко остался постоянным писателем сюда :(((


Да это я так... Напишешь сюда, а потом понимаешь - сам дураг :))

Кстати вот почти по теме. Если заюзать домен с DEFAULT значением для 
OUT-параметра хранимой процедуры (FB2.1, FB2.5) и нифига его не менять в 
теле SP, то что мы получим на выходе? :-)


Сам пока не смотрел - вожусь в другими извращениями :)

Коваленко Дмитрий. 





Re: CHECK у домена

2009-12-09 Пенетрантность Kovalenko Dmitry



Думаю, что все-таки нулл. Кто-то вроде уже задавал этот вопрос недавно.


Внимание, а теперь - правильный ответ

(FB2.5.0.25856 SuperClassic x64)

create domain t_durag
as
char(32) default 'durag';

create procedure SP_TEST_DURAG
returns (a t_durag)
as
begin
suspend;

a='sam durag';
suspend;
end;

select * from SP_TEST_DURAG;

BEGIN OUTPUT -
durag
sam durag

END OUTPUT --

БУГАГА.

Коваленко Дмитрий. 





Re: CHECK у домена

2009-12-09 Пенетрантность Kovalenko Dmitry


Вот я же и говорю - отправишь и поймешь 


create procedure SP_TEST_DURAG


Для более точного понимания механизмуса, делаем продвинутую версию выше 
нарисованной SP


create procedure SP_TEST_DURAG_V2
returns (a t_durag, b char(32))
as
begin
b=a;
suspend;

a='sam durag';
b=a;
suspend;
end

И результат дает четкую картину - как оно работает :)

Адриану(?) - зачот.

Коваленко Дмитрий. 





OUT параметры и DEFAULT

2009-12-09 Пенетрантность Kovalenko Dmitry


Привет всем.

Я вот чего подумал.

Если домен с DEFAULT вполне адекватно работает в OUT-параметре, то чего не 
разрешили явное определение DEFAULT для параметров?


Типа начальная иницализация переменной и все такое :)

Коваленко Дмитрий. 





Re: CHECK у домена

2009-12-09 Пенетрантность Kovalenko Dmitry



Однако, настораживает, что сам с собой тут разговариваешь :)


В последнее время, для конспирации, Штирлиц стал думать вслух 

Совсем недавно (год назад) перечитывал эту книжку своего детства - Как 
размножаются ёжики :-)


Коваленко Дмитрий. 





IB9, BIGINT и 1 диалект

2009-12-06 Пенетрантность Kovalenko Dmitry


Привет всем.

Я обнаружил презабавную вещь в системной таблице базы IB9 (2009)

Колонка RDB$JOURNAL_ARCHIVES.RDB$ARCHIVE_LENGTH имеет тип чистого
BIGINT-а.

То есть у неё субтип не указан (NULL)

IBE говорит что эта колонка имеет тип BIGINT (хотя сервер BIGINT не
поддерживает)

Аналогичная фигня у TMP$HEAPS.TMP$ADDRESS

---
Еще интересно то, что эта BIGINT колонка существует и в базе данных с
первым диалектом.

Хотя, формально, такой тип в первом диалекте не поддерживается (и сервер
ругается, если попытаться прочитать эту колонку).

Но видать это распространяется только на клиента. Сам сервер может читать
все и как угодно.

Тем не менее. Проникновение BIGINT-а в системные таблицы фактически означает 
что 1 диалект таки рано или поздно, но умрет?


Коваленко Дмитрий.




Re: IB9, BIGINT и 1 диалект

2009-12-06 Пенетрантность Kovalenko Dmitry


Тем не менее. Проникновение BIGINT-а в системные таблицы фактически 
означает что 1 диалект таки рано или поздно, но умрет?


Мы все когда нибуть умрем. И он тоже :)

Можно устроить интернет-голосование - вы хотите умереть раньше первого 
диалекта или позже?.


Ну, можно еще добавить пункты вместо и вместе. usus.

Коваленко Дмитрий. 





Re: IB9, BIGINT и 1 диалект

2009-12-06 Пенетрантность Kovalenko Dmitry



мне почему-то казалось что в IB первый диалект уже помер довольно давно.


Базы с первым диалектом он создает. Работает с ними вполне адекватно.

Просто вот эти две колонки с 64-битными числами (которые даже не косят под 
нумерики) меня немного озадачили :-)


Коваленко Дмитрий. 





Re: Вопрос о сертификации Firebird

2009-11-27 Пенетрантность Kovalenko Dmitry



будет ли проводится сертификация Firebird по какому-либо
классу защищенности и доступа? (Например как oracle)


Кому жмет - берут RedDatabase и продолжают спать по ночам.


Ето который на FB2.1 основан? Буэ.

Его даже если освятить - не поможет :-)

Коваленко Дмитрий.

PS. И вспомнилось мне вспомнил про B+ Дерево ... И выругался я. 





Re: Археология. BIGINT и IB6.5

2009-11-20 Пенетрантность Kovalenko Dmitry



Подсовываем эту базу под IB6.
Там нет IB6.5. У него ODS10.1.


Ты так забавно отквотировал, что у меня моск навернулсо :)))

Коваленко Дмитрий. 





Re: Археология. BIGINT и IB6.5

2009-11-20 Пенетрантность Kovalenko Dmitry



Подсовываем эту базу под IB6.
Там нет IB6.5. У него ODS10.1.


Ты так забавно отквотировал, что у меня моск навернулсо :)))


а ты думаешь что ты тут один умеешь моск выносить? ;)


Кто здесь 

Коваленко Дмитрий. 





Re: Выходной формат запросов isql

2009-11-19 Пенетрантность Kovalenko Dmitry



А чего бы прям в Excel не данные не загружать?
Его же средствами импорта данных :-)

xls тоже вполне просто. :)
И для реализации Excel IRTDServer примерчик со стандартным для винды 
пакетом PyWin32 идёть.


Так шта можно и в ральном времени :D


Ну типа круто :-)

Интересно, какое соотношение по времени будет между протаскиванием данных 
через провайдер-ADO и твоё сооружение? :-)))


Про то, что у тебя не все типы данных можно будеть (безболезненно) 
протащить, я типа вслух промолчу. Угыгы.


Коваленко Дмитрий. 





Re: Выходной формат запросов isql

2009-11-19 Пенетрантность Kovalenko Dmitry




Интересно, какое соотношение по времени будет между протаскиванием данных 
через провайдер-ADO и твоё сооружение? :-)))
Думаю ежели для целей анализирования подойдёт импортперетаскивание через 
csv, то не думаю что это соотношение будет как-то критично. :)


Про то, что у тебя не все типы данных можно будеть (безболезненно) 
протащить, я типа вслух промолчу. Угыгы.

Да, думаю массивы не пролезут (надать как-нибудь проверить).
Но их и не очень понятно как в Ёксель, для анализировать, запихуевать. :)


Не, массивы это само собой. Хотя VBA (да и вообще, VB) с SAFEARRAY (если мне 
не изменяет память) работает зер гуд. Это в VBS - сплошной ахтунг.


Я в последнее время замарачивался на разношерстных кодовых страницах 
(включая ICU) в одной БД. И NONE-подключении.


Сценарий из категории Превед Медвед.

Но такое стоит делать только на FB и только на 2.5. И желательно в 
противогазе :


---
Масштабирование загружаемых нумериков у вас там как обрабатываются - небось 
через double? :-)


Коваленко Дмитрий. 





Re: Выходной формат запросов isql

2009-11-19 Пенетрантность Kovalenko Dmitry


Гы, ну никак подловить не удается :))

П.С. Вообще драйвер очень грамотно сделан. По крайней мере с точки зрения 
пользователя. :)


Дык. На сколько я в курсе его же, вроде, в родной тестовой системе FB юзают?

Что то мне кажется, что драйвер не может быть _очень_ граммотно сделан :-)

Хорошо сделан - поверю. Для каких-то конкретных сценариев.

А очень - вряд ли. Это слишком дорого. Там только на одной обратной 
совместимости - рехнешься :-)


И некоторые вещи надо обрабатывать на клиенте. Для того что бы они правильно 
работали.


А питонский драйвер - это по-моему чистый транслятор вызовов ISC API. Без 
заморочек выполнит работу любой ценой в любых условиях :-)


Он же по-моему до сих пор завязан на ibase.h (вот уж действительно реальное 
публик API) и статически линкуется с DLL клиента?
Если я все правильно, напутал читая в девеле ветку с обсуждением 
устаревшей isc_interepret.


Хотя, кажется Влад(?) говорил, что его собираются совсем оторвать от клиента 
и сделать по образу и подобию нет-провайдера.


Коваленко Дмитрий. 





Археология. BIGINT и IB6.5

2009-11-19 Пенетрантность Kovalenko Dmitry


Привет всем.

Берем базу от FB1.0 (ODS10.0)

Подсовываем под FB1.5

Создаем колонку с типом BIGINT. Создается без проблем. IBE говорит про неё 
тип BIGINT


Возвращаем базу обратно под FB1

IBE говорит что колонка все тот же BIGINT. Хотя, в FB1 нет такого типа.

Ok.

Подсовываем эту базу под IB6.

IBE снова говорит, что тип колонки - BIGINT

Ладно, с IBE все понятно.

---
Но я вот что думаю. Формально надо было в FB1.5 не позволять создавать 
BIGINT колонки для неродного ODS. Только для ODS10.1


---
Кстати, вот еще. По поводу http://www.ibase.ru/devinfo/prevver.htm

Там нет IB6.5. У него ODS10.1.

Полуторка может подключаться к базам IB6.5. И наоборот. Хотя, конечно, так 
работать не следует :)


---
Коваленко Дмитрий. 





Археология. IB 6.0.1 и ODS.

2009-11-18 Пенетрантность Kovalenko Dmitry


Привет всем.

http://www.ibase.ru/devinfo/prevver.htm

Я попробовал подсунуть IB v6.0.1.0 базы от
- IB5.1 (ODS 9.0)
- IB5.6 (ODS 9.1)

Ошибка при подключении - неподдерживаемые ODS.

Интересно, а IB 6.0.0.0 в природе существовал?

Может он мог подключаться к предыдущим ODS?

Коваленко Дмитрий. 





По поводу номера сборки FB2.5 RC

2009-11-18 Пенетрантность Kovalenko Dmitry


Привет всем вообще, персонально каждому.

Последний раз я пересобирал 2.5 - 9 ноября. Сборка 25784.

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


Может стоит хотя бы раз в день руками менять цифирку у RC?

А то некошерно как-то.

Коваленко Дмитрий. 





Re: Археология. IB 6.0.1 и ODS.

2009-11-18 Пенетрантность Kovalenko Dmitry



поначалу, в 6.0.1.0, действительно работа с ОДС 9 была
отрублена. Потом включили, вроде в 6.0.1.6.



Причем, как оказалось, такие гнусные действия применялись не только
к ОДС 9, но и к ОДС 8, т.е. принудительный апгрейд до 8.2, плюс
искажение blr.


Одним словом - сатанисты.

Пасиб, надо будет поискать этот 6.0.1.6 для глумления :-)

Коваленко Дмитрий. 





dialect 1 и NUMERIC(18,x)

2009-11-18 Пенетрантность Kovalenko Dmitry


Это опять я.

Я тут страшное открытие сделал.

Оказывается для баз первого диалекта можно создавать колонки с типом 
NUMERIC(16 ... 18,x). Начиная с IB6.


И тебе ничего за это не будет.

Это нормально или где ?

--
Самое прикольное, что Хвастунов по всей видимости эту фишку рубает.

И эксперт для таких мутантских колонок не дает точность/масштаб свыше 15

--
Коваленко Дмитрий 





Re: dialect 1 и NUMERIC(18,x)

2009-11-18 Пенетрантность Kovalenko Dmitry



Самое прикольное, что Хвастунов по всей видимости эту фишку рубает.

И эксперт для таких мутантских колонок не дает точность/масштаб свыше 15


В смысле, показывает.

Хотя не совсем он там рубает. Пойду порадую человека.

Коваленко Дмитрий. 





Re: Выходной формат запросов isql

2009-11-18 Пенетрантность Kovalenko Dmitry





А можно ли каким-нибудь хитрым образом заставить isql вернуть
результат запроса типа select .. from .. в удобочитаемом виде, типа
таблицы без разбиения по страницам, возможно с ограничением ширины
столбцов. Или в CSV, который бы потом в Excel можно было изучать?


И подумалось мне, после изучения питонскогоожоснахера, который показал Tonal 
:-)


А чего бы прям в Excel не данные не загружать?

Его же средствами импорта данных :-)

На крайняк можно накатать относительно несложный скрипт на VBS, который 
будет выгружать данные в том виде, какой душа пожелает.


Там конечно, в шесть строчек не ужмешься. Но пол-экрана, думаю, будет 
достаточно ... 24-дюймового монитора :-)))


Коваленко Дмитрий.




Re: Подключение c Windows к IB4.0 на unix'e

2009-11-15 Пенетрантность Kovalenko Dmitry



он тупит ...


Ну ты же не хуже меня знаешь, какой полет мысли бывает у юзеров :-)

Коваленко Дмитрий. 





Подключение c Windows к IB4.0 на unix'e

2009-11-14 Пенетрантность Kovalenko Dmitry


Привет всем.

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

База на IB4.0 на legacy unix system. ODS 8.0. Подключаются к ней под 
системным аккаунтом юникса (root)


1. Говорят, что типа существующие клиенты FB не могут подключаться к ней - 
I was able to attach to the database but firebird clients don't support ODS 
version 8 which is what is announcing the database


У меня на XPSP2 стоит IB4.0 (и ODS 8.0). Клиент от FB2.5 коннектится к ней 
без проблем.


Может там какая специфика у юникс-версии есть?

2. У IB4.0 на юниксе есть своя база с логинами/паролями? Или он только 
системные аккаунты юзает?


У виндовой версии isc4.gdb, ясный пень, есть.

А то озадачивающий тупит с вопросом - как с виндовс подключиться к этой базе 
под root-ом?


Может нафиг ROOT-а? Создать другого нормального юзера и под ним и 
коннектиться?


---
Вообщем, у кого есть (был) такой опыт - поделитесь, плиз.

Коваленко Дмитрий.
www.ibprovider.com 





Re: Они не поддерживаются производителем

2009-11-14 Пенетрантность Kovalenko Dmitry





а если серьезно, то сходи туда, поговори, и напиши новую статью.


Смысл? В сети, таких статей - вагоны. Дима Кузьменко регулярно пытается 
влиять на массы.


Когда речь встанет о бабле, там будут пох всякие статьи.

Где больше откат, туда и пойдут. А какой откат с FB?

---
Хотя, между нами девочками, я так понимаю, что русских приставов таки 
натягивают на FB-шную базу.


В том числе и в Липецке.

Правда программа там (была пару лет назад) - шо мой сегодняшний кошмарный 
сон с вурдалаками на аццком поезде.


Я могу себе позволить высказать такое мнение, потому что в 2001 участвовал в 
создании такого комплекса (аналог потом работал в недвижимости), который был 
зарублен как не проходящй по критерию откат :-)


Рубитель, я полагаю, сейчас мотает срок. Правда не за это.

Коваленко Дмитрий.

PS. В свете этого прошлого (не только моего, но и моего бати - у них там в 
70-80 было еще веселее), нынешние призывы нашего президента к 
высокотехнологичной экономике, вызывают только бу.





Re: Подключение c Windows к IB4.0 на unix'e

2009-11-14 Пенетрантность Kovalenko Dmitry


Спасиб... А с кем это ты разговаривал ? :)

И йа так и не понял - там можно завести обычного database-юзера (не 
системного) и коннектится к серверу с винды под ним?


Что то подобное в моем детстве было. Сервер был на BSD(?) и я к нему 
конектился (под тем же SYSDBA/masterkey) без проблем.


SYSDBA/masterkey там же есть?


но лучше уболтай переползать на что-нить поновее.


Ага.

Коваленко Дмитрий. 





Re: Re[2]: Подключение c Windows к IB4.0 на unix'e

2009-11-14 Пенетрантность Kovalenko Dmitry





SYSDBA/masterkey там же есть?



Ja-Ja, кемска волост. См. выше.


Вот это уже ближе к телу :)

Спасибо.

Отписался проклятым буржуинам :-)

Коваленко Дмитрий. 





Re: Они не поддерживаются производителем

2009-11-13 Пенетрантность Kovalenko Dmitry



И такую �...@рню печатают в одном из журналов Академии Наук Беларуси.


ну брось им в окно гранату. Ты ж там рядом.


Жжошь!

Коваленко Дмитрий. 





FB2.5 RDB$PROCEDURE_PARAMETERS

2009-11-12 Пенетрантность Kovalenko Dmitry


Гы, всем.

Я тут заглянул в RDB$PROCEDURE_PARAMETERS и меня порадовали увиденные 
изменения.


А где можно почитать про новые поля?

Коваленко Дмитрий. 





Re: к тяпнице

2009-11-07 Пенетрантность Kovalenko Dmitry


Привет всем.

Полез посмотреть в архив с мыслями а чо я делал ровно год назад?

Самая первая строчка в файле за 2008-11-07 - Красный день календаря. 
МазаФака


С празднегом вас, дарагие товарищи!

Usus.
Коваленко Дмитрий. 





Re: off: к тяпнице

2009-11-04 Пенетрантность Kovalenko Dmitry



Задорнов. Хоть не долюбливаю я его, но...

http://rutube.ru/tracks/1366519.html?v=dd80098047805617bb883acbd3358c7c


Не возжелай железа ближнего своего. USUS.

Коваленко Дмитрий. 





Потоки в FB2.5

2009-11-03 Пенетрантность Kovalenko Dmitry


Привет всем.

Тут вот мысль одна посетила. В процессе созерцания работы супер сервера.

А чего он как суетится с потоками - создает и уничтожает их по каждому чиху 
(?)


http://keep4u.ru/imgs/b/2009/11/04/ec/ecd6a78a4240d1397f273812e93dbe2d.jpg 
(70K)


Или это там такой маленький таймаут на время жизни бездействующего потока?

Судя по одновременному созданию и уничтожению - нифига подобного

Бум ждать FB3 с централизованным пулом потоков? :-)

Коваленко Дмитрий. 





Re: к тяпнице

2009-10-21 Пенетрантность Kovalenko Dmitry





Прочтите название первого продукта:) интересно что они имели ввиду:)

http://store.norton.com/v2.0-img/operations/symantus/site/promo/pd/_10/023936/navnis10_n360v3_RU.html


Моск сломал, потом поискал в гугле - что народ думает по этому поводу

Нашел за сегодняшнее число.
http://kouprianov.livejournal.com/127068.html

Меня что восхищает. Либо гугла конкретные ресурсы постоянно мониторит и 
индексирует (что вероятнее) либо эта махина весь инет так оперативно 
переваривает?


Хотя, с другой стороны, 12 часов прошло

Коваленко Дмитрий. 





Re: Странности афигенные с 2.1

2009-10-15 Пенетрантность Kovalenko Dmitry


НО - шас к базе подключаю ешё одну апликацию и вижу какбы снапшёт етих 
данных,
тоесть что имеется в момент подключения и ничего больше. Сделано всё да 
дельфе

с фибплюсами - если переоткриваю датасет, то тоже ничего нобого невижу.



Есть идеи ?


Коннектишься к другой базе.

Первыйнах!

Коваленко Дмитрий. 





Re: С почином ?

2009-10-14 Пенетрантность Kovalenko Dmitry



У мну вот автоматизированная сборка снашотов собрала 3.0.0.25754.

Дык что, теперь уж точно троечка ?

Ура-а-а !
--



Вот только не надо так сильно расслаблятсо

Родина все еще в опасности.

Коваленко Дмитрий.




Re: Firebird 1.0.3 не запускается на только что утсновленной XP SP3

2009-10-02 Пенетрантность Kovalenko Dmitry




После установки не запускается как сервис FB. Пишет буквально такие две 
вещи



Рантаймы от студии в системе по умолчанию отсутствуют по идее - может
проблема в этом?


Не, это же FB1

По идее должно завестись без проблем.

Коваленко Дмитрий.

PS. Это у меня Windows Mail тупит, или афтар реально пишет в мой топик? 





Re: Рестор через сервисы в FB2.5

2009-09-30 Пенетрантность Kovalenko Dmitry



Такое пожелание уже есть в трекере
http://tracker.firebirdsql.org/browse/CORE-2652


Предлагаю это считать контрольным изнасилованием моска разрабов.

Коваленко Дмитрий 





Re: До пятницы не дотерплю....

2009-09-27 Пенетрантность Kovalenko Dmitry




Microsoft меняет команду Windows Mobile

http://www.3dnews.ru/news/microsoft_menyaet_komandu_windows_mobile/

А глаза такие добрые добрые

Kovalenko Dmitry 





MIN_BYTE_PER_CHAR

2009-09-27 Пенетрантность Kovalenko Dmitry


Привет всем.

Я вот тут забрел в закоулки собственного кода и подумалосЪ

Это не очень настойчивая просьба, но в таблице кодовых страниц надо 
публиковать данные о минимальном количестве символов. Потому что на клиенте 
существуют преобразования, которые эту информацию задействуют.


Хотя с другой стороны, я уже больше полугода кладу и на информацию о 
максимальном количестве символов (это прошито в провайдере) и пока никто не 
жаловался :)


Коваленко Дмитрий

PS. ICU дает сведения, как о min, так и о max 





Re: MIN_BYTE_PER_CHAR

2009-09-27 Пенетрантность Kovalenko Dmitry



Я вот тут забрел в закоулки собственного кода и подумалосЪ


И чтобы два раза не вставать - нужна отдельная таблица с перечислением 
псевдонимов кодовых страниц.


Коваленко Дмитрий. 





Re: MIN_BYTE_PER_CHAR

2009-09-27 Пенетрантность Kovalenko Dmitry


И чтобы два раза не вставать - нужна отдельная таблица с перечислением 
псевдонимов кодовых страниц.


   RDB$TYPES чем не устроила ?


Во, блин.

Специально  ведь посмотрел в эту таблицу перед тем как написать

Но - смотрю в книгу и вижу фигу :-)

Надо было прокрутить вниз  :-

Коваленко Дмитрий. 





Re: Exceptions - пара вопросов

2009-09-26 Пенетрантность Kovalenko Dmitry



А красивый вариант
  exception e_adopt *||' VORGANIZATION';
я так понимаю, не светит.


Ясный пень. Сначала - кластеры.

Коваленко Дмитрий. 





Re: OFF/2. У Деда вроде днюха, а чета все молчат.

2009-09-24 Пенетрантность Kovalenko Dmitry


А чё заходить, тут место серьёзное (относительно :) ), клоуном становиться 
как-то несолидно :) Я регулярно лошу в спициятельно отведённом для этого 
месте, на www.auto.ru , в конфе Шофёрские Байки. Так что вы тоже, если чё 
;)


Плят.

Конец трагедии окончательно загублен.

Коваленко Дмитрий. 





Re: OFF/2. У Деда вроде днюха, а чета все молчат.

2009-09-22 Пенетрантность Kovalenko Dmitry



У Деда то днюха вроде как сегодня, если я ничего не путаю?


Дык, не в курсе мы :(

Но навсякий случай:

Деда, от имени все Атцов, поздравляю тебя!

Желаю дожить минимум до правнуков и при этом остаться в здравом уме ... ну и 
так далее :-)


Коваленко Дмитрий. 





Re: Temporary directories

2009-09-18 Пенетрантность Kovalenko Dmitry



Только вот что там с этим в 1.5 - не помню и даже смотреть не хочу.


Эту Раиску увижу, так блеват и кидат (с) Мартынко

Коваленко Дмитрий. 





Re: С праздником, товарищи !

2009-09-13 Пенетрантность Kovalenko Dmitry



С днем переполнения байта !


http://www.3dnews.ru/news/13_sentyabrya_den_programmista/

Вот так вот посмотришь на картинку и подумаешь - руки бы автору оторвал 
...


Коваленко Дмитрий.

PS. Предпочитаю отмечать другой день - 13 августа. День победы над багами 
:-)

PSS. C 98 года




Re: Подключение к БД Firebird 1.5.3 из MS SQL 2005

2009-09-11 Пенетрантность Kovalenko Dmitry



select count(*) from ais_dogovor
Где подкрутить, что не так?


А если выполнять запрос

select count(*) from AIS_DOGOVOR

тоже ошибка будет?

Коваленко Дмитрий. 





Re: Подключение к БД Firebird 1.5.3 из MS SQL 2005

2009-09-11 Пенетрантность Kovalenko Dmitry



Вопрос: где я и что не так делаю?!
Может где-то есть более свежая версия ODBC драйвера?


Не знаю :-)

А Gemini драйвер не пробовал? С ним вроде у народа все получалось.

Сам я в них - не капенгаген :-)

Коваленко Дмитрий.
www.ibprovider.com 





Re: Вопрос про [FB] data_page_manager

2009-09-10 Пенетрантность Kovalenko Dmitry




Я правильно понял, что есть две стратегии выделения места (под данные 
одной записи?) на data-страницах


2. если данные не могут поместиться, то выделяются orphan data-страницы 
+ 1 блок, который размещается по правилу #1.




Еще вопрос. Вторая стратегия отчасти обусловлена тем, чтобы на 
зарегистрированных data-страницах (на PP) не появлялись недоделанные 
блоки данных, которые могут начать парить моск при сканировании записей?


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


---
И еще, я правильно понял, что на DP регистрируется последовательный номер 
родительской PP?


Это дает какой то бонус по сравнению с регистрацией прямого индекса 
PP-страницы?


Коваленко Дмитрий. 





Re: Вопрос про [FB] data_page_manager

2009-09-10 Пенетрантность Kovalenko Dmitry


И еще, я правильно понял, что на DP регистрируется последовательный номер 
родительской PP?


А, ну да. На DP регистрируется её последовательный номер, через который 
потом вычисляется PP


Типа, если мы будем хранить прямой номер PP, то прийдется еще хранить и 
индекс слота на PP. Два байта экономится... Хотя можно и не хранить :)


Коваленко Дмитрий. 





Re: Вопрос про [FB] data_page_manager

2009-09-10 Пенетрантность Kovalenko Dmitry




   Большие записи (р-р которых больше р-ра страницы) размещают свой 
хвост
на отдельных выделенных страницах данных (DP), а начало записи помещается 
как
обычная запись на нормальную DP. Выделенные под хвост DP не учитываются на 
PP

т.к. их всё равно не возможно адресовать, не трогая начало записи.

   Т.е. если запись имеет размер N*P + M, где P - page size, то её хвост 
будет размещён
на N выделенных страницах и начало, размером M, будет помещено на общую 
DP.


Ну да.

Я к тому что если начать размазывать запись на фрагменты по существующим 
(нормальным/зарегистрированным на PP) DP, то будет период существования 
недоделанных записей.


То есть
1. Блокируем DP_1. пишем кусок на DP_1. Разблокируем DP_1
2. Блокируем DP_2.пишем кусок на DP_2. Разблокируем DP_2
...
N. Блокируем DP_N.пишем кусок на DP_N. Разблокируем DP_N

Если в процессе кто-то начнет читать/анализировать эти DP_x страницы, то он 
обнаружит недоделаную запись. Кто именно - я ахез.


А текущая стратегия номер #2 гарантирует что недоделанные (хвостовые) 
куски появлятся не будут. И параллельно работающие алгоритмы не будут 
впадать в ступор, если вдруг начнут лезть к этим недоделанным кускам.


   Нет. На DP записывается её собственный логический (последовательный) 
номер
(см. Ods::data_page::dpg_sequence). Он используется, например, для 
валидации.

Ну и для разборов полётов тоже, есс-но.


Ну да... Но что бы потом перейти к родительской PP, надо
- либо перебирать список PP
- либо юзать и поддерживать в актуальном состоянии in-memory копию этого 
списка (оформленную в виде массива). Это у вас так сделано.


А так - прочитали на DP номер родительской PP и все прыгаем на неё без 
всяких заморочек.


Коваленко Дмитрий. 





Re: Вопрос про [FB] data_page_manager

2009-09-10 Пенетрантность Kovalenko Dmitry




А так - прочитали на DP номер родительской PP и все прыгаем на неё без 
всяких заморочек.


А в чём заморочка?


Да нету её. Я просто пытаюсь понять тайный смысл хранения последовательного 
номера data-страницы. Отбрасывая в сторону разборы полётов и валидацию.


Что-то мне подсказывает, что его ценность равна ломанному яйцу :)

Коваленко Дмитрий. 





Re: Вопрос про [FB] data_page_manager

2009-09-08 Пенетрантность Kovalenko Dmitry



Привет всем. А известным личностям - персонально :)


   Совсем персонально ты уже, видимо, боишься :)


Ага - я потом очнулся, чую били ногами. Хорошо что не по голове :-)

   Если только insert'ы - да. Однако под бекверсии и фрагменты это место 
вполне

может быть задействованно позже.


Да это понятно... Про read-only базы я молчу :-)


В целом, там (в dpm.cpp) код какой-то испуганный. У меня вот мысль какая. Ща 
изложу, может сам пойму - что возможно гуано придумал.


На pointer-page (PP) хранить
- сведения о размере доступного пространства на data-page
- бит data-page (DP) заблокирована для alloc-операции

При выделении места (с привлечением pointer-page)
- эксклюзивно блокируем PP
- ищем data-page которая не заблокирована для alloc-операции и имеет 
достаточно места

- устанавливаем бит заблокирована для alloc-операции
- освобождаем PP
- эксклюзивно блокируем DP (на которую мы нацелились)
- выделяем на ней место
- освобождаем DP
- обратно эксклюзивно блокируем PP
- блокируем DP на чтение (SH-блокировка, вот тут наверное надо циклически 
шаманить (с таймаутами) так же как сейчас в mark_full)
- сбрасываем на PP наш битик заблокировано для alloc-операции, обновляем 
данные о доступном пространстве на DP

- освобождаем PP, DP

Вся фигня в этом alloc-битике. Если он застрянет, то data-страница будет 
потеряна для повторного использования. Но я так полагаю что это не самое 
страшное что могет произойти с БД.


Конечно и PP теперь будет описывать меньше data-страниц. Но зато теперь 
получается более точное зондирование и нормальная синхронизация


Вот. Вывалил кучу гуана в ответ на будьте здоровы :-)

Коваленко Дмитрий. 





Re: Вопрос про [FB] data_page_manager

2009-09-08 Пенетрантность Kovalenko Dmitry





Вот. Вывалил кучу гуана в ответ на будьте здоровы :-)


   Ты с какой проблемой борешься-то ? Или как обычно - со свободным 
временем ? :-D


Я на пенсии, можно и пострадать над тем, на что раньше времени не хватало 
:-)


Коваленко Дмитрий. 





Re: Вопрос про [FB] data_page_manager

2009-09-08 Пенетрантность Kovalenko Dmitry





   Я к тому, что перед тем как предлагать решение проблемы, хорошо бы
её для начала обозначить и показать, в чём именно проблема...


Список (по мелочам) пока составляется :-)

В остальном, это решение не проблемы, а мой взгляд на данный предмет. 
Приспособленный к жизни или нет - пока не знаю.


Но от вашей стратегии блокировок в DPM - меня слегка плющит. Не чувствую в 
ней божественной искры. Только ужоснахер. Us.


Коваленко Дмитрий. 





Re: Как правильно организовать работу.

2009-09-07 Пенетрантность Kovalenko Dmitry





В случае наличия соединений файл переименовать система не даст.


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


Коваленко Дмитрий. 





Re: Как правильно организовать работу.

2009-09-07 Пенетрантность Kovalenko Dmitry



В случае наличия соединений файл переименовать система не даст.


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


Как? Тем более при наличии на сервере зависших соедениений?


Переходи на 2.0.1 (это последнее что я мучал в реальном мире) - там процессы 
классика сами (по умолчанию) отваливаются.


А у 1.5 надо чей-то в конфиге указывать, и оно вроде как тоже начнет 
отваливаться.


Коваленко Дмитрий. 





Re: EXTRACT(QUARTER...

2009-08-26 Пенетрантность Kovalenko Dmitry





или есть что-то проще?


{fn QUARTER (date_exp)}

А кто будет спорить - получит в глаз ;-)

Гыгы.

Коваленко Дмитрий. 





Re: Что-то давно у нас не было пятницы ? :)

2009-08-21 Пенетрантность Kovalenko Dmitry


Вот она какая, машина Тьюринга.

http://www.rsdn.ru/forum/humour/3510761.1.aspx

Угыгыгы.

Коваленко Дмитрий. 





Re: Позднее зажигание

2009-08-18 Пенетрантность Kovalenko Dmitry





Дык вот, о чем это я: эта сторонняя САПР (1999 г. выпуска, писана
каким-то студентом еще при помощи BDE) с библиотекой от 2.5 в упор не
хочет запускаться. Говорит про какое-то обращение к памяти.


а где именно? в клиенте сервера или в самом приложении/BDE?


Лечиться просто: включаю имя EXE-файла в DEP - и оно работает.

Вопрос: а шо поменялось с 2.0, шо старые приложения хотят DEPа даже на
одноядерных машинах ?


появились отложенные операции.

удалили утечку памяти.

да дофига чего там внутрях поменялось. но интерфейс вроде как не трогался.

может фигня какая с этими, как их, stmt_allocate2

Коваленко Дмитрий. 





Re: Правила для кэша запросов

2009-08-13 Пенетрантность Kovalenko Dmitry



Привет всем.

Я вот тут озадачился вопросами конфигурации пула запросов, и родил три 
ключевых параметра


Отпустили в свободное плавание.

http://www.ibprovider.com/rus/news/n_090813.html

Аминь.

Коваленко Дмитрий. 





про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Kovalenko Dmitry


С пятницей.

Вспоминил про одну старую фичу. Которую я, по злобе душевной,  заныкал в 
ожиданиях исправления Адрианой багов с ICU-чарсетами.


База на IB4.0
Клиент FB2.5

Запрос
---
select up1.rdb$user,
up1.rdb$grantor,
up1.rdb$relation_name,
up1.rdb$field_name,
up1.rdb$privilege,
up1.rdb$grant_option,
up1.rdb$user_type,
0
from rdb$user_privileges up1
where ((up1.rdb$field_name is not null) and (up1.rdb$field_name''))

union all
select up2.rdb$user,
up2.rdb$grantor,
up2.rdb$relation_name,
rf2.rdb$field_name,
up2.rdb$privilege,
up2.rdb$grant_option,
up2.rdb$user_type,
1
from rdb$user_privileges up2
join rdb$relation_fields rf2
on (up2.rdb$relation_name=rf2.rdb$relation_name and
((up2.rdb$field_name is null) or up2.rdb$field_name=''))
---

Выполняем его в IBE и делаем выборку всех записей (Fetch ALL)

Получаем срабатывание assert-а
// We must receive isc_req_sync as we did fetch after EOF
fb_assert(statement-haveException() == isc_req_sync);

 msvcr80d.dll!_NMSG_WRITE(int rterrnum=10)  Line 198 C
 msvcr80d.dll!abort()  Line 59 + 0x7 bytes C
 gds32.dll!fb_abort()  Line 35 + 0x8 bytes C++
gds32.dll!clear_stmt_que(rem_port * port=0x028a6f10, int * 
user_status=0x0039bd3c, Rsr * statement=0x028a119c)  Line 4853 C++
 gds32.dll!batch_dsql_fetch(rem_port * port=0x028a6f10, rmtque * 
que_inst=0x028a0ad0, int * user_status=0x0039c160, unsigned short id=5) 
Line 5006 + 0x11 bytes C++
 gds32.dll!receive_queued_packet(rem_port * port=0x028a6f10, int * 
user_status=0x0039c160, unsigned short id=5)  Line 6231 + 0x1b bytes C++
 gds32.dll!REM_fetch(int * user_status=0x0039c160, Rsr * * 
stmt_handle=0x028a100c, unsigned short blr_length=0, unsigned char * 
blr=0x028a0d60, unsigned short msg_type=0, unsigned short msg_length=158, 
unsigned char * msg=0x028a0cac)  Line 1842 + 0x15 bytes C++
 gds32.dll!isc_dsql_fetch_m(int * user_status=0x0039c160, void * * 
stmt_handle=0x04f2d8a8, unsigned short blr_length=45, char * blr=0x028a0d60, 
unsigned short msg_type=0, unsigned short msg_length=158, char * 
msg=0x028a0cac)  Line 3139 + 0x53 bytes C++
 gds32.dll!isc_dsql_fetch(int * user_status=0x0039c160, void * * 
stmt_handle=0x04f2d8a8, unsigned short dialect=1, const XSQLDA * 
sqlda=0x04fda9a0)  Line 3021 + 0x3a bytes C++
 _IBProvider_x3_d.dll!ib_v5::t_ib_statement_v5::fetch(db_obj::t_db_row * 
const row=0x0454df28)  Line 647 + 0x4f bytes C++


здесь gds32.dll - это переименованный fbclient.dll


В трекер писать?

Коваленко Дмитрий. 





Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Kovalenko Dmitry





в) а что такое IB4.0 ?


+ 1024

Дейсвительно, шо такое IB ? Часом не сокращение от имени вражеского
программного продукта InterBase, разработчики которого присвоили
кодировкам чарсетов коды в системных таблицах, отличные от наших ?


Между нами девочками, я узнал про это самым последним. Хотя поддержку 
чарсетов тестировал и там и там. Был удивлен, узнав что оказывается там 
какие-то конфликты есть.



Дык какого куя мы должны поддерживать древние (не, не древние -
ископаемые) версии вражеского продукта ?


Не, ну вы конечно можете этого не делать. И не делаете. А мне - это пока 
интересно.


И, что радует, мне не нужно согласовывать свои интересы с кем-то :-)

Коваленко Дмитрий. 





Re: про клиента FB2.5 и IB4.0

2009-07-24 Пенетрантность Kovalenko Dmitry





А мне - это пока интересно.


Слово пока утешает. Некрофилы нам не нужны :-)


Ничего ты не понимаешь в колбасных обрезках - это современная археология :)

Коваленко Дмитрий. 





Re: Re[2]: Что-то давно у нас не было пятницы ? :)

2009-07-23 Пенетрантность Kovalenko Dmitry



компилятор BCB5 прямо рвет VC8 как тузик грелку. Я валяюсь. Угыгыгы.



А травкой от GNU ты не балуешься? Или гнутый твой провайдер переварить
не могёт?


Да могет наверное, но не балуюсь :)

Ленивый я. И страшно консервативный.

---
Коваленко Дмитрий. 





Re: О популярности и известности Firebird

2009-07-23 Пенетрантность Kovalenko Dmitry



А потом мы тут удивляемся, чего это про FB никто не знает и не
слышит :)


Да пусть они себя убъют об стену.

Коваленко Дмитрий. 





Re: Что-то давно у нас не было пятницы ? :)

2009-07-23 Пенетрантность Kovalenko Dmitry



У студии включена оптимизация

там вообще-то много всяких галок на тему оптимизации


Да я их все прокурил вроде. Выбрал оптимальные (которые йа понял)

# compiler options 
# release
#  /O2  max speed
#  /Oi  generates intrinsic functions
#  /GL  whole program optimization
#  /MD  multithreaded run-time library

# linker options --
# /LTCG global optimizations

У билдера оптимизацию не включал - бо в детстве наступал на грабли :)


а что профайлер говорит? в твоем коде тормоза или в СРТ ?


Оххх.. Снес я его - бо у меня от него моск взорвался (Intel тюнер)

Но стопудово - тормоза в STL-е

Фигово оно с памятью работает.


У BCB5 разрешено встраивание инлайнов + по мелочи.

дъявол всегда в мелочах прячется (ц)


Ага.

Коваленко Дмитрий. 





  1   2   3   4   5   6   7   8   9   10   >