# LANGUAGE TemplateHaskell #
# LANGUAGE FlexibleInstances #
# LANGUAGE MultiParamTypeClasses #
# LANGUAGE DataKinds #
# LANGUAGE DeriveGeneric #

module Database.Relational.Schema.Oracle.ConsColumns where

import GHC.Generics (Generic)
import Data.Int (Int32)
import Database.Relational.TH (defineTableTypesAndRecord)

import Database.Relational.Schema.Oracle.Config (config)


$(defineTableTypesAndRecord config
    "SYS" "dba_cons_columns"
  Column                                     NULL ?     
    -- ----------------------------------------- -------- ----------------------------
  OWNER                                      NOT NULL VARCHAR2(30 )
    [ ("owner", [t|String|])
  CONSTRAINT_NAME                            NOT NULL VARCHAR2(30 )
    , ("constraint_name", [t|String|])
                                   NOT NULL VARCHAR2(30 )
    , ("table_name", [t|String|])
  COLUMN_NAME                                         VARCHAR2(4000 )
    , ("column_name", [t|Maybe String|])
    -- POSITION                                           NUMBER
    , ("position", [t|Maybe Int32|])
    ] [''Show, ''Generic])

 ----------------------------------------- -------- ----------------------------
 POSITION                                           NUMBER
# LANGUAGE TemplateHaskell #
# LANGUAGE FlexibleInstances #
# LANGUAGE MultiParamTypeClasses #
# LANGUAGE DataKinds #
# LANGUAGE DeriveGeneric #

module Database.Relational.Schema.Oracle.ConsColumns where

import GHC.Generics (Generic)
import Data.Int (Int32)
import Database.Relational.TH (defineTableTypesAndRecord)

import Database.Relational.Schema.Oracle.Config (config)


$(defineTableTypesAndRecord config
    "SYS" "dba_cons_columns"
  Column                                     NULL ?     
  OWNER                                      NOT NULL VARCHAR2(30 )
    [ ("owner", [t|String|])
  CONSTRAINT_NAME                            NOT NULL VARCHAR2(30 )
    , ("constraint_name", [t|String|])
                                   NOT NULL VARCHAR2(30 )
    , ("table_name", [t|String|])
  COLUMN_NAME                                         VARCHAR2(4000 )
    , ("column_name", [t|Maybe String|])
    , ("position", [t|Maybe Int32|])
    ] [''Show, ''Generic])
