|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
Привет. Случайно заметил ошибку в тексте sql который sqlite кушал без исключения. Код: sql 1.
в таблице поле id есть, но условие к нему дописать забыли. почему это работает и какое условие в этом случае применяется? В oracle ругается SQL> select * from tttt where id; select * from tttt where id ORA-00920: неверен реляционный оператор -- ~PPA() {} // ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 12:40 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
PPA, Код: sql 1.
аналог Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 16:36 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
pit_alex, Версия похоже на правду - а это документировано или просто подобрано методом тыка? sqlite> CREATE TABLE t(id int); sqlite> select count(*) from t; 0 sqlite> insert into t(id) values (0); sqlite> insert into t(id) values (1); sqlite> select * from t; 0 1 sqlite> select * from t where id; 1 sqlite> insert into t(id) values ('xxxx'); sqlite> select * from t where id; 1 sqlite> insert into t(id) values (2); sqlite> insert into t(id) values (3); sqlite> select * from t where id; 1 2 3 sqlite> select * from t; 0 1 xxxx 2 3 sqlite> ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 18:39 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
pit_alex, Спасибо. сходится. sqlite тут зачем-то неявно кастит к bool проверил в mysql - он тоже такой sql выполняет - разработчики засыпали грабли листвой :) В доке пишут, что типа bool в sqlite нет вообще 1.1 Boolean Datatype SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2015, 09:29 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
PPA, Определял методом тыка, а вообще SQLite достаточно странный зверек, иногда на такое натыкаешься ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2015, 10:48 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
PPAВ доке пишут, что типа bool в sqlite нет вообще 1.1 Boolean Datatype SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).Все верно. Точно так-же как в Си. Оттуда же скорее всего и данный прикол синтаксиса растет. Но в Си это часть спецификации, а тут - недокументированная фича. Так что использовать не рекомендуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2015, 18:36 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
White OwlВсе верно. Точно так-же как в Си. Оттуда же скорее всего и данный прикол синтаксиса растет. Но в Си это часть спецификации, а тут - недокументированная фича. Так что использовать не рекомендуется.Нет, вру. К Си это отношения не имеет, хотя и очень похоже. Сейчас копаюсь в parse.y - там всего одна секция "Expression Processing" и нету жесткого разделения на "выражение часть выражений" и "выражение часть списка". В общем, это артефакт от попытки упростить CFG. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2015, 18:47 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
White Owl, За такие неявные и очень опасные приведения из С и придумали 30 лет назад С++ Автор sqlite на этот запрос ответил так: "Why is the fact that SQLite can handle boolean expressions that befuddle Oracle a problem?" Сам я считаю, что Oracle в этом случае помогает избежать ошибки. может программист хотел написать условие, отвлекся и забыл это сделать а запрос работает! в sql ведь нет диагностики типа warning из С/C++ У себя я это вообще случайно заметил из-за того что это поле было ID - оно работало верно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2015, 18:55 |
|
Выполняется недописанный запрос
|
|||
---|---|---|---|
#18+
PPAWhite Owl, За такие неявные и очень опасные приведения из С и придумали 30 лет назад С++Вовсе не за это. И вот как раз синтаксис типа if(variable) прекрасно портирован в С++. PPAАвтор sqlite на этот запрос ответил так: "Why is the fact that SQLite can handle boolean expressions that befuddle Oracle a problem?"Ну правильно в общем-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2015, 19:18 |
|
|
start [/forum/topic.php?fid=54&msg=39096926&tid=2008642]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 403ms |
0 / 0 |