Hi all,
        I'm in trouble with examples in
        http://www.postgresql.org/docs/7.3/interactive/arrays.html.
        Step by step:

-------------cut here-----------
[EMAIL PROTECTED]:~$ createdb test
CREATE DATABASE
[EMAIL PROTECTED]:~$ psql test
Welcome to psql 7.3.3, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

test=# CREATE TABLE sal_emp (
test(#      name            text,
test(#      pay_by_quarter  integer[],
test(#      schedule        text[][]
test(#  );
CREATE TABLE
test=# INSERT INTO sal_emp
test-#      VALUES ('Bill',
test(#      '{10000, 10000, 10000, 10000}',
test(#      '{{"meeting", "lunch"}, {}}');
INSERT 44628 1
test=#  
test=#  INSERT INTO sal_emp
test-#      VALUES ('Carol',
test(#      '{20000, 25000, 25000, 25000}',
test(#      '{{"talk", "consult"}, {"meeting"}}');
INSERT 44629 1
test=# SELECT name FROM sal_emp WHERE pay_by_quarter[1] <>
pay_by_quarter[2];
 name  
-------
 Carol
(1 row)

test=# SELECT pay_by_quarter[3] FROM sal_emp;
 pay_by_quarter 
----------------
          10000
          25000
(2 rows)
test=# SELECT schedule[1:2][1:1] FROM sal_emp WHERE name = 'Bill';
     schedule     
------------------
 {{meeting},{""}}
(1 row)

test=# SELECT schedule[1:2][1] FROM sal_emp WHERE name = 'Bill';
     schedule     
------------------
 {{meeting},{""}}
(1 row)

test=# UPDATE sal_emp SET pay_by_quarter = '{25000,25000,27000,27000}'
test-#      WHERE name = 'Carol';
UPDATE 1
test=# UPDATE sal_emp SET pay_by_quarter[4] = 15000
test-#      WHERE name = 'Bill';
UPDATE 1
test=# UPDATE sal_emp SET pay_by_quarter[1:2] = '{27000,27000}'
test-#      WHERE name = 'Carol';
UPDATE 1
test=# 
test=# CREATE TABLE tictactoe (
test(#      squares   integer[3][3]
test(#  );
CREATE TABLE
test=# 
test=# SELECT array_dims(schedule) FROM sal_emp WHERE name = 'Carol';
 array_dims 
------------
 [1:2][1:1]
(1 row)

test=# SELECT * FROM sal_emp WHERE pay_by_quarter[1] = 10000 OR
test-#                              pay_by_quarter[2] = 10000 OR
test-#                              pay_by_quarter[3] = 10000 OR
test-#                              pay_by_quarter[4] = 10000;
 name |      pay_by_quarter       |     schedule     
------+---------------------------+------------------
 Bill | {10000,10000,10000,15000} | {{meeting},{""}}
(1 row)

test=# SELECT * FROM sal_emp WHERE pay_by_quarter[1:4] *= 10000;
ERROR:  Unable to identify an operator '*=' for types 'integer[]' and 'integer'
        You will have to retype this query using an explicit cast
---------------cut here--------------

Well, Debian Sid, with these packages installed:
ii  postgresql                  7.3.3-1 Object-relational SQL database, descended from 
POSTGRES
ii  postgresql-client           7.3.3-1 Front-end programs for PostgreSQL
ii  postgresql-dev              7.3.3-1 Header files for libpq (postgresql library)
ii  postgresql-doc              7.3.3-1 Documentation for the PostgreSQL database

Thanks a lot for your work,
Andrea Gelmini

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to