blob: 0306adb51f900e6b0bb0931916011cc7871770f2 [file] [log] [blame]
\set ECHO none
--
-- test built-in date type oracle compatibility functions
--
SELECT add_months ('2003-08-01', 3);
add_months
------------
2003-11-01
(1 row)
SELECT add_months ('2003-08-01', -3);
add_months
------------
2003-05-01
(1 row)
SELECT add_months ('2003-08-21', -3);
add_months
------------
2003-05-21
(1 row)
SELECT add_months ('2003-01-31', 1);
add_months
------------
2003-02-28
(1 row)
SELECT add_months ('2008-02-28', 1);
add_months
------------
2008-03-28
(1 row)
SELECT add_months ('2008-02-29', 1);
add_months
------------
2008-03-31
(1 row)
SELECT add_months ('2008-01-31', 12);
add_months
------------
2009-01-31
(1 row)
SELECT add_months ('2008-01-31', -12);
add_months
------------
2007-01-31
(1 row)
SELECT add_months ('2008-01-31', 95903);
add_months
------------
9999-12-31
(1 row)
SELECT add_months ('2008-01-31', -80640);
add_months
---------------
4712-01-31 BC
(1 row)
SELECT last_day(to_date('2003/03/15', 'yyyy/mm/dd'));
last_day
------------
2003-03-31
(1 row)
SELECT last_day(to_date('2003/02/03', 'yyyy/mm/dd'));
last_day
------------
2003-02-28
(1 row)
SELECT last_day(to_date('2004/02/03', 'yyyy/mm/dd'));
last_day
------------
2004-02-29
(1 row)
SELECT last_day('1900-02-01');
last_day
------------
1900-02-28
(1 row)
SELECT last_day('2000-02-01');
last_day
------------
2000-02-29
(1 row)
SELECT last_day('2007-02-01');
last_day
------------
2007-02-28
(1 row)
SELECT last_day('2008-02-01');
last_day
------------
2008-02-29
(1 row)
SELECT next_day ('2003-08-01', 'TUESDAY');
next_day
------------
2003-08-05
(1 row)
SELECT next_day ('2003-08-06', 'WEDNESDAY');
next_day
------------
2003-08-13
(1 row)
SELECT next_day ('2003-08-06', 'SUNDAY');
next_day
------------
2003-08-10
(1 row)
SELECT next_day ('2008-01-01', 'sun');
next_day
------------
2008-01-06
(1 row)
SELECT next_day ('2008-01-01', 'sunAAA');
next_day
------------
2008-01-06
(1 row)
SELECT next_day ('2008-01-01', 1);
next_day
------------
2008-01-06
(1 row)
SELECT next_day ('2008-01-01', 7);
next_day
------------
2008-01-05
(1 row)
SELECT months_between (to_date ('2003/01/01', 'yyyy/mm/dd'), to_date ('2003/03/14', 'yyyy/mm/dd'));
months_between
-------------------
-2.41935483870968
(1 row)
SELECT months_between (to_date ('2003/07/01', 'yyyy/mm/dd'), to_date ('2003/03/14', 'yyyy/mm/dd'));
months_between
------------------
3.58064516129032
(1 row)
SELECT months_between (to_date ('2003/07/02', 'yyyy/mm/dd'), to_date ('2003/07/02', 'yyyy/mm/dd'));
months_between
----------------
0
(1 row)
SELECT months_between (to_date ('2003/08/02', 'yyyy/mm/dd'), to_date ('2003/06/02', 'yyyy/mm/dd'));
months_between
----------------
2
(1 row)
SELECT months_between ('2007-02-28', '2007-04-30');
months_between
----------------
-2
(1 row)
SELECT months_between ('2008-01-31', '2008-02-29');
months_between
----------------
-1
(1 row)
SELECT months_between ('2008-02-29', '2008-03-31');
months_between
----------------
-1
(1 row)
SELECT months_between ('2008-02-29', '2008-04-30');
months_between
----------------
-2
(1 row)
SELECT trunc(months_between('21-feb-2008', '2008-02-29'));
trunc
-------
0
(1 row)
select length('jmenuji se Pavel Stehule'),dbms_pipe.pack_message('jmenuji se Pavel Stehule');
length | pack_message
--------+--------------
24 |
(1 row)
select length('a bydlim ve Skalici'),dbms_pipe.pack_message('a bydlim ve Skalici');
length | pack_message
--------+--------------
19 |
(1 row)
select dbms_pipe.send_message('pavel',0,1);
send_message
--------------
0
(1 row)
select dbms_pipe.send_message('pavel',0,2);
send_message
--------------
0
(1 row)
select dbms_pipe.receive_message('pavel',0);
receive_message
-----------------
0
(1 row)
select '>>>>'||dbms_pipe.unpack_message_text()||'<<<<';
?column?
----------------------------------
>>>>jmenuji se Pavel Stehule<<<<
(1 row)
select '>>>>'||dbms_pipe.unpack_message_text()||'<<<<';
?column?
-----------------------------
>>>>a bydlim ve Skalici<<<<
(1 row)
select dbms_pipe.receive_message('pavel',0);
receive_message
-----------------
0
(1 row)
select dbms_pipe.purge('bob');
purge
-------
(1 row)
select dbms_pipe.reset_buffer();
reset_buffer
--------------
(1 row)
select dbms_pipe.pack_message('012345678901234+1');
pack_message
--------------
(1 row)
select dbms_pipe.send_message('bob',0,10);
send_message
--------------
0
(1 row)
select dbms_pipe.pack_message('012345678901234+2');
pack_message
--------------
(1 row)
select dbms_pipe.send_message('bob',0,10);
send_message
--------------
0
(1 row)
select dbms_pipe.pack_message('012345678901234+3');
pack_message
--------------
(1 row)
select dbms_pipe.send_message('bob',0,10);
send_message
--------------
0
(1 row)
--------------------------------------------
select dbms_pipe.receive_message('bob',0);
receive_message
-----------------
0
(1 row)
select dbms_pipe.unpack_message_text();
unpack_message_text
---------------------
012345678901234+1
(1 row)
select dbms_pipe.receive_message('bob',0);
receive_message
-----------------
0
(1 row)
select dbms_pipe.unpack_message_text();
unpack_message_text
---------------------
012345678901234+2
(1 row)
select dbms_pipe.receive_message('bob',0);
receive_message
-----------------
0
(1 row)
select dbms_pipe.unpack_message_text();
unpack_message_text
---------------------
012345678901234+3
(1 row)
select dbms_pipe.unique_session_name() LIKE 'PG$PIPE$%';
?column?
----------
t
(1 row)
select dbms_pipe.pack_message('012345678901234-1');
pack_message
--------------
(1 row)
select dbms_pipe.send_message('bob',0,10);
send_message
--------------
0
(1 row)
select dbms_pipe.receive_message('bob',0);
receive_message
-----------------
0
(1 row)
select dbms_pipe.unpack_message_text();
unpack_message_text
---------------------
012345678901234-1
(1 row)
select dbms_pipe.pack_message('012345678901234-2');
pack_message
--------------
(1 row)
select dbms_pipe.send_message('bob',0,10);
send_message
--------------
0
(1 row)
select dbms_pipe.send_message('bob',0,10);
send_message
--------------
0
(1 row)
select dbms_pipe.receive_message('bob',0);
receive_message
-----------------
0
(1 row)
select dbms_pipe.unpack_message_text();
unpack_message_text
---------------------
012345678901234-2
(1 row)
select dbms_pipe.pack_message(TO_DATE('2006-10-11', 'YYYY-MM-DD'));
pack_message
--------------
(1 row)
select dbms_pipe.send_message('test_date');
send_message
--------------
0
(1 row)
select dbms_pipe.receive_message('test_date');
receive_message
-----------------
0
(1 row)
select dbms_pipe.next_item_type();
next_item_type
----------------
12
(1 row)
select dbms_pipe.unpack_message_date();
unpack_message_date
---------------------
2006-10-11
(1 row)
select dbms_pipe.pack_message(to_timestamp('2008-10-30 01:23:45', 'YYYY-MM-DD HH24:MI:SS'));
pack_message
--------------
(1 row)
select dbms_pipe.send_message('test_timestamp');
send_message
--------------
0
(1 row)
select dbms_pipe.receive_message('test_timestamp');
receive_message
-----------------
0
(1 row)
select dbms_pipe.next_item_type();
next_item_type
----------------
13
(1 row)
select to_char(dbms_pipe.unpack_message_timestamp(), 'YYYY-MM-DD HH24:MI:SS');
to_char
---------------------
2008-10-30 01:23:45
(1 row)
select dbms_pipe.pack_message(6262626262::numeric);
pack_message
--------------
(1 row)
select dbms_pipe.send_message('test_int');
send_message
--------------
0
(1 row)
select dbms_pipe.receive_message('test_int');
receive_message
-----------------
0
(1 row)
select dbms_pipe.next_item_type();
next_item_type
----------------
9
(1 row)
select dbms_pipe.unpack_message_number();
unpack_message_number
-----------------------
6262626262
(1 row)
select name, items, "limit", private, owner from dbms_pipe.db_pipes where name = 'bob';
name | items | limit | private | owner
------+-------+-------+---------+-------
bob | 1 | 10 | f |
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 7, 9);
betwn
-------
and
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 7, 9, FALSE);
betwn
-------
n
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', -3, -1);
betwn
-------
ppy
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 'a', 'ry');
betwn
-------
arry
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 'a', 'ry', 1,1,FALSE,FALSE);
betwn
-------
r
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 'a', 'ry', 2,1,TRUE,FALSE);
betwn
--------------------
and Sally are very
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 'a', 'y', 2,1);
betwn
-----------
and Sally
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 'a', 'a', 2, 2);
betwn
-------------
and Sally a
(1 row)
select PLVstr.betwn('Harry and Sally are very happy', 'a', 'a', 2, 3, FALSE,FALSE);
betwn
---------------------
nd Sally are very h
(1 row)
select plvsubst.string('My name is %s %s.', ARRAY['Pavel','Stěhule']);
string
---------------------------
My name is Pavel Stěhule.
(1 row)
select plvsubst.string('My name is % %.', ARRAY['Pavel','Stěhule'], '%');
string
---------------------------
My name is Pavel Stěhule.
(1 row)
select plvsubst.string('My name is %s.', ARRAY['Stěhule']);
string
---------------------
My name is Stěhule.
(1 row)
select plvsubst.string('My name is %s %s.', 'Pavel,Stěhule');
string
---------------------------
My name is Pavel Stěhule.
(1 row)
select plvsubst.string('My name is %s %s.', 'Pavel|Stěhule','|');
string
---------------------------
My name is Pavel Stěhule.
(1 row)
select plvsubst.string('My name is %s.', 'Stěhule');
string
---------------------
My name is Stěhule.
(1 row)
select plvsubst.string('My name is %s.', '');
ERROR: too few parameters specified for template string
select plvsubst.string('My name is empty.', '');
string
-------------------
My name is empty.
(1 row)
select round(to_date ('22-AUG-03', 'DD-MON-YY'),'YEAR') = to_date ('01-JAN-04', 'DD-MON-YY');
?column?
----------
t
(1 row)
select round(to_date ('22-AUG-03', 'DD-MON-YY'),'Q') = to_date ('01-OCT-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select round(to_date ('22-AUG-03', 'DD-MON-YY'),'MONTH') = to_date ('01-SEP-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select round(to_date ('22-AUG-03', 'DD-MON-YY'),'DDD') = to_date ('22-AUG-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select round(to_date ('22-AUG-03', 'DD-MON-YY'),'DAY') = to_date ('24-AUG-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select trunc(to_date('22-AUG-03', 'DD-MON-YY'), 'YEAR') = to_date ('01-JAN-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select trunc(to_date('22-AUG-03', 'DD-MON-YY'), 'Q') = to_date ('01-JUL-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select trunc(to_date('22-AUG-03', 'DD-MON-YY'), 'MONTH') = to_date ('01-AUG-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select trunc(to_date('22-AUG-03', 'DD-MON-YY'), 'DDD') = to_date ('22-AUG-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select trunc(to_date('22-AUG-03', 'DD-MON-YY'), 'DAY') = to_date ('17-AUG-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select next_day(to_date('01-Aug-03', 'DD-MON-YY'), 'TUESDAY') = to_date ('05-Aug-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select next_day(to_date('06-Aug-03', 'DD-MON-YY'), 'WEDNESDAY') = to_date ('13-Aug-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select next_day(to_date('06-Aug-03', 'DD-MON-YY'), 'SUNDAY') = to_date ('10-Aug-03', 'DD-MON-YY');
?column?
----------
t
(1 row)
select instr('Tech on the net', 'e') =2;
?column?
----------
t
(1 row)
select instr('Tech on the net', 'e', 1, 1) = 2;
?column?
----------
t
(1 row)
select instr('Tech on the net', 'e', 1, 2) = 11;
?column?
----------
t
(1 row)
select instr('Tech on the net', 'e', 1, 3) = 14;
?column?
----------
t
(1 row)
select instr('Tech on the net', 'e', -3, 2) = 2;
?column?
----------
t
(1 row)
select instr('abc', NULL) IS NULL;
?column?
----------
t
(1 row)
select 1 = instr('abc', '');
?column?
----------
t
(1 row)
select 1 = instr('abc', 'a');
?column?
----------
t
(1 row)
select 3 = instr('abc', 'c');
?column?
----------
t
(1 row)
select 0 = instr('abc', 'z');
?column?
----------
t
(1 row)
select 1 = instr('abcabcabc', 'abca', 1);
?column?
----------
t
(1 row)
select 4 = instr('abcabcabc', 'abca', 2);
?column?
----------
t
(1 row)
select 0 = instr('abcabcabc', 'abca', 7);
?column?
----------
t
(1 row)
select 0 = instr('abcabcabc', 'abca', 9);
?column?
----------
t
(1 row)
select 4 = instr('abcabcabc', 'abca', -1);
?column?
----------
t
(1 row)
select 1 = instr('abcabcabc', 'abca', -8);
?column?
----------
t
(1 row)
select 1 = instr('abcabcabc', 'abca', -9);
?column?
----------
t
(1 row)
select 0 = instr('abcabcabc', 'abca', -10);
?column?
----------
t
(1 row)
select 1 = instr('abcabcabc', 'abca', 1, 1);
?column?
----------
t
(1 row)
select 4 = instr('abcabcabc', 'abca', 1, 2);
?column?
----------
t
(1 row)
select 0 = instr('abcabcabc', 'abca', 1, 3);
?column?
----------
t
(1 row)
select oracle.substr('This is a test', 6, 2) = 'is';
?column?
----------
t
(1 row)
select oracle.substr('This is a test', 6) = 'is a test';
?column?
----------
t
(1 row)
select oracle.substr('TechOnTheNet', 1, 4) = 'Tech';
?column?
----------
t
(1 row)
select oracle.substr('TechOnTheNet', -3, 3) = 'Net';
?column?
----------
t
(1 row)
select oracle.substr('TechOnTheNet', -6, 3) = 'The';
?column?
----------
t
(1 row)
select oracle.substr('TechOnTheNet', -8, 2) = 'On';
?column?
----------
t
(1 row)
select concat('Tech on', ' the Net') = 'Tech on the Net';
?column?
----------
t
(1 row)
select concat('a', 'b') = 'ab';
?column?
----------
t
(1 row)
select concat('a', NULL) = 'a';
?column?
----------
t
(1 row)
select concat(NULL, 'b') = 'b';
?column?
----------
t
(1 row)
select concat('a', 2) = 'a2';
?column?
----------
t
(1 row)
select concat(1, 'b') = '1b';
?column?
----------
t
(1 row)
select concat(1, 2) = '12';
?column?
----------
t
(1 row)
select concat(1, NULL) = '1';
?column?
----------
t
(1 row)
select concat(NULL, 2) = '2';
?column?
----------
t
(1 row)
select nvl('A'::text, 'B');
nvl
-----
A
(1 row)
select nvl(NULL::text, 'B');
nvl
-----
B
(1 row)
select nvl(NULL::text, NULL);
nvl
-----
(1 row)
select nvl(1, 2);
nvl
-----
1
(1 row)
select nvl(NULL, 2);
nvl
-----
2
(1 row)
select nvl2('A'::text, 'B', 'C');
nvl2
------
B
(1 row)
select nvl2(NULL::text, 'B', 'C');
nvl2
------
C
(1 row)
select nvl2('A'::text, NULL, 'C');
nvl2
------
(1 row)
select nvl2(NULL::text, 'B', NULL);
nvl2
------
(1 row)
select nvl2(1, 2, 3);
nvl2
------
2
(1 row)
select nvl2(NULL, 2, 3);
nvl2
------
3
(1 row)
select lnnvl(true);
lnnvl
-------
f
(1 row)
select lnnvl(false);
lnnvl
-------
t
(1 row)
select lnnvl(NULL);
lnnvl
-------
t
(1 row)
select decode(1, 1, 100, 2, 200);
decode
--------
100
(1 row)
select decode(2, 1, 100, 2, 200);
decode
--------
200
(1 row)
select decode(3, 1, 100, 2, 200);
decode
--------
(1 row)
select decode(3, 1, 100, 2, 200, 300);
decode
--------
300
(1 row)
select decode(NULL, 1, 100, NULL, 200, 300);
decode
--------
200
(1 row)
select decode('1'::text, '1', 100, '2', 200);
decode
--------
100
(1 row)
select decode(2, 1, 'ABC', 2, 'DEF');
decode
--------
DEF
(1 row)
select decode('2009-02-05'::date, '2009-02-05', 'ok');
decode
--------
ok
(1 row)
select decode('2009-02-05 01:02:03'::timestamp, '2009-02-05 01:02:03', 'ok');
decode
--------
ok
(1 row)
select PLVstr.rvrs ('Jumping Jack Flash') ='hsalF kcaJ gnipmuJ';
?column?
----------
t
(1 row)
select PLVstr.rvrs ('Jumping Jack Flash', 9) = 'hsalF kcaJ';
?column?
----------
t
(1 row)
select PLVstr.rvrs ('Jumping Jack Flash', 4, 6) = 'nip';
?column?
----------
t
(1 row)
select PLVstr.lstrip ('*val1|val2|val3|*', '*') = 'val1|val2|val3|*';
?column?
----------
t
(1 row)
select PLVstr.lstrip (',,,val1,val2,val3,', ',', 3)= 'val1,val2,val3,';
?column?
----------
t
(1 row)
select PLVstr.lstrip ('WHERE WHITE = ''FRONT'' AND COMP# = 1500', 'WHERE ') = 'WHITE = ''FRONT'' AND COMP# = 1500';
?column?
----------
t
(1 row)
select plvstr.left('Příliš žluťoučký kůň',4) = pg_catalog.substr('Příl', 1, 4);
?column?
----------
t
(1 row)
select pos,token from plvlex.tokens('select * from a.b.c join d ON x=y', true, true);
pos | token
-----+--------
0 | select
7 | *
9 | from
14 | a.b.c
20 | join
25 | d
27 | on
30 | x
31 | =
32 | y
(10 rows)
SET lc_numeric TO 'C';
select to_char(22);
to_char
---------
22
(1 row)
select to_char(-44444);
to_char
---------
-44444
(1 row)
select to_char(1234567890123456::bigint);
to_char
------------------
1234567890123456
(1 row)
select to_char(123.456::real);
to_char
------------
123.456001
(1 row)
select to_char(1234.5678::double precision);
to_char
-------------
1234.567800
(1 row)
select to_char(12345678901234567890::numeric);
to_char
----------------------
12345678901234567890
(1 row)
select to_char(1234567890.12345);
to_char
------------------
1234567890.12345
(1 row)
SELECT to_number('123'::text);
to_number
-----------
123
(1 row)
SELECT to_number('123.456'::text);
to_number
-----------
123.456
(1 row)
SELECT to_date('2009-01-02');
to_date
------------
2009-01-02
(1 row)
SELECT bitand(5,1), bitand(5,2), bitand(5,4);
bitand | bitand | bitand
--------+--------+--------
1 | 0 | 4
(1 row)
SELECT sinh(1.570796), cosh(1.570796), tanh(4);
sinh | cosh | tanh
-----------------+------------------+-------------------
2.3012980823207 | 2.50917772660545 | 0.999329299739067
(1 row)
SELECT nanvl(12345, 1), nanvl('NaN', 1);
nanvl | nanvl
-------+-------
12345 | 1
(1 row)
SELECT nanvl(12345::float4, 1), nanvl('NaN'::float4, 1);
nanvl | nanvl
-------+-------
12345 | 1
(1 row)
SELECT nanvl(12345::float8, 1), nanvl('NaN'::float8, 1);
nanvl | nanvl
-------+-------
12345 | 1
(1 row)
SELECT nanvl(12345::numeric, 1), nanvl('NaN'::numeric, 1);
nanvl | nanvl
-------+-------
12345 | 1
(1 row)
select dbms_assert.enquote_literal('some text '' some text');
enquote_literal
--------------------------
'some text '' some text'
(1 row)
select dbms_assert.enquote_name('''"AAA');
enquote_name
--------------
"'""aaa"
(1 row)
select dbms_assert.enquote_name('''"AAA', false);
enquote_name
--------------
"'""AAA"
(1 row)
select dbms_assert.noop('some string');
noop
-------------
some string
(1 row)
select dbms_assert.qualified_sql_name('aaa.bbb.ccc."aaaa""aaa"');
qualified_sql_name
-------------------------
aaa.bbb.ccc."aaaa""aaa"
(1 row)
select dbms_assert.qualified_sql_name('aaa.bbb.cc%c."aaaa""aaa"');
ERROR: string is not qualified SQL name
select dbms_assert.schema_name('dbms_assert');
schema_name
-------------
dbms_assert
(1 row)
select dbms_assert.schema_name('jabadabado');
ERROR: invalid schema name
select dbms_assert.simple_sql_name('"Aaa dghh shsh"');
simple_sql_name
-----------------
"Aaa dghh shsh"
(1 row)
select dbms_assert.simple_sql_name('ajajaj -- ajaj');
ERROR: string is not simple SQL name
select dbms_assert.object_name('pg_catalog.pg_class');
object_name
---------------------
pg_catalog.pg_class
(1 row)
select dbms_assert.object_name('dbms_assert.fooo');
ERROR: invalid object name
select plunit.assert_true(NULL);
ERROR: plunit.assert_true exception
DETAIL: Plunit.assertation fails (assert_true).
select plunit.assert_true(1 = 2);
ERROR: plunit.assert_true exception
DETAIL: Plunit.assertation fails (assert_true).
select plunit.assert_true(1 = 2, 'one is not two');
ERROR: one is not two
DETAIL: Plunit.assertation fails (assert_true).
select plunit.assert_true(1 = 1);
assert_true
-------------
(1 row)
select plunit.assert_false(1 = 1);
ERROR: plunit.assert_false exception
DETAIL: Plunit.assertation fails (assert_false).
select plunit.assert_false(1 = 1, 'trap is open');
ERROR: trap is open
DETAIL: Plunit.assertation fails (assert_false).
select plunit.assert_false(NULL);
ERROR: plunit.assert_false exception
DETAIL: Plunit.assertation fails (assert_false).
select plunit.assert_null(current_date);
ERROR: plunit.assert_null exception
DETAIL: Plunit.assertation fails (assert_null).
select plunit.assert_null(NULL::date);
assert_null
-------------
(1 row)
select plunit.assert_not_null(current_date);
assert_not_null
-----------------
(1 row)
select plunit.assert_not_null(NULL::date);
ERROR: plunit.assert_not_null exception
DETAIL: Plunit.assertation fails (assert_not_null).
select plunit.assert_equals('Pavel','Pa'||'vel');
assert_equals
---------------
(1 row)
select plunit.assert_equals(current_date, current_date + 1, 'diff dates');
ERROR: diff dates
DETAIL: Plunit.assertation fails (assert_equals).
select plunit.assert_equals(10.2, 10.3, 0.5);
assert_equals
---------------
(1 row)
select plunit.assert_equals(10.2, 10.3, 0.01, 'attention some diff');
ERROR: attention some diff
DETAIL: Plunit.assertation fails (assert_equals).
select plunit.assert_not_equals(current_date, current_date + 1, 'yestarday is today');
assert_not_equals
-------------------
(1 row)
select plunit.fail();
ERROR: plunit.assert_fail exception
DETAIL: Plunit.assertation (assert_fail).
select plunit.fail('custom exception');
ERROR: custom exception
DETAIL: Plunit.assertation (assert_fail).
SELECT dump('Yellow dog'::text) ~ E'^Typ=25 Len=(\\d+): \\d+(,\\d+)*$' AS t;
t
---
t
(1 row)
SELECT dump('Yellow dog'::text, 10) ~ E'^Typ=25 Len=(\\d+): \\d+(,\\d+)*$' AS t;
t
---
t
(1 row)
SELECT dump('Yellow dog'::text, 17) ~ E'^Typ=25 Len=(\\d+): .(,.)*$' AS t;
t
---
t
(1 row)
SELECT dump(10::int2) ~ E'^Typ=21 Len=2: \\d+(,\\d+){1}$' AS t;
t
---
t
(1 row)
SELECT dump(10::int4) ~ E'^Typ=23 Len=4: \\d+(,\\d+){3}$' AS t;
t
---
t
(1 row)
SELECT dump(10::int8) ~ E'^Typ=20 Len=8: \\d+(,\\d+){7}$' AS t;
t
---
t
(1 row)
SELECT dump(10.23::float4) ~ E'^Typ=700 Len=4: \\d+(,\\d+){3}$' AS t;
t
---
t
(1 row)
SELECT dump(10.23::float8) ~ E'^Typ=701 Len=8: \\d+(,\\d+){7}$' AS t;
t
---
t
(1 row)
SELECT dump(10.23::numeric) ~ E'^Typ=1700 Len=(\\d+): \\d+(,\\d+)*$' AS t;
t
---
t
(1 row)
SELECT dump('2008-10-10'::date) ~ E'^Typ=1082 Len=4: \\d+(,\\d+){3}$' AS t;
t
---
t
(1 row)
SELECT dump('2008-10-10'::timestamp) ~ E'^Typ=1114 Len=8: \\d+(,\\d+){7}$' AS t;
t
---
t
(1 row)
select listagg(i::text) from generate_series(1,3) g(i);
listagg
---------
123
(1 row)
select listagg(i::text, ',') from generate_series(1,3) g(i);
listagg
---------
1,2,3
(1 row)
select coalesce(listagg(i::text), '<NULL>') from (SELECT ''::text) g(i);
coalesce
----------
(1 row)
select coalesce(listagg(i::text), '<NULL>') from generate_series(1,0) g(i);
coalesce
----------
<NULL>
(1 row)