mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-05 05:36:57 +02:00
f45df8c014
blanks, in hopes of reducing the surprise factor for newbies. Remove redundant operators for VARCHAR (it depends wholly on TEXT operations now). Clean up resolution of ambiguous operators/functions to avoid surprising choices for domains: domains are treated as equivalent to their base types and binary-coercibility is no longer considered a preference item when choosing among multiple operators/functions. IsBinaryCoercible now correctly reflects the notion that you need *only* relabel the type to get from type A to type B: that is, a domain is binary-coercible to its base type, but not vice versa. Various marginal cleanup, including merging the essentially duplicate resolution code in parse_func.c and parse_oper.c. Improve opr_sanity regression test to understand about binary compatibility (using pg_cast), and fix a couple of small errors in the catalogs revealed thereby. Restructure "special operator" handling to fetch operators via index opclasses rather than hardwiring assumptions about names (cleans up the pattern_ops stuff a little).
127 lines
4.8 KiB
Plaintext
127 lines
4.8 KiB
Plaintext
--
|
|
-- NAME
|
|
-- all inputs are silently truncated at NAMEDATALEN-1 (63) characters
|
|
--
|
|
-- fixed-length by reference
|
|
SELECT name 'name string' = name 'name string' AS "True";
|
|
True
|
|
------
|
|
t
|
|
(1 row)
|
|
|
|
SELECT name 'name string' = name 'name string ' AS "False";
|
|
False
|
|
-------
|
|
f
|
|
(1 row)
|
|
|
|
--
|
|
--
|
|
--
|
|
CREATE TABLE NAME_TBL(f1 name);
|
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR');
|
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr');
|
|
INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
|
|
INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
|
|
INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
|
|
INSERT INTO NAME_TBL(f1) VALUES ('');
|
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
|
SELECT '' AS seven, NAME_TBL.*;
|
|
seven | f1
|
|
-------+-----------------------------------------------------------------
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
|
|
| asdfghjkl;
|
|
| 343f%2a
|
|
| d34aaasdf
|
|
|
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
(7 rows)
|
|
|
|
SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
six | f1
|
|
-----+-----------------------------------------------------------------
|
|
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
|
|
| asdfghjkl;
|
|
| 343f%2a
|
|
| d34aaasdf
|
|
|
|
|
(5 rows)
|
|
|
|
SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
one | f1
|
|
-----+-----------------------------------------------------------------
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
(2 rows)
|
|
|
|
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
three | f1
|
|
-------+----
|
|
|
|
|
(1 row)
|
|
|
|
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
four | f1
|
|
------+-----------------------------------------------------------------
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
|
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
(3 rows)
|
|
|
|
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
three | f1
|
|
-------+-----------------------------------------------------------------
|
|
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
|
|
| asdfghjkl;
|
|
| 343f%2a
|
|
| d34aaasdf
|
|
(4 rows)
|
|
|
|
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
four | f1
|
|
------+-----------------------------------------------------------------
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
|
|
| asdfghjkl;
|
|
| 343f%2a
|
|
| d34aaasdf
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
(6 rows)
|
|
|
|
SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
|
|
seven | f1
|
|
-------+-----------------------------------------------------------------
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
|
|
| asdfghjkl;
|
|
| 343f%2a
|
|
| d34aaasdf
|
|
|
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
(7 rows)
|
|
|
|
SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
|
|
zero | f1
|
|
------+----
|
|
(0 rows)
|
|
|
|
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
|
|
three | f1
|
|
-------+-----------------------------------------------------------------
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
|
|
| 343f%2a
|
|
| d34aaasdf
|
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
|
(5 rows)
|
|
|
|
SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
|
|
two | f1
|
|
-----+------------
|
|
| asdfghjkl;
|
|
| d34aaasdf
|
|
(2 rows)
|
|
|
|
DROP TABLE NAME_TBL;
|