Sha256: b3df0439e10393f1915663bc29f90906c21430506a46fb2d014ad5e528235837

Contents?: true

Size: 1.11 KB

Versions: 14

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module DuckDB
  class Column
    #
    # returns column type symbol
    # `:unknown` means that the column type is unknown/unsupported by ruby-duckdb.
    # `:invalid` means that the column type is invalid in duckdb.
    #
    #   require 'duckdb'
    #   db = DuckDB::Database.open
    #   con = db.connect
    #   con.query('CREATE TABLE users (id INTEGER, name VARCHAR(30))')
    #
    #   users = con.query('SELECT * FROM users')
    #   columns = users.columns
    #   columns.first.type #=> :integer
    #
    def type
      types = %i[
        invalid
        boolean
        tinyint
        smallint
        integer
        bigint
        utinyint
        usmallint
        uinteger
        ubigint
        float
        double
        timestamp
        date
        time
        interval
        hugeint
        varchar
        blob
        decimal
        timestamp_s
        timestamp_ms
        timestamp_ns
        enum
        list
        struct
        map
        uuid
        json
      ]
      index = _type
      return :unknown if index >= types.size

      types[index]
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
duckdb-0.9.2.3 lib/duckdb/column.rb
duckdb-0.9.2.2 lib/duckdb/column.rb
duckdb-0.9.2.1 lib/duckdb/column.rb
duckdb-0.9.2 lib/duckdb/column.rb
duckdb-0.9.1.2 lib/duckdb/column.rb
duckdb-0.9.1.1 lib/duckdb/column.rb
duckdb-0.9.1 lib/duckdb/column.rb
duckdb-0.9.0.1 lib/duckdb/column.rb
duckdb-0.9.0 lib/duckdb/column.rb
duckdb-0.8.1.3 lib/duckdb/column.rb
duckdb-0.8.1.2 lib/duckdb/column.rb
duckdb-0.8.1.1 lib/duckdb/column.rb
duckdb-0.8.1 lib/duckdb/column.rb
duckdb-0.8.0 lib/duckdb/column.rb