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"

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

#columns, #data_sources, #foreign_keys, #indexes, #primary_key, #schema_cache, #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.



27
28
29
30
31
32
33
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 27

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

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



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

def client
  @client
end

#last_query_idObject (readonly)

Returns the value of attribute last_query_id.



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

def last_query_id
  @last_query_id
end

#last_query_info_uriObject (readonly)

Returns the value of attribute last_query_info_uri.



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

def last_query_info_uri
  @last_query_info_uri
end

#last_query_statsObject (readonly)

Returns the value of attribute last_query_stats.



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

def last_query_stats
  @last_query_stats
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 39

def active?
  !@client.nil?
end

#adapter_nameObject



35
36
37
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 35

def adapter_name
  ADAPTER_NAME
end

#disconnect!Object



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

def disconnect!
  @client = nil
end

#lookup_cast_type(sql_type) ⇒ Object



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

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

#lookup_cast_type_from_column(column) ⇒ Object



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

def lookup_cast_type_from_column(column)
  column.cast_type
end

#native_database_typesObject



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

def native_database_types
  {}
end

#prepared_statementsObject

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



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

def prepared_statements # rubocop:disable Naming/PredicateMethod
  false
end

#reconnect!Object



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

def reconnect!
  disconnect!
  @client = build_client
end

#requires_reloading?Boolean

Returns:

  • (Boolean)


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

def requires_reloading?
  false
end

#supports_advisory_locks?Boolean

Returns:

  • (Boolean)


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

def supports_advisory_locks?
  false
end

#supports_ddl_transactions?Boolean

Returns:

  • (Boolean)


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

def supports_ddl_transactions?
  false
end

#supports_explain?Boolean

Returns:

  • (Boolean)


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

def supports_explain?
  true
end

#supports_lazy_transactions?Boolean

Returns:

  • (Boolean)


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

def supports_lazy_transactions?
  false
end

#supports_migrations?Boolean

Returns:

  • (Boolean)


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

def supports_migrations?
  false
end

#supports_savepoints?Boolean

Returns:

  • (Boolean)


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

def supports_savepoints?
  false
end

#supports_transactions?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/active_record/connection_adapters/trino_adapter.rb', line 52

def supports_transactions?
  false
end

#supports_views?Boolean

Returns:

  • (Boolean)


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

def supports_views?
  false
end