powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Синтакс SPL. Описание < Реальность
7 сообщений из 7, страница 1 из 1
Синтакс SPL. Описание < Реальность
    #33310327
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Изучая чужие SPL коды я наткнулся на то, что синтаксический анализатор SPL пронимает то, что по документации понимать не должен:
1) Работают "сишные" комментарии /* */

2) Работает "сишный" формат операции проверки на равенство if (a==b) then ...

Отсюда вопросы - никто не знает, откуда взялись эти сюрпризы? И какие ещё недокументированные фичи кроются в SPL?

BTW, IDS 7.31, Sun-техника.
...
Рейтинг: 0 / 0
Синтакс SPL. Описание < Реальность
    #33310793
Valentyn Pidburtnyi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Других фич не знаю (если честно, не знал и этих:)).
Могу только подтвердить, что указазанные конструкции у нас тоже работают.

IBM Informix Dynamic Server Version 9.40.UC4
...
Рейтинг: 0 / 0
Синтакс SPL. Описание < Реальность
    #33310846
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо <> можно юзать !=

-----------------------------------------------------------
Решительный шаг вперед -- результат хорошего пинка сзади
...
Рейтинг: 0 / 0
Синтакс SPL. Описание < Реальность
    #33311143
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это и не удивительно, если учесть, что почти весь код Информикса написан на Си.
Я с этим сталкивался ранее, особенно поимел геморою с теми самыми "сишные" комментарии /* */
Как оказалось, на тот момент это был баг 133673, но не уверен, что таких багов с недокументированными фичами больше не осталось. Так что применять их не советую.
Вот нашел тот пример от 2002 года, демонстрирующий баг
------------
Create DATABASE test;
-- Нормальная процедура --
CREATE PROCEDURE proc1( val CHAR ) RETURNING CHAR;
DEFINE src CHAR( 2 );
DEFINE ret CHAR;
END PROCEDURE;
-- Нормальная процедура (хотя комментарий неразрешенный) --
CREATE PROCEDURE proc2( val CHAR ) RETURNING CHAR;
DEFINE src CHAR( 2 );
DEFINE ret CHAR;
/* '' */
END PROCEDURE;
-- Нормальная процедура (законный коментарий и одна кавычка внутри) --
CREATE PROCEDURE proc3( val CHAR ) RETURNING CHAR;
DEFINE src CHAR( 2 );
DEFINE ret CHAR;
{ ' }
END PROCEDURE;
--
-- Плохая процедура (с одинарной кавычкой <'> и нечетным их числом в незаконных комментариях) --
--
CREATE PROCEDURE proc_bad( val CHAR ) RETURNING CHAR;
DEFINE src CHAR( 2 );
DEFINE ret CHAR;
/* ' */
END PROCEDURE;
--
-- Таблица создается только для того, что бы видеть операторы после процедуры
--
create table customer
(
customer_num serial not null ,
fname char(15),
lname char(15)
);
insert into customer values(0,'123456','7890');
insert into customer values(0,'23456','890');
------------------------------------------
-- Procedure list (IDS 7.30+)
------------------------------------------
select procname[1,18]
,procid
,owner[1,8]
,substr(mode,1,2) mode
,codesize
,datasize
from sysprocedures
where procname matches 'proc*'
;
...
Рейтинг: 0 / 0
Синтакс SPL. Описание < Реальность
    #33311162
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисВместо <> можно юзать !=

Почти всю сознательную жизнь это применял.
В доке по SQL таких примеров тоже пруд-пруди. Сильно удивился.
Специально полез в доку и нашел, что это все таки законный для Informix оператор :)
Стр.4-248, Relational Operator, IBM Informix Guide to SQL: Syntax
...
Рейтинг: 0 / 0
Синтакс SPL. Описание < Реальность
    #33311215
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis
Специально полез в доку и нашел, что это все таки законный для Informix оператор :)
Стр.4-248, Relational Operator, IBM Informix Guide to SQL: Syntax
Я знаю :), я не говорил что они незаконные. Просто в доке забыли (не успели) описать некоторые вещи.

http://publib.boulder.ibm.com/infocenter/ids9help/index.jsp?topic=/com.ibm.sqls.doc/sqls1074.htm

= or ==
Equal to

<> or !=
Not equal to
...
Рейтинг: 0 / 0
Синтакс SPL. Описание < Реальность
    #33311349
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем ответившим.

2Журавлев Денис

В родной документации к нашему антиквариату (7.31) Приведенный вами фрагмент выглядит так:

Informix Guide to SQL. Segments. 4-161Relational Operator
A relational operator compares two expressions quantitatively. Use the
Relational Operator segment whenever you see a reference to a relational
operator in a syntax diagram.
Syntax
Each operator shown in the syntax diagram has a particular meaning.
<
<=
>
<>
=
>=
!=
+
Relational Operator Meaning
< Less than
<= Less than or equal to
> Greater than
= Equal to
>= Greater than or equal to
<> Not equal to
!= Not equal to
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Синтакс SPL. Описание < Реальность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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