Class: ActiveRecord::ConnectionAdapters::Duckdb::Column
- Inherits:
-
ConnectionAdapters::Column
- Object
- ConnectionAdapters::Column
- ActiveRecord::ConnectionAdapters::Duckdb::Column
- Defined in:
- lib/active_record/connection_adapters/duckdb/column.rb
Instance Attribute Summary collapse
-
#extra ⇒ String?
readonly
Extra column definition information.
-
#rowid ⇒ Boolean?
readonly
Whether this column is a rowid column.
Instance Method Summary collapse
-
#auto_increment? ⇒ Boolean
Check if this column is auto-incrementing We probably need to check if the column is a UUID.
-
#auto_incremented_by_db? ⇒ Boolean
Check if this column's value is automatically incremented by the database.
-
#has_default? ⇒ Boolean
Check if this column has a default value.
-
#initialize(auto_increment: nil, rowid: nil, generated_type: nil, extra: nil) ⇒ Column
constructor
Initialize a new DuckDB column with DuckDB-specific attributes.
-
#quote_column_name(name) ⇒ String
Quotes a column name for use in SQL statements.
-
#virtual? ⇒ Boolean
Check if this column is a virtual/generated column https://duckdb.org/docs/stable/sql/statements/create_table#generated-columns TODO: Implement full virtual column support.
Constructor Details
#initialize(auto_increment: nil, rowid: nil, generated_type: nil, extra: nil) ⇒ Column
Initialize a new DuckDB column with DuckDB-specific attributes
12 13 14 15 16 17 18 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 12 def initialize(*, auto_increment: nil, rowid: nil, generated_type: nil, extra: nil, **) super(*, **) @auto_increment = auto_increment @rowid = rowid @generated_type = generated_type @extra = extra end |
Instance Attribute Details
#extra ⇒ String? (readonly)
Returns extra column definition information.
28 29 30 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 28 def extra @extra end |
#rowid ⇒ Boolean? (readonly)
Returns whether this column is a rowid column.
30 31 32 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 30 def rowid @rowid end |
Instance Method Details
#auto_increment? ⇒ Boolean
Check if this column is auto-incrementing We probably need to check if the column is a UUID
55 56 57 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 55 def auto_increment? !!@auto_increment end |
#auto_incremented_by_db? ⇒ Boolean
Check if this column's value is automatically incremented by the database
61 62 63 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 61 def auto_incremented_by_db? auto_increment? || !!rowid end |
#has_default? ⇒ Boolean
Check if this column has a default value
47 48 49 50 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 47 def has_default? # super && !virtual? !!super end |
#quote_column_name(name) ⇒ String
Quotes a column name for use in SQL statements
23 24 25 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 23 def quote_column_name(name) %("#{name}") end |
#virtual? ⇒ Boolean
Check if this column is a virtual/generated column https://duckdb.org/docs/stable/sql/statements/create_table#generated-columns TODO: Implement full virtual column support
36 37 38 39 |
# File 'lib/active_record/connection_adapters/duckdb/column.rb', line 36 def virtual? # /\b(?:VIRTUAL|STORED|GENERATED)\b/.match?(extra) false end |