powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Добавление foreign key
25 сообщений из 52, страница 2 из 3
Добавление foreign key
    #40117492
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
во-вторых, как я уже сказал, индекс индексирует записи и версии. У тебя в записи null, к столбцу сделан default.
Понятно что при select будет выводиться default.
При построении индекса (и проверке FK) движок видит ровно то же самое - значение из default.
И это правильно.


kdv
В третьих, даже если Влад написал, что это таки-работает
Сначала об этом написал ДЕ 22405321

kdv
индексировать дефолт (определение, а не запись) как-то неправильно
Всё работает так, как будто при создании not null поля с default был сделан update с этим default.
Так что всё в порядке и никакой "веселухи" ты не получишь :)
Проверь, только не с мультибайтными варчарами - там есть небольшой баг, как выяснилось.

kdv
А вот если мы грохнем default, вот будет веселуха для записей, где остался null.
Не будет веселухи. Тот формат, в котором был задан default (и создано поле) никуда не исчез и значение default из него и будет использовано для таких полей.

Если очень хочется подробностей, можешь перечитать это
https://sourceforge.net/p/firebird/mailman/message/23974402/
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117512
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в чарсете потому что FK?
Без default баг тоже воспроизводится?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117518
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad

Так что всё в порядке и никакой "веселухи" ты не получишь :)
Проверь, только не с мультибайтными варчарами - там есть небольшой баг, как выяснилось.


- А кто у нас муж?
- Волшебник.
- Был неправ, вспылил.

Вообще интересно, сейчас какое-то увлечение мультибайтными чарсетами. Это действительно по жизни многим нужны хитрые буковки или на всякий, из серии - оптимист изучает английский, пессимист китайский...
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117531
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка,

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

Ха-ха. Оборжаться. Решил проверить.
Код: sql
1.
alter table test add tst2 varchar(5)


коммит, селект *.
Выдает записи (добавленные раньше) со столбцом tst2 null.
Код: sql
1.
alter table test alter tst2 set default '1'


коммит, селект *
шиш. в tst2 NULL !!!

Ну ладно.
Код: sql
1.
alter table test add tst3 varchar(5) default '1'


коммит
select * from test
ОПЯТЬ ВСЁ NULL. ФБ 3.0.7. Я как-то не понимаю.
Код: sql
1.
alter table test add tst4 integer default 1


опять все записи с null, ничего на default не заменяется.

Что происходит? :-)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117538
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишкаВообще интересно, сейчас какое-то увлечение мультибайтными чарсетами.
Сейчас? Вообще-то андроид юникодный, там только в utf8 и можно работать. Я для себя это выяснил еще в 2013 году, когда на IBLite делал приложение для мобилы.
Собственно, как только прилада делается более чем для одного языка - всё, нужен юникод, а в юникоде тебе пофиг, мультибайтный чарсет будет использоваться, или нет.
(я бы даже сказал, что старая фишка ИБ (и ФБ) когда 2 столбца могут иметь разные чарсеты, сейчас не нужна и вредна. Базу надо тупо в utf8 создавать, и всё)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117545
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> Что происходит? :-)

Не коммитишь, наверное.
Стареешь, хватку теряешь...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117550
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все мозги разбил на части,
Все извилины заплёл
И Канатчиковы власти...
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117554
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Код: sql
1.
alter table test alter tst2 set default '1'



коммит, селект *
шиш. в tst2 NULL !!!
А какого "шиша" там не должен быть нулл ???
Поле позволяет нуллы ? Ты вставлял в него что-то другое ?

У ТС кардинально другая ситуация - у него поле NOT NULL
NOT NULL
ы ?

kdv
Что происходит? :-)
У меня есть версия, но я пока что не буду её озвучивать.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117555
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Проблема в чарсете потому что FK?
Нет.

Гаджимурадов Рустам
Без default баг тоже воспроизводится?
Баг про default значение.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117568
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

тьфу, чьорт.

p.s. нет, версия твоя совсем неправильная.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117569
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

всё перепроверил - да, проблем с индексом нет (если дропнуть default, и даже not null) - для отсутствовавших столбцов ищется default и после его (и not null) удаления. Кривых результатов нет.

Был неправ в своих теоретизированиях.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117572
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv

