boolean.sql
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:3k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. --
  2. -- boolean.source
  3. --
  4. -- $Header: /usr/local/cvsroot/pgsql/src/test/regress/sql/boolean.sql,v 1.5 1997/12/01 02:45:59 thomas Exp $
  5. --
  6. --
  7. -- sanity check - if this fails go insane!
  8. --
  9. SELECT 1 AS one;
  10. -- ******************testing built-in type bool********************
  11. -- check bool type-casting as well as and, or, not in qualifications--
  12. SELECT 't'::bool AS true;
  13. SELECT 'f'::bool AS false;
  14. SELECT 't'::bool or 'f'::bool AS true;
  15. SELECT 't'::bool and 'f'::bool AS false;
  16. SELECT not 'f'::bool AS true;
  17. SELECT 't'::bool = 'f'::bool AS false;
  18. SELECT 't'::bool <> 'f'::bool AS true;
  19. CREATE TABLE BOOLTBL1 (f1 bool);
  20. INSERT INTO BOOLTBL1 (f1) VALUES ('t'::bool);
  21. INSERT INTO BOOLTBL1 (f1) VALUES ('True'::bool);
  22. INSERT INTO BOOLTBL1 (f1) VALUES ('true'::bool);
  23. -- BOOLTBL1 should be full of true's at this point 
  24. SELECT '' AS t_3, BOOLTBL1.*;
  25. SELECT '' AS t_3, BOOLTBL1.*
  26.    FROM BOOLTBL1
  27.    WHERE f1 = 'true'::bool;
  28. SELECT '' AS t_3, BOOLTBL1.* 
  29.    FROM BOOLTBL1
  30.    WHERE f1 <> 'false'::bool;
  31. SELECT '' AS zero, BOOLTBL1.*
  32.    FROM BOOLTBL1
  33.    WHERE booleq('false'::bool, f1);
  34. INSERT INTO BOOLTBL1 (f1) VALUES ('f'::bool);
  35. SELECT '' AS f_1, BOOLTBL1.* 
  36.    FROM BOOLTBL1
  37.    WHERE f1 = 'false'::bool;
  38. CREATE TABLE BOOLTBL2 (f1 bool);
  39. INSERT INTO BOOLTBL2 (f1) VALUES ('f'::bool);
  40. INSERT INTO BOOLTBL2 (f1) VALUES ('false'::bool);
  41. INSERT INTO BOOLTBL2 (f1) VALUES ('False'::bool);
  42. INSERT INTO BOOLTBL2 (f1) VALUES ('FALSE'::bool);
  43. -- This is now an invalid expression
  44. -- For pre-v6.3 this evaluated to false - thomas 1997-10-23
  45. INSERT INTO BOOLTBL2 (f1) 
  46.    VALUES ('XXX'::bool);  
  47. -- BOOLTBL2 should be full of false's at this point 
  48. SELECT '' AS f_4, BOOLTBL2.*;
  49. SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
  50.    WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
  51. SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
  52.    WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
  53. SELECT '' AS ff_4, BOOLTBL1.*, BOOLTBL2.*
  54.    WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = 'false'::bool;
  55. SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
  56.    WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = 'true'::bool
  57.    ORDER BY BOOLTBL1.f1, BOOLTBL2.f1;
  58. --
  59. -- SQL92 syntax - thomas 1997-11-30
  60. --
  61. SELECT '' AS "True", BOOLTBL1.* 
  62.    FROM BOOLTBL1
  63.    WHERE f1 IS TRUE;
  64. SELECT '' AS "Not False", BOOLTBL1.* 
  65.    FROM BOOLTBL1
  66.    WHERE f1 IS NOT FALSE;
  67. SELECT '' AS "False", BOOLTBL1.* 
  68.    FROM BOOLTBL1
  69.    WHERE f1 IS FALSE;
  70. SELECT '' AS "Not True", BOOLTBL1.* 
  71.    FROM BOOLTBL1
  72.    WHERE f1 IS NOT TRUE;
  73. --
  74. -- Clean up
  75. -- Many tables are retained by the regression test, but these do not seem
  76. --  particularly useful so just get rid of them for now.
  77. --  - thomas 1997-11-30
  78. --
  79. DROP TABLE  BOOLTBL1;
  80. DROP TABLE  BOOLTBL2;