Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/regress/sql/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 1 kB image not shown  

Quelle  char.sql

  Sprache: SQL
 

--
-- CHAR
--

-- Per SQL standard, CHAR means character(1), that is a varlena type
-- with a constraint restricting it to one character (not byte)

SELECT char 'c' = char 'c' AS true;

--
-- Build a table for testing
-- (This temporarily hides the table created in test_setup.sql)
--

CREATE TEMP TABLE CHAR_TBL(f1 char);

INSERT INTO CHAR_TBL (f1) VALUES ('a');

INSERT INTO CHAR_TBL (f1) VALUES ('A');

-- any of the following three input formats are acceptable
INSERT INTO CHAR_TBL (f1) VALUES ('1');

INSERT INTO CHAR_TBL (f1) VALUES (2);

INSERT INTO CHAR_TBL (f1) VALUES ('3');

-- zero-length char
INSERT INTO CHAR_TBL (f1) VALUES ('');

-- try char's of greater than 1 length
INSERT INTO CHAR_TBL (f1) VALUES ('cd');
INSERT INTO CHAR_TBL (f1) VALUES ('c     ');


SELECT * FROM CHAR_TBL;

SELECT c.*
   FROM CHAR_TBL c
   WHERE c.f1 <> 'a';

SELECT c.*
   FROM CHAR_TBL c
   WHERE c.f1 = 'a';

SELECT c.*
   FROM CHAR_TBL c
   WHERE c.f1 < 'a';

SELECT c.*
   FROM CHAR_TBL c
   WHERE c.f1 <= 'a';

SELECT c.*
   FROM CHAR_TBL c
   WHERE c.f1 > 'a';

SELECT c.*
   FROM CHAR_TBL c
   WHERE c.f1 >= 'a';

DROP TABLE CHAR_TBL;

--
-- Now test longer arrays of char
--
-- This char_tbl was already created and filled in test_setup.sql.
-- Here we just try to insert bad values.
--

INSERT INTO CHAR_TBL (f1) VALUES ('abcde');

SELECT * FROM CHAR_TBL;

-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('abcd  ''char(4)');
SELECT pg_input_is_valid('abcde''char(4)');
SELECT * FROM pg_input_error_info('abcde''char(4)');

--
-- Also test "char", which is an ad-hoc one-byte type.  It can only
-- really store ASCII characters, but we allow high-bit-set characters
-- to be accessed via bytea-like escapes.
--

SELECT 'a'::"char";
SELECT '\101'::"char";
SELECT '\377'::"char";
SELECT 'a'::"char"::text;
SELECT '\377'::"char"::text;
SELECT '\000'::"char"::text;
SELECT 'a'::text::"char";
SELECT '\377'::text::"char";
SELECT ''::text::"char";

Messung V0.5 in Prozent
C=84 H=96 G=90

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.