module ViewData::PG::Controls::Table::AllDataTypes

Public Class Methods

create(drop: nil) click to toggle source
# File lib/view_data/pg/controls/table/all_data_types.rb, line 6
          def self.create(drop: nil)
            session = Session.build

            if drop
              session.execute("DROP TABLE IF EXISTS #{name}")
              session.execute("DROP TYPE IF EXISTS some_enum_type")
            end

            begin
              session.execute(<<~SQL)
                CREATE TYPE some_enum_type AS ENUM (
                  '#{Enum.example}',
                  '#{Enum.alternate}'
                  )
              SQL
            rescue ::PG::DuplicateObject
            end

            session.execute(<<~SQL)
              CREATE TABLE #{name} (
                id uuid PRIMARY KEY,

                -- Numbers
                some_smallint smallint,
                some_integer integer,
                some_bigint bigint,
                some_decimal_3_1 decimal(4, 1),
                some_numeric_3_1 numeric(4, 1),
                some_real real,
                some_double_precision double precision,
                some_smallserial smallserial,
                some_serial serial,
                some_bigserial bigserial,

                -- Money
                some_money money,

                -- Character
                some_varchar_3 character varying(3),
                some_char_3 character(3),
                some_text text,

                -- Binary
                some_bytea bytea,

                -- Date/Time
                some_timestamp_3 timestamp(3) without time zone,
                some_timestamp_3_with_tz timestamp(3) with time zone,
                some_date date,
                some_time_3 time(3) without time zone,
                some_time_3_with_tz time(3) with time zone,
                some_interval_year interval YEAR,
                some_interval_second_3 interval SECOND(3),

                -- Boolean
                some_boolean bool,

                -- Enum
                some_enum some_enum_type,

                -- UUID
                some_uuid uuid,

                -- JSON
                some_json_text json,
                some_json_binary jsonb
              )
            SQL

            session.close
          end
name() click to toggle source
# File lib/view_data/pg/controls/table/all_data_types.rb, line 78
def self.name
  'all_data_types'
end