| Module | SQLite3::Pragmas |
| In: |
lib/sqlite3/pragmas.rb
|
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.
| SYNCHRONOUS_MODES | = | [ [ 'full', 2 ], [ 'normal', 1 ], [ 'off', 0 ] ] | The enumeration of valid synchronous modes. | |
| TEMP_STORE_MODES | = | [ [ 'default', 0 ], [ 'file', 1 ], [ 'memory', 2 ] ] | The enumeration of valid temp store modes. |
# File lib/sqlite3/pragmas.rb, line 136
136: def auto_vacuum
137: get_boolean_pragma "auto_vacuum"
138: end
# File lib/sqlite3/pragmas.rb, line 140
140: def auto_vacuum=( mode )
141: set_boolean_pragma "auto_vacuum", mode
142: end
# File lib/sqlite3/pragmas.rb, line 160
160: def cache_size
161: get_int_pragma "cache_size"
162: end
# File lib/sqlite3/pragmas.rb, line 164
164: def cache_size=( size )
165: set_int_pragma "cache_size", size
166: end
# File lib/sqlite3/pragmas.rb, line 232
232: def database_list( &block ) # :yields: row
233: get_query_pragma "database_list", &block
234: end
# File lib/sqlite3/pragmas.rb, line 168
168: def default_cache_size
169: get_int_pragma "default_cache_size"
170: end
# File lib/sqlite3/pragmas.rb, line 172
172: def default_cache_size=( size )
173: set_int_pragma "default_cache_size", size
174: end
# File lib/sqlite3/pragmas.rb, line 176
176: def default_synchronous
177: get_enum_pragma "default_synchronous"
178: end
# File lib/sqlite3/pragmas.rb, line 180
180: def default_synchronous=( mode )
181: set_enum_pragma "default_synchronous", mode, SYNCHRONOUS_MODES
182: end
# File lib/sqlite3/pragmas.rb, line 192
192: def default_temp_store
193: get_enum_pragma "default_temp_store"
194: end
# File lib/sqlite3/pragmas.rb, line 196
196: def default_temp_store=( mode )
197: set_enum_pragma "default_temp_store", mode, TEMP_STORE_MODES
198: end
# File lib/sqlite3/pragmas.rb, line 236
236: def foreign_key_list( table, &block ) # :yields: row
237: get_query_pragma "foreign_key_list", table, &block
238: end
# File lib/sqlite3/pragmas.rb, line 208
208: def full_column_names
209: get_boolean_pragma "full_column_names"
210: end
# File lib/sqlite3/pragmas.rb, line 212
212: def full_column_names=( mode )
213: set_boolean_pragma "full_column_names", mode
214: end
# File lib/sqlite3/pragmas.rb, line 240
240: def index_info( index, &block ) # :yields: row
241: get_query_pragma "index_info", index, &block
242: end
# File lib/sqlite3/pragmas.rb, line 244
244: def index_list( table, &block ) # :yields: row
245: get_query_pragma "index_list", table, &block
246: end
Does an integrity check on the database. If the check fails, a SQLite3::Exception will be raised. Otherwise it returns silently.
# File lib/sqlite3/pragmas.rb, line 130
130: def integrity_check
131: execute( "PRAGMA integrity_check" ) do |row|
132: raise Exception, row[0] if row[0] != "ok"
133: end
134: end
# File lib/sqlite3/pragmas.rb, line 216
216: def parser_trace
217: get_boolean_pragma "parser_trace"
218: end
# File lib/sqlite3/pragmas.rb, line 220
220: def parser_trace=( mode )
221: set_boolean_pragma "parser_trace", mode
222: end
# File lib/sqlite3/pragmas.rb, line 144
144: def schema_cookie
145: get_int_pragma "schema_cookie"
146: end
# File lib/sqlite3/pragmas.rb, line 148
148: def schema_cookie=( cookie )
149: set_int_pragma "schema_cookie", cookie
150: end
# File lib/sqlite3/pragmas.rb, line 184
184: def synchronous
185: get_enum_pragma "synchronous"
186: end
# File lib/sqlite3/pragmas.rb, line 188
188: def synchronous=( mode )
189: set_enum_pragma "synchronous", mode, SYNCHRONOUS_MODES
190: end
# File lib/sqlite3/pragmas.rb, line 248
248: def table_info( table, &block ) # :yields: row
249: columns, *rows = execute2("PRAGMA table_info(#{table})")
250:
251: needs_tweak_default = version_compare(driver.libversion, "3.3.7") > 0
252:
253: result = [] unless block_given?
254: rows.each do |row|
255: new_row = {}
256: columns.each_with_index do |name, index|
257: new_row[name] = row[index]
258: end
259:
260: tweak_default(new_row) if needs_tweak_default
261:
262: if block_given?
263: yield new_row
264: else
265: result << new_row
266: end
267: end
268:
269: result
270: end
# File lib/sqlite3/pragmas.rb, line 200
200: def temp_store
201: get_enum_pragma "temp_store"
202: end
# File lib/sqlite3/pragmas.rb, line 204
204: def temp_store=( mode )
205: set_enum_pragma "temp_store", mode, TEMP_STORE_MODES
206: end
# File lib/sqlite3/pragmas.rb, line 152
152: def user_cookie
153: get_int_pragma "user_cookie"
154: end
# File lib/sqlite3/pragmas.rb, line 156
156: def user_cookie=( cookie )
157: set_int_pragma "user_cookie", cookie
158: end
# File lib/sqlite3/pragmas.rb, line 224
224: def vdbe_trace
225: get_boolean_pragma "vdbe_trace"
226: end