char.out 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. --
  2. -- CHAR
  3. --
  4. -- fixed-length by value
  5. -- internally passed by value if <= 4 bytes in storage
  6. SELECT char 'c' = char 'c' AS true;
  7. true
  8. ------
  9. t
  10. (1 row)
  11. --
  12. -- Build a table for testing
  13. --
  14. CREATE TABLE CHAR_TBL(f1 char);
  15. INSERT INTO CHAR_TBL (f1) VALUES ('a');
  16. INSERT INTO CHAR_TBL (f1) VALUES ('A');
  17. -- any of the following three input formats are acceptable
  18. INSERT INTO CHAR_TBL (f1) VALUES ('1');
  19. INSERT INTO CHAR_TBL (f1) VALUES (2);
  20. INSERT INTO CHAR_TBL (f1) VALUES ('3');
  21. -- zero-length char
  22. INSERT INTO CHAR_TBL (f1) VALUES ('');
  23. -- try char's of greater than 1 length
  24. INSERT INTO CHAR_TBL (f1) VALUES ('cd');
  25. ERROR: value too long for type character(1)
  26. INSERT INTO CHAR_TBL (f1) VALUES ('c ');
  27. SELECT * FROM CHAR_TBL;
  28. f1
  29. ----
  30. a
  31. A
  32. 1
  33. 2
  34. 3
  35. c
  36. (7 rows)
  37. SELECT c.*
  38. FROM CHAR_TBL c
  39. WHERE c.f1 <> 'a';
  40. f1
  41. ----
  42. A
  43. 1
  44. 2
  45. 3
  46. c
  47. (6 rows)
  48. SELECT c.*
  49. FROM CHAR_TBL c
  50. WHERE c.f1 = 'a';
  51. f1
  52. ----
  53. a
  54. (1 row)
  55. SELECT c.*
  56. FROM CHAR_TBL c
  57. WHERE c.f1 < 'a';
  58. f1
  59. ----
  60. A
  61. 1
  62. 2
  63. 3
  64. (5 rows)
  65. SELECT c.*
  66. FROM CHAR_TBL c
  67. WHERE c.f1 <= 'a';
  68. f1
  69. ----
  70. a
  71. A
  72. 1
  73. 2
  74. 3
  75. (6 rows)
  76. SELECT c.*
  77. FROM CHAR_TBL c
  78. WHERE c.f1 > 'a';
  79. f1
  80. ----
  81. c
  82. (1 row)
  83. SELECT c.*
  84. FROM CHAR_TBL c
  85. WHERE c.f1 >= 'a';
  86. f1
  87. ----
  88. a
  89. c
  90. (2 rows)
  91. DROP TABLE CHAR_TBL;
  92. --
  93. -- Now test longer arrays of char
  94. --
  95. CREATE TABLE CHAR_TBL(f1 char(4));
  96. INSERT INTO CHAR_TBL (f1) VALUES ('a');
  97. INSERT INTO CHAR_TBL (f1) VALUES ('ab');
  98. INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
  99. INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
  100. ERROR: value too long for type character(4)
  101. INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
  102. SELECT * FROM CHAR_TBL;
  103. f1
  104. ------
  105. a
  106. ab
  107. abcd
  108. abcd
  109. (4 rows)