Module: SQLite3::Pragmas

Included in:
Database
Defined in:
lib/sqlite3/pragmas.rb

Overview

This module is intended for inclusion solely by the Database class. It defines convenience methods for the various pragmas supported by SQLite3.

For a detailed description of these pragmas, see the SQLite3 documentation at sqlite.org/pragma.html.

Constant Summary collapse

SYNCHRONOUS_MODES =

The enumeration of valid synchronous modes.

[ [ 'full', 2 ], [ 'normal', 1 ], [ 'off', 0 ] ]
TEMP_STORE_MODES =

The enumeration of valid temp store modes.

[ [ 'default', 0 ], [ 'file', 1 ], [ 'memory', 2 ] ]

Instance Method Summary collapse

Instance Method Details

#auto_vacuumObject



104
105
106
# File 'lib/sqlite3/pragmas.rb', line 104

def auto_vacuum
  get_boolean_pragma "auto_vacuum"
end

#auto_vacuum=(mode) ⇒ Object



108
109
110
# File 'lib/sqlite3/pragmas.rb', line 108

def auto_vacuum=( mode )
  set_boolean_pragma "auto_vacuum", mode
end

#cache_sizeObject



128
129
130
# File 'lib/sqlite3/pragmas.rb', line 128

def cache_size
  get_int_pragma "cache_size"
end

#cache_size=(size) ⇒ Object



132
133
134
# File 'lib/sqlite3/pragmas.rb', line 132

def cache_size=( size )
  set_int_pragma "cache_size", size
end

#database_list(&block) ⇒ Object

:yields: row



200
201
202
# File 'lib/sqlite3/pragmas.rb', line 200

def database_list( &block ) # :yields: row
  get_query_pragma "database_list", &block
end

#default_cache_sizeObject



136
137
138
# File 'lib/sqlite3/pragmas.rb', line 136

def default_cache_size
  get_int_pragma "default_cache_size"
end

#default_cache_size=(size) ⇒ Object



140
141
142
# File 'lib/sqlite3/pragmas.rb', line 140

def default_cache_size=( size )
  set_int_pragma "default_cache_size", size
end

#default_synchronousObject



144
145
146
# File 'lib/sqlite3/pragmas.rb', line 144

def default_synchronous
  get_enum_pragma "default_synchronous"
end

#default_synchronous=(mode) ⇒ Object



148
149
150
# File 'lib/sqlite3/pragmas.rb', line 148

def default_synchronous=( mode )
  set_enum_pragma "default_synchronous", mode, SYNCHRONOUS_MODES
end

#default_temp_storeObject



160
161
162
# File 'lib/sqlite3/pragmas.rb', line 160

def default_temp_store
  get_enum_pragma "default_temp_store"
end

#default_temp_store=(mode) ⇒ Object



164
165
166
# File 'lib/sqlite3/pragmas.rb', line 164

def default_temp_store=( mode )
  set_enum_pragma "default_temp_store", mode, TEMP_STORE_MODES
end

#foreign_key_list(table, &block) ⇒ Object

:yields: row



204
205
206
# File 'lib/sqlite3/pragmas.rb', line 204

def foreign_key_list( table, &block ) # :yields: row
  get_query_pragma "foreign_key_list", table, &block
end

#full_column_namesObject



176
177
178
# File 'lib/sqlite3/pragmas.rb', line 176

def full_column_names
  get_boolean_pragma "full_column_names"
end

#full_column_names=(mode) ⇒ Object



180
181
182
# File 'lib/sqlite3/pragmas.rb', line 180

def full_column_names=( mode )
  set_boolean_pragma "full_column_names", mode
end

#index_info(index, &block) ⇒ Object

:yields: row



208
209
210
# File 'lib/sqlite3/pragmas.rb', line 208

def index_info( index, &block ) # :yields: row
  get_query_pragma "index_info", index, &block
end

#index_list(table, &block) ⇒ Object

:yields: row



212
213
214
# File 'lib/sqlite3/pragmas.rb', line 212

def index_list( table, &block ) # :yields: row
  get_query_pragma "index_list", table, &block
end

#integrity_checkObject

Does an integrity check on the database. If the check fails, a SQLite3::Exception will be raised. Otherwise it returns silently.



98
99
100
101
102
# File 'lib/sqlite3/pragmas.rb', line 98

def integrity_check
  execute( "PRAGMA integrity_check" ) do |row|
    raise Exception, row[0] if row[0] != "ok"
  end
end

#parser_traceObject



184
185
186
# File 'lib/sqlite3/pragmas.rb', line 184

def parser_trace
  get_boolean_pragma "parser_trace"
end

#parser_trace=(mode) ⇒ Object



188
189
190
# File 'lib/sqlite3/pragmas.rb', line 188

def parser_trace=( mode )
  set_boolean_pragma "parser_trace", mode
end


112
113
114
# File 'lib/sqlite3/pragmas.rb', line 112

def schema_cookie
  get_int_pragma "schema_cookie"
end

#schema_cookie=(cookie) ⇒ Object



116
117
118
# File 'lib/sqlite3/pragmas.rb', line 116

def schema_cookie=( cookie )
  set_int_pragma "schema_cookie", cookie
end

#synchronousObject



152
153
154
# File 'lib/sqlite3/pragmas.rb', line 152

def synchronous
  get_enum_pragma "synchronous"
end

#synchronous=(mode) ⇒ Object



156
157
158
# File 'lib/sqlite3/pragmas.rb', line 156

def synchronous=( mode )
  set_enum_pragma "synchronous", mode, SYNCHRONOUS_MODES
end

#table_info(table, &block) ⇒ Object

:yields: row



216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# File 'lib/sqlite3/pragmas.rb', line 216

def table_info( table, &block ) # :yields: row
  columns, *rows = execute2("PRAGMA table_info(#{table})")

  needs_tweak_default = version_compare(driver.libversion, "3.3.7") > 0

  result = [] unless block_given?
  rows.each do |row|
    new_row = {}
    columns.each_with_index do |name, index|
      new_row[name] = row[index]
    end

    tweak_default(new_row) if needs_tweak_default

    if block_given?
      yield new_row
    else
      result << new_row
    end
  end

  result
end

#temp_storeObject



168
169
170
# File 'lib/sqlite3/pragmas.rb', line 168

def temp_store
  get_enum_pragma "temp_store"
end

#temp_store=(mode) ⇒ Object



172
173
174
# File 'lib/sqlite3/pragmas.rb', line 172

def temp_store=( mode )
  set_enum_pragma "temp_store", mode, TEMP_STORE_MODES
end


120
121
122
# File 'lib/sqlite3/pragmas.rb', line 120

def user_cookie
  get_int_pragma "user_cookie"
end

#user_cookie=(cookie) ⇒ Object



124
125
126
# File 'lib/sqlite3/pragmas.rb', line 124

def user_cookie=( cookie )
  set_int_pragma "user_cookie", cookie
end

#vdbe_traceObject



192
193
194
# File 'lib/sqlite3/pragmas.rb', line 192

def vdbe_trace
  get_boolean_pragma "vdbe_trace"
end

#vdbe_trace=(mode) ⇒ Object



196
197
198
# File 'lib/sqlite3/pragmas.rb', line 196

def vdbe_trace=( mode )
  set_boolean_pragma "vdbe_trace", mode
end