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
- #auto_vacuum ⇒ Object
- #auto_vacuum=(mode) ⇒ Object
- #cache_size ⇒ Object
- #cache_size=(size) ⇒ Object
-
#database_list(&block) ⇒ Object
:yields: row.
- #default_cache_size ⇒ Object
- #default_cache_size=(size) ⇒ Object
- #default_synchronous ⇒ Object
- #default_synchronous=(mode) ⇒ Object
- #default_temp_store ⇒ Object
- #default_temp_store=(mode) ⇒ Object
-
#foreign_key_list(table, &block) ⇒ Object
:yields: row.
- #full_column_names ⇒ Object
- #full_column_names=(mode) ⇒ Object
-
#index_info(index, &block) ⇒ Object
:yields: row.
-
#index_list(table, &block) ⇒ Object
:yields: row.
-
#integrity_check ⇒ Object
Does an integrity check on the database.
- #parser_trace ⇒ Object
- #parser_trace=(mode) ⇒ Object
- #schema_cookie ⇒ Object
- #schema_cookie=(cookie) ⇒ Object
- #synchronous ⇒ Object
- #synchronous=(mode) ⇒ Object
-
#table_info(table) ⇒ Object
Returns information about
table
. - #temp_store ⇒ Object
- #temp_store=(mode) ⇒ Object
- #user_cookie ⇒ Object
- #user_cookie=(cookie) ⇒ Object
- #vdbe_trace ⇒ Object
- #vdbe_trace=(mode) ⇒ Object
Instance Method Details
#auto_vacuum ⇒ Object
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_size ⇒ Object
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_size ⇒ Object
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_synchronous ⇒ Object
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_store ⇒ Object
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_names ⇒ Object
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_check ⇒ Object
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_trace ⇒ Object
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 |
#schema_cookie ⇒ Object
112 113 114 |
# File 'lib/sqlite3/pragmas.rb', line 112 def get_int_pragma "schema_cookie" end |
#schema_cookie=(cookie) ⇒ Object
116 117 118 |
# File 'lib/sqlite3/pragmas.rb', line 116 def ( ) set_int_pragma "schema_cookie", end |
#synchronous ⇒ Object
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) ⇒ Object
Returns information about table
. Yields each row of table information if a block is provided.
219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 |
# File 'lib/sqlite3/pragmas.rb', line 219 def table_info table stmt = prepare "PRAGMA table_info(#{table})" columns = stmt.columns needs_tweak_default = version_compare(SQLite3.libversion.to_s, "3.3.7") > 0 result = [] unless block_given? stmt.each do |row| new_row = Hash[columns.zip(row)] # FIXME: This should be removed but is required for older versions # of rails if(Object.const_defined?(:ActiveRecord)) new_row['notnull'] = new_row['notnull'].to_s end tweak_default(new_row) if needs_tweak_default if block_given? yield new_row else result << new_row end end stmt.close result end |
#temp_store ⇒ Object
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 |
#user_cookie ⇒ Object
120 121 122 |
# File 'lib/sqlite3/pragmas.rb', line 120 def get_int_pragma "user_cookie" end |
#user_cookie=(cookie) ⇒ Object
124 125 126 |
# File 'lib/sqlite3/pragmas.rb', line 124 def ( ) set_int_pragma "user_cookie", end |
#vdbe_trace ⇒ Object
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 |