p.s. нет, версия твоя совсем неправильная.


В смысле не VSOP, а XO? :)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117576
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка,

если бы он предположил "переутомился" или "старческий маразм", то угадал бы.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117582
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Старый плюшевый мишка,

если бы он предположил "переутомился" или "старческий маразм", то угадал бы.


Как я тебя понимаю...
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117586
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

ура, ты возвращаешь мне веру в людей :)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117587
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
kdv
Старый плюшевый мишка,

если бы он предположил "переутомился" или "старческий маразм", то угадал бы.


Как я тебя понимаю...
Рано ему ! Низзя ! ;)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117591
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

трезвость - норма жизни, кароч...
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117612
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
kdv,

ура, ты возвращаешь мне веру в людей :)


А я?

Знаешь, при всём моём ёрничаньи я к вам испытываю глубочайшее уважение. Это манера речи такая. Она всегда такая была, но с возрастом речи становится всё меньше, а манеры всё больше. Типа пытаюсь создать атмосферу междусобойчика, где взаимопонимание мотивации допускает больше вольностей, чем на периметре обороны от внешнего мира. Особенно впечатляет просто фантастическая оперативность когда проблема изложена внятно и предоставлен воспроизводимый пример. И так с разработчиками FB было всегда. Однажды, когда я оказался с разбитым корытом вместо базы, уже не помню из-за чего, мне с помощью Димы Еманова Марк через несколько часов собрал эксклюзивный билд, позволивший вылезти из этой жопы. Такое не забывается.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117654
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
А какого "шиша" там не должен быть нулл ???
Поле позволяет нуллы ? Ты вставлял в него что-то другое ?

а вот тут я что-то засомневался про нашу правильность. В стандарте нет ничего про nullable / not null, там просто добавляемое поле должно принимать значение дефолта (при отсутствии дефолта - NULL).
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117693
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr> а вот тут я что-то засомневался про нашу правильность.
dimitr> В стандарте нет ничего про nullable / not null, там просто
dimitr> добавляемое поле должно принимать значение дефолта
dimitr> (при отсутствии дефолта - NULL).

В цитате про уже имеющие записи, а не новые,
так что всё корректно. А вот для новых записей
(и нового поля) при отсутствии NOT NULL -
поведение некорректное, ИМХО.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117694
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad> Баг про default значение.

Ясно, спасибо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117700
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
Знаешь, при всём моём ёрничаньи я к вам испытываю глубочайшее уважение.
И это взаимно.

Я мало отвечаю на твои письма, потому что редко имею что добавить (или возразить) :)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117713
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr
hvlad
А какого "шиша" там не должен быть нулл ???
Поле позволяет нуллы ? Ты вставлял в него что-то другое ?

а вот тут я что-то засомневался про нашу правильность. В стандарте нет ничего про nullable / not null, там просто добавляемое поле должно принимать значение дефолта (при отсутствии дефолта - NULL).
Ну поднимай тогда эту тему заново.
Логика есть в обоих подходах, обратная совместимость тоже имеет своё значение.
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117741
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
Вообще интересно, сейчас какое-то увлечение мультибайтными чарсетами. Это действительно по жизни многим нужны хитрые буковки или на всякий, из серии - оптимист изучает английский, пессимист китайский...


винда не панацея
как сказали андроид utf8, на линухе вот тож utf8
Код: plaintext
1.
2.
3.
$ locale
LANG=ru_RU.UTF-8
...
все что в вебе тоже в utf8 поголовно
api всякие туда же
какой смысл кодировки туда сюда гонять

если мультиязычность маячит то вообще без вариантов
даже если не маячит - вариант "на всякий" тоже вариант
лет 10 мин бд только в utf8, ну кроме легаси (и тут коннект в utf8)
...
Рейтинг: 0 / 0
Добавление foreign key
    #40117775
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос возник, который, возможно, и не касается сабжа, но всё же: движок при
сравнении значений полагается на то, что хранящийся VARCHAR имеет правильное
дополнение хвоста или нет? То есть если я прямо в базу положу, VARCHAR,
дополненнный не нулями, а случайным мусором, он в индекс попадёт с этим мусором?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Добавление foreign key
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (6): Анонимы (4), Bing Bot, Yandex Bot 1 мин.
x
x
Закрыть


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