-- File: queens_1_domains_pg.sql -- Version: 1.2 -- Last Changed: 2016-12-24 -- by: Damir; https://www.damirsystems.com -- Project: Eight Queens -- Description: Part 1; Domains & Types -- DB: PostgreSQL -- Domain of square names -- CREATE TYPE square_name AS ENUM ( 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8' , 'b1', 'b2' ,'b3', 'b4', 'b5', 'b6', 'b7', 'b8' , 'c1', 'c2' ,'c3', 'c4', 'c5', 'c6', 'c7', 'c8' , 'd1', 'd2' ,'d3', 'd4', 'd5', 'd6', 'd7', 'd8' , 'e1', 'e2' ,'e3', 'e4', 'e5', 'e6', 'e7', 'e8' , 'f1', 'f2' ,'f3', 'f4', 'f5', 'f6', 'f7', 'f8' , 'g1', 'g2' ,'g3', 'g4', 'g5', 'g6', 'g7', 'g8' , 'h1', 'h2' ,'h3', 'h4', 'h5', 'h6', 'h7', 'h8' ); COMMENT ON TYPE square_name IS ' All possible square names. '; -- Domain of row labels -- CREATE TYPE row_lbl AS ENUM ('1', '2', '3', '4', '5', '6', '7', '8') ; COMMENT ON TYPE row_lbl IS ' All possible row labels. '; -- Domain of column labels -- CREATE TYPE col_lbl AS ENUM ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h') ; COMMENT ON TYPE col_lbl IS ' All possible column labels. '; -- Domain of ordinal numbers -- CREATE DOMAIN ordinal_num AS integer CHECK (VALUE between 1 and 8) ; COMMENT ON DOMAIN ordinal_num IS ' All possible ordinal numbers for rows and columns. '; -- Domain of movement directions -- CREATE TYPE mov_dir AS ENUM ('UP', 'RGHT', 'RGHT-UP', 'RGHT-DN') ; COMMENT ON TYPE mov_dir IS ' All possible movement directions for line definitions. ';