Skip to main content

Posts

Showing posts from October, 2011

Same query, 3 databases, 3 different results

The SQL standard leaves a lot of room for different implementations. This is a little demonstration of one of such differences. SQLite  3.7.4 sqlite> create table t1 (id serial, t time); sqlite> insert into t1(t) values ('00:05:10'); sqlite> select t,t*1.5 from t1; 00:05:10|0.0 MySQL 5.6.4-m5 mysql> create table t1 (id serial, t time); Query OK, 0 rows affected (0.01 sec) mysql> insert into t1(t) values ('00:05:10'); Query OK, 1 row affected (0.00 sec) mysql> select t,t*1.5 from t1; +----------+-------+ | t        | t*1.5 | +----------+-------+ | 00:05:10 |   765 | +----------+-------+ 1 row in set (0.00 sec) PostgreSQL 9.0.3 test=# create table t1 (id serial, t time); NOTICE:  CREATE TABLE will create implicit sequence "t1_id_seq" for serial column "t1.id" CREATE TABLE test=# insert into t1(t) values ('00:05:10'); INSERT 0 1 test=# select t,t*1.5 from t1;     t ...

How not to grant permissions

I went to EuroBSDcon in Maarssen, the Netherlands. It was a great conference and I might write another blog about it. I the conference bag there was a copy of the dutch Linux Magazine . The magazine is very nice and covers a broad range of topics. One article about LogicalDOC caught my attention. The LogicalDOC software uses a MySQL database. and the magazine listed some SQL code about how to create the database user: create user logicaldoc; set password FOR logicaldoc@´%´= PASSWORD('wachtwoord´); grant all privileges on logical- doc.* to logicaldoc@´%´ identified by  'wachtwoord´; create database logicaldoc; flush privileges; These statements won't work as some of the quotes are wrong. But let's ignore that. After executing the first line the grant is like this: GRANT USAGE ON *.* TO 'logicaldoc'@'%' So the user logicaldoc is allowed to connect from ANY host WITHOUT password. And yes that does work. After the second statement th...