Class: ActiveRecord::ConnectionAdapters::TrinoAdapter

Inherits:
AbstractAdapter
  • Object
show all
Includes:
ActiveRecord::ConnectionAdapters::Trino::DatabaseStatements, ActiveRecord::ConnectionAdapters::Trino::Quoting, ActiveRecord::ConnectionAdapters::Trino::ReadOnly, ActiveRecord::ConnectionAdapters::Trino::SchemaStatements
Defined in:
lib/active_record/connection_adapters/trino_adapter.rb

Defined Under Namespace

Modules: RelationSafetyBelts

Constant Summary collapse

ADAPTER_NAME =
"Trino"
PERSISTENT_IDLE_TIMEOUT =
100

Constants included from ActiveRecord::ConnectionAdapters::Trino::ReadOnly

ActiveRecord::ConnectionAdapters::Trino::ReadOnly::WRITE_METHODS

Constants included from ActiveRecord::ConnectionAdapters::Trino::DatabaseStatements

ActiveRecord::ConnectionAdapters::Trino::DatabaseStatements::SLOW_QUERY_NOTIFICATION, ActiveRecord::ConnectionAdapters::Trino::DatabaseStatements::STAT_FIELDS

Constants included from ActiveRecord::ConnectionAdapters::Trino::Quoting

ActiveRecord::ConnectionAdapters::Trino::Quoting::DATE_FORMAT, ActiveRecord::ConnectionAdapters::Trino::Quoting::NUL_BYTE, ActiveRecord::ConnectionAdapters::Trino::Quoting::QUOTED_FALSE, ActiveRecord::ConnectionAdapters::Trino::Quoting::QUOTED_NULL, ActiveRecord::ConnectionAdapters::Trino::Quoting::QUOTED_TRUE, ActiveRecord::ConnectionAdapters::Trino::Quoting::TIMESTAMP_FORMAT

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ActiveRecord::ConnectionAdapters::Trino::SchemaStatements

#clear_column_cache!, #columns, #data_sources, #foreign_keys, #indexes, #primary_key, #table_exists?, #view_exists?, #views

Methods included from ActiveRecord::ConnectionAdapters::Trino::DatabaseStatements

#exec_query, #execute, #internal_exec_query, #select_value, #select_values

Methods included from ActiveRecord::ConnectionAdapters::Trino::Quoting

#quote, #quote_column_name, #quote_string, #quote_table_name, #quoted_date, #quoted_false, #quoted_true

Constructor Details

#initializeTrinoAdapter

Returns a new instance of TrinoAdapter.



30
31
32
33
34
35
36
37
38
39
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 30

def initialize(...)
  super
  @client_options = ActiveRecord::Trino::Config.client_options(@config)
  @slow_query_threshold = ActiveRecord::Trino::Config.slow_query_threshold(@config)
  @persistent = ActiveRecord::Trino::Config.persistent?(@config)
  @bulk_column_reflection = ActiveRecord::Trino::Config.bulk_column_reflection?(@config)
  @static_schema = ActiveRecord::Trino::Config.static_schema?(@config)
  @client = build_client
  install_safety_belts!
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



114
115
116
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 114

def client
  @client
end

#last_query_idObject (readonly)

Returns the value of attribute last_query_id.



114
115
116
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 114

def last_query_id
  @last_query_id
end

#last_query_info_uriObject (readonly)

Returns the value of attribute last_query_info_uri.



114
115
116
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 114

def last_query_info_uri
  @last_query_info_uri
end

#last_query_statsObject (readonly)

Returns the value of attribute last_query_stats.



114
115
116
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 114

def last_query_stats
  @last_query_stats
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 45

def active?
  !@client.nil?
end

#adapter_nameObject



41
42
43
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 41

def adapter_name
  ADAPTER_NAME
end

#bulk_column_reflection?Boolean

Returns:

  • (Boolean)


120
121
122
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 120

def bulk_column_reflection?
  @bulk_column_reflection
end

#disconnect!Object



54
55
56
57
58
59
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 54

def disconnect!
  @persistent_faraday&.close
  @persistent_faraday = nil
  @client = nil
  clear_column_cache!
end

#lookup_cast_type(sql_type) ⇒ Object



106
107
108
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 106

def lookup_cast_type(sql_type)
  type_map.lookup(sql_type)
end

#lookup_cast_type_from_column(column) ⇒ Object



110
111
112
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 110

def lookup_cast_type_from_column(column)
  column.cast_type
end

#native_database_typesObject



102
103
104
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 102

def native_database_types
  {}
end

#persistent?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 116

def persistent?
  @persistent
end

#prepared_statementsObject

ActiveRecord’s adapter API expects this method name without a question mark.



94
95
96
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 94

def prepared_statements # rubocop:disable Naming/PredicateMethod
  false
end

#reconnect!Object



49
50
51
52
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 49

def reconnect!
  disconnect!
  @client = build_client
end

#requires_reloading?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 98

def requires_reloading?
  false
end

#static_schema?Boolean

Returns:

  • (Boolean)


124
125
126
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 124

def static_schema?
  @static_schema
end

#supports_advisory_locks?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 73

def supports_advisory_locks?
  false
end

#supports_ddl_transactions?Boolean

Returns:

  • (Boolean)


85
86
87
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 85

def supports_ddl_transactions?
  false
end

#supports_explain?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 77

def supports_explain?
  true
end

#supports_lazy_transactions?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 69

def supports_lazy_transactions?
  false
end

#supports_migrations?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 81

def supports_migrations?
  false
end

#supports_savepoints?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 65

def supports_savepoints?
  false
end

#supports_transactions?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 61

def supports_transactions?
  false
end

#supports_views?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 89

def supports_views?
  false
end