The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

OpenNews: Предварительная версия 1С:Предприятие 8.1 для Linux, opennews (??), 19-Июл-06, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


3. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от sash (??), 19-Июл-06, 14:07 
Ваш пример не понятен.

Получается для якобы "case-insensitive" нужно хранить только прописные буквы?

по мне надо уметь сделать что-то вроде:

(это только пример)
create table test (test TEXT NOT NULL);
insert into test values ("ТеСтоВая стРокА");
select * from test where test="тестовая строка";
drop table test;

А для postgres как понимаю надо делать что-то вроде:

"
You could simply use lower() or upper() in your query constraints:
    .... WHERE lower(column_name) = lower('search_value')

Use the ILIKE operator (case insensitive LIKE):
    .... WHERE column_name ILIKE '%search_value%'
"

не всегда можнно воспользоваться ilike. и тогда получается что можно выбрать из таблицы только прописные символы, или например делать два прохода :) в первом находить индексы нужных данных, а за второй их выбирать as is.

Вообщем 1C сделало то что посчитало нужным.

Ответить | Правка | Наверх | Cообщить модератору

4. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от GateKeeper (??), 19-Июл-06, 14:14 
пример выше позволяет получить collation всего storage, совместимый с русскоязычными символами. Это позволит Вам делать следующее:
insert into test values('ТеСтОвАя СтРоКа');
select * from test where lower(test)='тестовая строка';

Что будет выбирать ИСХОДНУЮ СТРОКУ, проверяя при этом ее совпадение с условием, что lower(ИСХОДНАЯ СТРОКА)='тестовая строка'

Иначе как же вы работаете с примерами, например, тех же LIKE? Он же не выбирает ТОЛЬКО ТО, что вошло в конкретный указатель в шаблоне LIKE ?

Ответить | Правка | Наверх | Cообщить модератору

6. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от sash (??), 19-Июл-06, 15:04 
бррр. не очень понял.

LIKE выбирает все что попало под шаблон.

а выбирать получается надо так (не знаком с синтаксисом lower, но судя по мануалу с postgres.org lower(ИМЯ_СТОЛБЦА) уменьшать будет совсем не значение выбираемого столбца:
"
Table 9-5. SQL String Functions and Operators
lower(string)    text    Convert string to lower case    lower('TOM')    tom
"
хотя здесь могут быть варианты. :) )

select * from test where lower(test)=lower("ТесТ");

Так как вы же не знаете какие символы вам на входе попадуться. :)

Ответить | Правка | Наверх | Cообщить модератору

9. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от GateKeeper (??), 19-Июл-06, 16:32 
squid=# select * from "some" where lower(name) like lower('%aBcD%');
  name  
--------
AbCdEf
(1 row)

squid=# select * from "some" where name ilike '%aBcD%';
  name  
--------
AbCdEf
(1 row)

Я не понял, с чем у Вас проблемы касательно регистронезависимой выборки? (тут пример в латинице, но с правильно инициализированным storage аналогично будет и в кирилице).

Ответить | Правка | Наверх | Cообщить модератору

5. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от nobody (??), 19-Июл-06, 14:48 
использование lower/upper имхо самый простой и довольно действенный путь
в pg индекс по lower/upper строится без проблем
никто не отменял пользовательских типов (примеры в contrib)
на мой взгляд 1ц сделали странный ход в виде собственноручно пропатченного pg. где гарантия того что они будут выкладывать сборки для всех платформ, на которых может работать pg (если у меня уже давно пг крутится на fbsd/solaris/etc, то зачем мне разводить зоопарк)?
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

7. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от sash (??), 19-Июл-06, 15:06 
А у них же на сайте написано вроде что pg - linux only.

Не самый простой путь. :) Мне кажеться в 1С не дураки программисты, чтобы заставить компанию завязаться на поддержку сторонней БД в своем продукте.

Ответить | Правка | Наверх | Cообщить модератору

8. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от nobody (??), 19-Июл-06, 15:45 
в том и дело.., создается впечатление, что программисты в 1ц слишком умные (жадные?)
Ответить | Правка | Наверх | Cообщить модератору

18. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от buzi (??), 20-Июл-06, 11:06 
программисты программируют а не управляют компанией.. и их мнение обычно учитывается только на этом уровне... направление развития выбирают не программисты.. мне кажется здесь дело в лицензировании.. сколько клиентских лицензий для MS SQL сервера нужно купить? правильно - одну... а конечных клиентов на самом деле хоть сотни...
Ответить | Правка | Наверх | Cообщить модератору

22. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от Aleksey (??), 20-Июл-06, 14:49 
Вы не совсем правы. В лицензии к MS SQL написано, что при покупке пользовательских лицензий необходимо ориентироваться на число реальных пользователей, работающих с базой (независимо от того с помощью каких технических средств эти пользователи отстранены от СУБД). Т.е. если у вас есть Web-приложение, которое, через PHP работает с БД вы должны купить не одну лицензию, а столько сколько будет работать с Web-сайтом (даже если на сервере будет заведен для этого всего один пользователь). В случаях, когда число пользователей определить невозможно (для сайтов в Интернете) вы должны купить лицензию по числу процессоров (которая стоит пара тысяч долларов). Это если по правилам.
Ответить | Правка | Наверх | Cообщить модератору

20. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от Vladimir Sitnikovemail (?), 20-Июл-06, 12:58 
Да, да. Полностью согласен.

Товарищи, похоже, не знали о "Indexes on Expressions" ( http://www.postgresql.org/docs/8.1/static/indexes-opclass.html ) и о "Operator Classes" ( http://www.postgresql.org/docs/8.1/static/indexes-opclass.html )

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

53. "Предварительная версия 1С:Предприятие 8.1 для Linux"  +/
Сообщение от Nikolay (??), 05-Авг-06, 01:10 
>Да, да. Полностью согласен.
>
>Товарищи, похоже, не знали о "Indexes on Expressions" ( http://www.postgresql.org/docs/8.1/static/indexes-opclass.html ) и
>о "Operator Classes" ( http://www.postgresql.org/docs/8.1/static/indexes-opclass.html )

А вот с опклассами-то как раз и загвоздка :-) Они ж тока для ASCII (если не ошибаюсь)

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру