esquema 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -1
  3. data/CHANGELOG.md +9 -1
  4. data/README.md +11 -9
  5. data/lib/esquema/builder.rb +73 -28
  6. data/lib/esquema/configuration.rb +2 -1
  7. data/lib/esquema/keyword_validator.rb +98 -0
  8. data/lib/esquema/model.rb +4 -0
  9. data/lib/esquema/property.rb +185 -26
  10. data/lib/esquema/schema_enhancer.rb +55 -30
  11. data/lib/esquema/type_caster.rb +16 -4
  12. data/lib/esquema/version.rb +1 -1
  13. data/lib/esquema/virtual_column.rb +46 -0
  14. data/lib/esquema.rb +7 -1
  15. data/lib/generators/esquema/install/install_generator.rb +1 -0
  16. data/sorbet/config +4 -0
  17. data/sorbet/rbi/annotations/.gitattributes +1 -0
  18. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  19. data/sorbet/rbi/annotations/activerecord.rbi +92 -0
  20. data/sorbet/rbi/annotations/activesupport.rbi +421 -0
  21. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  22. data/sorbet/rbi/gems/.gitattributes +1 -0
  23. data/sorbet/rbi/gems/activemodel@7.1.3.rbi +8 -0
  24. data/sorbet/rbi/gems/activerecord@7.1.3.rbi +8 -0
  25. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +192 -0
  26. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  27. data/sorbet/rbi/gems/base64@0.2.0.rbi +8 -0
  28. data/sorbet/rbi/gems/bigdecimal@3.1.6.rbi +8 -0
  29. data/sorbet/rbi/gems/byebug@11.1.3.rbi +3606 -0
  30. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3426 -0
  31. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +8 -0
  32. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +8 -0
  33. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1130 -0
  34. data/sorbet/rbi/gems/drb@2.2.0.rbi +1272 -0
  35. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  36. data/sorbet/rbi/gems/i18n@1.14.1.rbi +8 -0
  37. data/sorbet/rbi/gems/json@2.7.1.rbi +1553 -0
  38. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  39. data/sorbet/rbi/gems/method_source@1.0.0.rbi +272 -0
  40. data/sorbet/rbi/gems/minitest@5.22.2.rbi +8 -0
  41. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +8 -0
  42. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  43. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  44. data/sorbet/rbi/gems/parser@3.3.0.5.rbi +5472 -0
  45. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  46. data/sorbet/rbi/gems/prism@0.24.0.rbi +31040 -0
  47. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +1150 -0
  48. data/sorbet/rbi/gems/pry@0.14.2.rbi +10075 -0
  49. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  50. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  51. data/sorbet/rbi/gems/rake@13.1.0.rbi +3027 -0
  52. data/sorbet/rbi/gems/rbi@0.1.9.rbi +3006 -0
  53. data/sorbet/rbi/gems/regexp_parser@2.9.0.rbi +3771 -0
  54. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  55. data/sorbet/rbi/gems/rspec-core@3.13.0.rbi +10978 -0
  56. data/sorbet/rbi/gems/rspec-expectations@3.13.0.rbi +8153 -0
  57. data/sorbet/rbi/gems/rspec-mocks@3.13.0.rbi +5340 -0
  58. data/sorbet/rbi/gems/rspec-support@3.13.0.rbi +1629 -0
  59. data/sorbet/rbi/gems/rspec@3.13.0.rbi +82 -0
  60. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7006 -0
  61. data/sorbet/rbi/gems/rubocop@1.60.2.rbi +57383 -0
  62. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  63. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  64. data/sorbet/rbi/gems/spoom@1.2.4.rbi +3777 -0
  65. data/sorbet/rbi/gems/sqlite3@1.7.2.rbi +1691 -0
  66. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +23133 -0
  67. data/sorbet/rbi/gems/tapioca@0.12.0.rbi +3510 -0
  68. data/sorbet/rbi/gems/thor@1.3.0.rbi +4345 -0
  69. data/sorbet/rbi/gems/timeout@0.4.1.rbi +142 -0
  70. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +8 -0
  71. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +65 -0
  72. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  73. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  74. data/sorbet/rbi/todo.rbi +20 -0
  75. data/sorbet/tapioca/config.yml +13 -0
  76. data/sorbet/tapioca/require.rb +4 -0
  77. metadata +74 -12
  78. data/esquema.gemspec +0 -38
@@ -0,0 +1,1691 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `sqlite3` gem.
5
+ # Please instead update this file by running `bin/tapioca gem sqlite3`.
6
+
7
+ # source://sqlite3//lib/sqlite3/constants.rb#1
8
+ module SQLite3
9
+ class << self
10
+ # source://sqlite3//lib/sqlite3/version.rb#16
11
+ def const_missing(name); end
12
+
13
+ def libversion; end
14
+ def sqlcipher?; end
15
+ def threadsafe; end
16
+
17
+ # Was sqlite3 compiled with thread safety on?
18
+ #
19
+ # @return [Boolean]
20
+ #
21
+ # source://sqlite3//lib/sqlite3.rb#14
22
+ def threadsafe?; end
23
+ end
24
+ end
25
+
26
+ # source://sqlite3//lib/sqlite3/errors.rb#12
27
+ class SQLite3::AbortException < ::SQLite3::Exception; end
28
+
29
+ # source://sqlite3//lib/sqlite3/errors.rb#31
30
+ class SQLite3::AuthorizationException < ::SQLite3::Exception; end
31
+
32
+ class SQLite3::Backup
33
+ def initialize(_arg0, _arg1, _arg2, _arg3); end
34
+
35
+ def finish; end
36
+ def pagecount; end
37
+ def remaining; end
38
+ def step(_arg0); end
39
+ end
40
+
41
+ class SQLite3::Blob < ::String; end
42
+
43
+ # source://sqlite3//lib/sqlite3/errors.rb#13
44
+ class SQLite3::BusyException < ::SQLite3::Exception; end
45
+
46
+ # source://sqlite3//lib/sqlite3/errors.rb#22
47
+ class SQLite3::CantOpenException < ::SQLite3::Exception; end
48
+
49
+ # source://sqlite3//lib/sqlite3/constants.rb#1
50
+ module SQLite3::Constants; end
51
+
52
+ # source://sqlite3//lib/sqlite3/constants.rb#12
53
+ module SQLite3::Constants::ColumnType; end
54
+
55
+ # source://sqlite3//lib/sqlite3/constants.rb#16
56
+ SQLite3::Constants::ColumnType::BLOB = T.let(T.unsafe(nil), Integer)
57
+
58
+ # source://sqlite3//lib/sqlite3/constants.rb#14
59
+ SQLite3::Constants::ColumnType::FLOAT = T.let(T.unsafe(nil), Integer)
60
+
61
+ # source://sqlite3//lib/sqlite3/constants.rb#13
62
+ SQLite3::Constants::ColumnType::INTEGER = T.let(T.unsafe(nil), Integer)
63
+
64
+ # source://sqlite3//lib/sqlite3/constants.rb#17
65
+ SQLite3::Constants::ColumnType::NULL = T.let(T.unsafe(nil), Integer)
66
+
67
+ # source://sqlite3//lib/sqlite3/constants.rb#15
68
+ SQLite3::Constants::ColumnType::TEXT = T.let(T.unsafe(nil), Integer)
69
+
70
+ # source://sqlite3//lib/sqlite3/constants.rb#20
71
+ module SQLite3::Constants::ErrorCode; end
72
+
73
+ # Callback routine requested an abort
74
+ #
75
+ # source://sqlite3//lib/sqlite3/constants.rb#25
76
+ SQLite3::Constants::ErrorCode::ABORT = T.let(T.unsafe(nil), Integer)
77
+
78
+ # Authorization denied
79
+ #
80
+ # source://sqlite3//lib/sqlite3/constants.rb#44
81
+ SQLite3::Constants::ErrorCode::AUTH = T.let(T.unsafe(nil), Integer)
82
+
83
+ # The database file is locked
84
+ #
85
+ # source://sqlite3//lib/sqlite3/constants.rb#26
86
+ SQLite3::Constants::ErrorCode::BUSY = T.let(T.unsafe(nil), Integer)
87
+
88
+ # Unable to open the database file
89
+ #
90
+ # source://sqlite3//lib/sqlite3/constants.rb#35
91
+ SQLite3::Constants::ErrorCode::CANTOPEN = T.let(T.unsafe(nil), Integer)
92
+
93
+ # Abort due to constraint violation
94
+ #
95
+ # source://sqlite3//lib/sqlite3/constants.rb#40
96
+ SQLite3::Constants::ErrorCode::CONSTRAINT = T.let(T.unsafe(nil), Integer)
97
+
98
+ # The database disk image is malformed
99
+ #
100
+ # source://sqlite3//lib/sqlite3/constants.rb#32
101
+ SQLite3::Constants::ErrorCode::CORRUPT = T.let(T.unsafe(nil), Integer)
102
+
103
+ # sqlite_step() has finished executing
104
+ #
105
+ # source://sqlite3//lib/sqlite3/constants.rb#47
106
+ SQLite3::Constants::ErrorCode::DONE = T.let(T.unsafe(nil), Integer)
107
+
108
+ # (Internal Only) Database table is empty
109
+ #
110
+ # source://sqlite3//lib/sqlite3/constants.rb#37
111
+ SQLite3::Constants::ErrorCode::EMPTY = T.let(T.unsafe(nil), Integer)
112
+
113
+ # SQL error or missing database
114
+ #
115
+ # source://sqlite3//lib/sqlite3/constants.rb#22
116
+ SQLite3::Constants::ErrorCode::ERROR = T.let(T.unsafe(nil), Integer)
117
+
118
+ # Insertion failed because database is full
119
+ #
120
+ # source://sqlite3//lib/sqlite3/constants.rb#34
121
+ SQLite3::Constants::ErrorCode::FULL = T.let(T.unsafe(nil), Integer)
122
+
123
+ # An internal logic error in SQLite
124
+ #
125
+ # source://sqlite3//lib/sqlite3/constants.rb#23
126
+ SQLite3::Constants::ErrorCode::INTERNAL = T.let(T.unsafe(nil), Integer)
127
+
128
+ # Operation terminated by sqlite_interrupt()
129
+ #
130
+ # source://sqlite3//lib/sqlite3/constants.rb#30
131
+ SQLite3::Constants::ErrorCode::INTERRUPT = T.let(T.unsafe(nil), Integer)
132
+
133
+ # Some kind of disk I/O error occurred
134
+ #
135
+ # source://sqlite3//lib/sqlite3/constants.rb#31
136
+ SQLite3::Constants::ErrorCode::IOERR = T.let(T.unsafe(nil), Integer)
137
+
138
+ # A table in the database is locked
139
+ #
140
+ # source://sqlite3//lib/sqlite3/constants.rb#27
141
+ SQLite3::Constants::ErrorCode::LOCKED = T.let(T.unsafe(nil), Integer)
142
+
143
+ # Data type mismatch
144
+ #
145
+ # source://sqlite3//lib/sqlite3/constants.rb#41
146
+ SQLite3::Constants::ErrorCode::MISMATCH = T.let(T.unsafe(nil), Integer)
147
+
148
+ # Library used incorrectly
149
+ #
150
+ # source://sqlite3//lib/sqlite3/constants.rb#42
151
+ SQLite3::Constants::ErrorCode::MISUSE = T.let(T.unsafe(nil), Integer)
152
+
153
+ # Uses OS features not supported on host
154
+ #
155
+ # source://sqlite3//lib/sqlite3/constants.rb#43
156
+ SQLite3::Constants::ErrorCode::NOLFS = T.let(T.unsafe(nil), Integer)
157
+
158
+ # A malloc() failed
159
+ #
160
+ # source://sqlite3//lib/sqlite3/constants.rb#28
161
+ SQLite3::Constants::ErrorCode::NOMEM = T.let(T.unsafe(nil), Integer)
162
+
163
+ # (Internal Only) Table or record not found
164
+ #
165
+ # source://sqlite3//lib/sqlite3/constants.rb#33
166
+ SQLite3::Constants::ErrorCode::NOTFOUND = T.let(T.unsafe(nil), Integer)
167
+
168
+ # Successful result
169
+ #
170
+ # source://sqlite3//lib/sqlite3/constants.rb#21
171
+ SQLite3::Constants::ErrorCode::OK = T.let(T.unsafe(nil), Integer)
172
+
173
+ # Access permission denied
174
+ #
175
+ # source://sqlite3//lib/sqlite3/constants.rb#24
176
+ SQLite3::Constants::ErrorCode::PERM = T.let(T.unsafe(nil), Integer)
177
+
178
+ # Database lock protocol error
179
+ #
180
+ # source://sqlite3//lib/sqlite3/constants.rb#36
181
+ SQLite3::Constants::ErrorCode::PROTOCOL = T.let(T.unsafe(nil), Integer)
182
+
183
+ # Attempt to write a readonly database
184
+ #
185
+ # source://sqlite3//lib/sqlite3/constants.rb#29
186
+ SQLite3::Constants::ErrorCode::READONLY = T.let(T.unsafe(nil), Integer)
187
+
188
+ # sqlite_step() has another row ready
189
+ #
190
+ # source://sqlite3//lib/sqlite3/constants.rb#46
191
+ SQLite3::Constants::ErrorCode::ROW = T.let(T.unsafe(nil), Integer)
192
+
193
+ # The database schema changed
194
+ #
195
+ # source://sqlite3//lib/sqlite3/constants.rb#38
196
+ SQLite3::Constants::ErrorCode::SCHEMA = T.let(T.unsafe(nil), Integer)
197
+
198
+ # Too much data for one row of a table
199
+ #
200
+ # source://sqlite3//lib/sqlite3/constants.rb#39
201
+ SQLite3::Constants::ErrorCode::TOOBIG = T.let(T.unsafe(nil), Integer)
202
+
203
+ module SQLite3::Constants::Open; end
204
+ SQLite3::Constants::Open::AUTOPROXY = T.let(T.unsafe(nil), Integer)
205
+ SQLite3::Constants::Open::CREATE = T.let(T.unsafe(nil), Integer)
206
+ SQLite3::Constants::Open::DELETEONCLOSE = T.let(T.unsafe(nil), Integer)
207
+ SQLite3::Constants::Open::EXCLUSIVE = T.let(T.unsafe(nil), Integer)
208
+ SQLite3::Constants::Open::FULLMUTEX = T.let(T.unsafe(nil), Integer)
209
+ SQLite3::Constants::Open::MAIN_DB = T.let(T.unsafe(nil), Integer)
210
+ SQLite3::Constants::Open::MAIN_JOURNAL = T.let(T.unsafe(nil), Integer)
211
+ SQLite3::Constants::Open::MASTER_JOURNAL = T.let(T.unsafe(nil), Integer)
212
+ SQLite3::Constants::Open::MEMORY = T.let(T.unsafe(nil), Integer)
213
+ SQLite3::Constants::Open::NOMUTEX = T.let(T.unsafe(nil), Integer)
214
+ SQLite3::Constants::Open::PRIVATECACHE = T.let(T.unsafe(nil), Integer)
215
+ SQLite3::Constants::Open::READONLY = T.let(T.unsafe(nil), Integer)
216
+ SQLite3::Constants::Open::READWRITE = T.let(T.unsafe(nil), Integer)
217
+ SQLite3::Constants::Open::SHAREDCACHE = T.let(T.unsafe(nil), Integer)
218
+ SQLite3::Constants::Open::SUBJOURNAL = T.let(T.unsafe(nil), Integer)
219
+ SQLite3::Constants::Open::TEMP_DB = T.let(T.unsafe(nil), Integer)
220
+ SQLite3::Constants::Open::TEMP_JOURNAL = T.let(T.unsafe(nil), Integer)
221
+ SQLite3::Constants::Open::TRANSIENT_DB = T.let(T.unsafe(nil), Integer)
222
+ SQLite3::Constants::Open::URI = T.let(T.unsafe(nil), Integer)
223
+ SQLite3::Constants::Open::WAL = T.let(T.unsafe(nil), Integer)
224
+
225
+ # source://sqlite3//lib/sqlite3/constants.rb#3
226
+ module SQLite3::Constants::TextRep; end
227
+
228
+ # source://sqlite3//lib/sqlite3/constants.rb#8
229
+ SQLite3::Constants::TextRep::ANY = T.let(T.unsafe(nil), Integer)
230
+
231
+ # source://sqlite3//lib/sqlite3/constants.rb#9
232
+ SQLite3::Constants::TextRep::DETERMINISTIC = T.let(T.unsafe(nil), Integer)
233
+
234
+ # source://sqlite3//lib/sqlite3/constants.rb#7
235
+ SQLite3::Constants::TextRep::UTF16 = T.let(T.unsafe(nil), Integer)
236
+
237
+ # source://sqlite3//lib/sqlite3/constants.rb#6
238
+ SQLite3::Constants::TextRep::UTF16BE = T.let(T.unsafe(nil), Integer)
239
+
240
+ # source://sqlite3//lib/sqlite3/constants.rb#5
241
+ SQLite3::Constants::TextRep::UTF16LE = T.let(T.unsafe(nil), Integer)
242
+
243
+ # source://sqlite3//lib/sqlite3/constants.rb#4
244
+ SQLite3::Constants::TextRep::UTF8 = T.let(T.unsafe(nil), Integer)
245
+
246
+ # source://sqlite3//lib/sqlite3/errors.rb#27
247
+ class SQLite3::ConstraintException < ::SQLite3::Exception; end
248
+
249
+ # source://sqlite3//lib/sqlite3/errors.rb#19
250
+ class SQLite3::CorruptException < ::SQLite3::Exception; end
251
+
252
+ # The Database class encapsulates a single connection to a SQLite3 database.
253
+ # Its usage is very straightforward:
254
+ #
255
+ # require 'sqlite3'
256
+ #
257
+ # SQLite3::Database.new( "data.db" ) do |db|
258
+ # db.execute( "select * from table" ) do |row|
259
+ # p row
260
+ # end
261
+ # end
262
+ #
263
+ # It wraps the lower-level methods provided by the selected driver, and
264
+ # includes the Pragmas module for access to various pragma convenience
265
+ # methods.
266
+ #
267
+ # The Database class provides type translation services as well, by which
268
+ # the SQLite3 data types (which are all represented as strings) may be
269
+ # converted into their corresponding types (as defined in the schemas
270
+ # for their tables). This translation only occurs when querying data from
271
+ # the database--insertions and updates are all still typeless.
272
+ #
273
+ # Furthermore, the Database class has been designed to work well with the
274
+ # ArrayFields module from Ara Howard. If you require the ArrayFields
275
+ # module before performing a query, and if you have not enabled results as
276
+ # hashes, then the results will all be indexible by field name.
277
+ #
278
+ # source://sqlite3//lib/sqlite3/database.rb#35
279
+ class SQLite3::Database
280
+ include ::SQLite3::Pragmas
281
+
282
+ # call-seq: SQLite3::Database.new(file, options = {})
283
+ #
284
+ # Create a new Database object that opens the given file.
285
+ #
286
+ # Supported permissions +options+:
287
+ # - the default mode is <tt>READWRITE | CREATE</tt>
288
+ # - +:readonly+: boolean (default false), true to set the mode to +READONLY+
289
+ # - +:readwrite+: boolean (default false), true to set the mode to +READWRITE+
290
+ # - +:flags+: set the mode to a combination of SQLite3::Constants::Open flags.
291
+ #
292
+ # Supported encoding +options+:
293
+ # - +:utf16+: boolean (default false), is the filename's encoding UTF-16 (only needed if the filename encoding is not UTF_16LE or BE)
294
+ #
295
+ # Other supported +options+:
296
+ # - +:strict+: boolean (default false), disallow the use of double-quoted string literals (see https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted)
297
+ # - +:results_as_hash+: boolean (default false), return rows as hashes instead of arrays
298
+ # - +:type_translation+: boolean (default false), enable type translation
299
+ # - +:default_transaction_mode+: one of +:deferred+ (default), +:immediate+, or +:exclusive+. If a mode is not specified in a call to #transaction, this will be the default transaction mode.
300
+ #
301
+ # @return [Database] a new instance of Database
302
+ #
303
+ # source://sqlite3//lib/sqlite3/database.rb#91
304
+ def initialize(file, options = T.unsafe(nil), zvfs = T.unsafe(nil)); end
305
+
306
+ # Installs (or removes) a block that will be invoked for every access
307
+ # to the database. If the block returns 0 (or +nil+), the statement
308
+ # is allowed to proceed. Returning 1 causes an authorization error to
309
+ # occur, and returning 2 causes the access to be silently denied.
310
+ #
311
+ # source://sqlite3//lib/sqlite3/database.rb#167
312
+ def authorizer(&block); end
313
+
314
+ def authorizer=(_arg0); end
315
+ def busy_handler(*_arg0); end
316
+ def busy_timeout(_arg0); end
317
+ def busy_timeout=(_arg0); end
318
+ def changes; end
319
+ def close; end
320
+ def closed?; end
321
+ def collation(_arg0, _arg1); end
322
+
323
+ # Returns the value of attribute collations.
324
+ #
325
+ # source://sqlite3//lib/sqlite3/database.rb#36
326
+ def collations; end
327
+
328
+ # Commits the current transaction. If there is no current transaction,
329
+ # this will cause an error to be raised. This returns +true+, in order
330
+ # to allow it to be used in idioms like
331
+ # <tt>abort? and rollback or commit</tt>.
332
+ #
333
+ # source://sqlite3//lib/sqlite3/database.rb#674
334
+ def commit; end
335
+
336
+ def complete?(_arg0); end
337
+
338
+ # Creates a new aggregate function for use in SQL statements. Aggregate
339
+ # functions are functions that apply over every row in the result set,
340
+ # instead of over just a single row. (A very common aggregate function
341
+ # is the "count" function, for determining the number of rows that match
342
+ # a query.)
343
+ #
344
+ # The new function will be added as +name+, with the given +arity+. (For
345
+ # variable arity functions, use -1 for the arity.)
346
+ #
347
+ # The +step+ parameter must be a proc object that accepts as its first
348
+ # parameter a FunctionProxy instance (representing the function
349
+ # invocation), with any subsequent parameters (up to the function's arity).
350
+ # The +step+ callback will be invoked once for each row of the result set.
351
+ #
352
+ # The +finalize+ parameter must be a +proc+ object that accepts only a
353
+ # single parameter, the FunctionProxy instance representing the current
354
+ # function invocation. It should invoke FunctionProxy#result= to
355
+ # store the result of the function.
356
+ #
357
+ # Example:
358
+ #
359
+ # db.create_aggregate( "lengths", 1 ) do
360
+ # step do |func, value|
361
+ # func[ :total ] ||= 0
362
+ # func[ :total ] += ( value ? value.length : 0 )
363
+ # end
364
+ #
365
+ # finalize do |func|
366
+ # func.result = func[ :total ] || 0
367
+ # end
368
+ # end
369
+ #
370
+ # puts db.get_first_value( "select lengths(name) from table" )
371
+ #
372
+ # See also #create_aggregate_handler for a more object-oriented approach to
373
+ # aggregate functions.
374
+ #
375
+ # source://sqlite3//lib/sqlite3/database.rb#462
376
+ def create_aggregate(name, arity, step = T.unsafe(nil), finalize = T.unsafe(nil), text_rep = T.unsafe(nil), &block); end
377
+
378
+ # This is another approach to creating an aggregate function (see
379
+ # #create_aggregate). Instead of explicitly specifying the name,
380
+ # callbacks, arity, and type, you specify a factory object
381
+ # (the "handler") that knows how to obtain all of that information. The
382
+ # handler should respond to the following messages:
383
+ #
384
+ # +arity+:: corresponds to the +arity+ parameter of #create_aggregate. This
385
+ # message is optional, and if the handler does not respond to it,
386
+ # the function will have an arity of -1.
387
+ # +name+:: this is the name of the function. The handler _must_ implement
388
+ # this message.
389
+ # +new+:: this must be implemented by the handler. It should return a new
390
+ # instance of the object that will handle a specific invocation of
391
+ # the function.
392
+ #
393
+ # The handler instance (the object returned by the +new+ message, described
394
+ # above), must respond to the following messages:
395
+ #
396
+ # +step+:: this is the method that will be called for each step of the
397
+ # aggregate function's evaluation. It should implement the same
398
+ # signature as the +step+ callback for #create_aggregate.
399
+ # +finalize+:: this is the method that will be called to finalize the
400
+ # aggregate function's evaluation. It should implement the
401
+ # same signature as the +finalize+ callback for
402
+ # #create_aggregate.
403
+ #
404
+ # Example:
405
+ #
406
+ # class LengthsAggregateHandler
407
+ # def self.arity; 1; end
408
+ # def self.name; 'lengths'; end
409
+ #
410
+ # def initialize
411
+ # @total = 0
412
+ # end
413
+ #
414
+ # def step( ctx, name )
415
+ # @total += ( name ? name.length : 0 )
416
+ # end
417
+ #
418
+ # def finalize( ctx )
419
+ # ctx.result = @total
420
+ # end
421
+ # end
422
+ #
423
+ # db.create_aggregate_handler( LengthsAggregateHandler )
424
+ # puts db.get_first_value( "select lengths(name) from A" )
425
+ #
426
+ # source://sqlite3//lib/sqlite3/database.rb#560
427
+ def create_aggregate_handler(handler); end
428
+
429
+ # Creates a new function for use in SQL statements. It will be added as
430
+ # +name+, with the given +arity+. (For variable arity functions, use
431
+ # -1 for the arity.)
432
+ #
433
+ # The block should accept at least one parameter--the FunctionProxy
434
+ # instance that wraps this function invocation--and any other
435
+ # arguments it needs (up to its arity).
436
+ #
437
+ # The block does not return a value directly. Instead, it will invoke
438
+ # the FunctionProxy#result= method on the +func+ parameter and
439
+ # indicate the return value that way.
440
+ #
441
+ # Example:
442
+ #
443
+ # db.create_function( "maim", 1 ) do |func, value|
444
+ # if value.nil?
445
+ # func.result = nil
446
+ # else
447
+ # func.result = value.split(//).sort.join
448
+ # end
449
+ # end
450
+ #
451
+ # puts db.get_first_value( "select maim(name) from table" )
452
+ #
453
+ # source://sqlite3//lib/sqlite3/database.rb#417
454
+ def create_function(name, arity, text_rep = T.unsafe(nil), &block); end
455
+
456
+ # Define an aggregate function named +name+ using a object template
457
+ # object +aggregator+. +aggregator+ must respond to +step+ and +finalize+.
458
+ # +step+ will be called with row information and +finalize+ must return the
459
+ # return value for the aggregator function.
460
+ #
461
+ # _API Change:_ +aggregator+ must also implement +clone+. The provided
462
+ # +aggregator+ object will serve as template that is cloned to provide the
463
+ # individual instances of the aggregate function. Regular ruby objects
464
+ # already provide a suitable +clone+.
465
+ # The functions arity is the arity of the +step+ method.
466
+ #
467
+ # source://sqlite3//lib/sqlite3/database.rb#597
468
+ def define_aggregator(name, aggregator); end
469
+
470
+ def define_function(_arg0); end
471
+ def define_function_with_flags(_arg0, _arg1); end
472
+ def enable_load_extension(_arg0); end
473
+ def encoding; end
474
+ def errcode; end
475
+ def errmsg; end
476
+
477
+ # Executes the given SQL statement. If additional parameters are given,
478
+ # they are treated as bind variables, and are bound to the placeholders in
479
+ # the query.
480
+ #
481
+ # Note that if any of the values passed to this are hashes, then the
482
+ # key/value pairs are each bound separately, with the key being used as
483
+ # the name of the placeholder to bind the value to.
484
+ #
485
+ # The block is optional. If given, it will be invoked for each row returned
486
+ # by the query. Otherwise, any results are accumulated into an array and
487
+ # returned wholesale.
488
+ #
489
+ # See also #execute2, #query, and #execute_batch for additional ways of
490
+ # executing statements.
491
+ #
492
+ # source://sqlite3//lib/sqlite3/database.rb#208
493
+ def execute(sql, bind_vars = T.unsafe(nil), *args, &block); end
494
+
495
+ # Executes the given SQL statement, exactly as with #execute. However, the
496
+ # first row returned (either via the block, or in the returned array) is
497
+ # always the names of the columns. Subsequent rows correspond to the data
498
+ # from the result set.
499
+ #
500
+ # Thus, even if the query itself returns no rows, this method will always
501
+ # return at least one row--the names of the columns.
502
+ #
503
+ # See also #execute, #query, and #execute_batch for additional ways of
504
+ # executing statements.
505
+ #
506
+ # source://sqlite3//lib/sqlite3/database.rb#245
507
+ def execute2(sql, *bind_vars); end
508
+
509
+ # Executes all SQL statements in the given string. By contrast, the other
510
+ # means of executing queries will only execute the first statement in the
511
+ # string, ignoring all subsequent statements. This will execute each one
512
+ # in turn. The same bind parameters, if given, will be applied to each
513
+ # statement.
514
+ #
515
+ # This always returns +nil+, making it unsuitable for queries that return
516
+ # rows.
517
+ #
518
+ # See also #execute_batch2 for additional ways of
519
+ # executing statements.
520
+ #
521
+ # source://sqlite3//lib/sqlite3/database.rb#269
522
+ def execute_batch(sql, bind_vars = T.unsafe(nil), *args); end
523
+
524
+ # Executes all SQL statements in the given string. By contrast, the other
525
+ # means of executing queries will only execute the first statement in the
526
+ # string, ignoring all subsequent statements. This will execute each one
527
+ # in turn. Bind parameters cannot be passed to #execute_batch2.
528
+ #
529
+ # If a query is made, all values will be returned as strings.
530
+ # If no query is made, an empty array will be returned.
531
+ #
532
+ # Because all values except for 'NULL' are returned as strings,
533
+ # a block can be passed to parse the values accordingly.
534
+ #
535
+ # See also #execute_batch for additional ways of
536
+ # executing statements.
537
+ #
538
+ # source://sqlite3//lib/sqlite3/database.rb#322
539
+ def execute_batch2(sql, &block); end
540
+
541
+ def extended_result_codes=(_arg0); end
542
+
543
+ # Returns the filename for the database named +db_name+. +db_name+ defaults
544
+ # to "main". Main return `nil` or an empty string if the database is
545
+ # temporary or in-memory.
546
+ #
547
+ # source://sqlite3//lib/sqlite3/database.rb#190
548
+ def filename(db_name = T.unsafe(nil)); end
549
+
550
+ # A convenience method for obtaining the first row of a result set, and
551
+ # discarding all others. It is otherwise identical to #execute.
552
+ #
553
+ # See also #get_first_value.
554
+ #
555
+ # source://sqlite3//lib/sqlite3/database.rb#374
556
+ def get_first_row(sql, *bind_vars); end
557
+
558
+ # A convenience method for obtaining the first value of the first row of a
559
+ # result set, and discarding all other values and rows. It is otherwise
560
+ # identical to #execute.
561
+ #
562
+ # See also #get_first_row.
563
+ #
564
+ # source://sqlite3//lib/sqlite3/database.rb#383
565
+ def get_first_value(sql, *bind_vars); end
566
+
567
+ def interrupt; end
568
+ def last_insert_row_id; end
569
+ def load_extension(_arg0); end
570
+
571
+ # Returns a Statement object representing the given SQL. This does not
572
+ # execute the statement; it merely prepares the statement for execution.
573
+ #
574
+ # The Statement can then be executed using Statement#execute.
575
+ #
576
+ # source://sqlite3//lib/sqlite3/database.rb#176
577
+ def prepare(sql); end
578
+
579
+ # This is a convenience method for creating a statement, binding
580
+ # parameters to it, and calling execute:
581
+ #
582
+ # result = db.query( "select * from foo where a=?", [5])
583
+ # # is the same as
584
+ # result = db.prepare( "select * from foo where a=?" ).execute( 5 )
585
+ #
586
+ # You must be sure to call +close+ on the ResultSet instance that is
587
+ # returned, or you could have problems with locks on the table. If called
588
+ # with a block, +close+ will be invoked implicitly when the block
589
+ # terminates.
590
+ #
591
+ # source://sqlite3//lib/sqlite3/database.rb#344
592
+ def query(sql, bind_vars = T.unsafe(nil), *args); end
593
+
594
+ # Returns +true+ if the database has been open in readonly mode
595
+ # A helper to check before performing any operation
596
+ #
597
+ # @return [Boolean]
598
+ #
599
+ # source://sqlite3//lib/sqlite3/database.rb#690
600
+ def readonly?; end
601
+
602
+ # A boolean that indicates whether rows in result sets should be returned
603
+ # as hashes or not. By default, rows are returned as arrays.
604
+ #
605
+ # source://sqlite3//lib/sqlite3/database.rb#70
606
+ def results_as_hash; end
607
+
608
+ # A boolean that indicates whether rows in result sets should be returned
609
+ # as hashes or not. By default, rows are returned as arrays.
610
+ #
611
+ # source://sqlite3//lib/sqlite3/database.rb#70
612
+ def results_as_hash=(_arg0); end
613
+
614
+ # Rolls the current transaction back. If there is no current transaction,
615
+ # this will cause an error to be raised. This returns +true+, in order
616
+ # to allow it to be used in idioms like
617
+ # <tt>abort? and rollback or commit</tt>.
618
+ #
619
+ # source://sqlite3//lib/sqlite3/database.rb#683
620
+ def rollback; end
621
+
622
+ def total_changes; end
623
+ def trace(*_arg0); end
624
+
625
+ # Begins a new transaction. Note that nested transactions are not allowed
626
+ # by SQLite, so attempting to nest a transaction will result in a runtime
627
+ # exception.
628
+ #
629
+ # The +mode+ parameter may be either <tt>:deferred</tt>,
630
+ # <tt>:immediate</tt>, or <tt>:exclusive</tt>.
631
+ # If `nil` is specified, the default transaction mode, which was
632
+ # passed to #initialize, is used.
633
+ #
634
+ # If a block is given, the database instance is yielded to it, and the
635
+ # transaction is committed when the block terminates. If the block
636
+ # raises an exception, a rollback will be performed instead. Note that if
637
+ # a block is given, #commit and #rollback should never be called
638
+ # explicitly or you'll get an error when the block terminates.
639
+ #
640
+ # If a block is not given, it is the caller's responsibility to end the
641
+ # transaction explicitly, either by calling #commit, or by calling
642
+ # #rollback.
643
+ #
644
+ # source://sqlite3//lib/sqlite3/database.rb#651
645
+ def transaction(mode = T.unsafe(nil)); end
646
+
647
+ def transaction_active?; end
648
+
649
+ # Translates a +row+ of data from the database with the given +types+
650
+ #
651
+ # source://sqlite3//lib/sqlite3/database.rb#741
652
+ def translate_from_db(types, row); end
653
+
654
+ # Return the type translator employed by this database instance. Each
655
+ # database instance has its own type translator; this allows for different
656
+ # type handlers to be installed in each instance without affecting other
657
+ # instances. Furthermore, the translators are instantiated lazily, so that
658
+ # if a database does not use type translation, it will not be burdened by
659
+ # the overhead of a useless type translator. (See the Translator class.)
660
+ #
661
+ # source://sqlite3//lib/sqlite3/database.rb#159
662
+ def translator; end
663
+
664
+ # source://sqlite3//lib/sqlite3/database.rb#151
665
+ def type_translation; end
666
+
667
+ # source://sqlite3//lib/sqlite3/database.rb#144
668
+ def type_translation=(value); end
669
+
670
+ private
671
+
672
+ def db_filename(_arg0); end
673
+ def define_aggregator2(_arg0, _arg1); end
674
+ def disable_quirk_mode; end
675
+ def exec_batch(_arg0, _arg1); end
676
+
677
+ # source://sqlite3//lib/sqlite3/database.rb#749
678
+ def make_type_translator(should_translate); end
679
+
680
+ def open16(_arg0); end
681
+ def open_v2(_arg0, _arg1, _arg2); end
682
+
683
+ class << self
684
+ # Without block works exactly as new.
685
+ # With block, like new closes the database at the end, but unlike new
686
+ # returns the result of the block instead of the database instance.
687
+ #
688
+ # source://sqlite3//lib/sqlite3/database.rb#45
689
+ def open(*args); end
690
+
691
+ # Quotes the given string, making it safe to use in an SQL statement.
692
+ # It replaces all instances of the single-quote character with two
693
+ # single-quote characters. The modified string is returned.
694
+ #
695
+ # source://sqlite3//lib/sqlite3/database.rb#62
696
+ def quote(string); end
697
+ end
698
+ end
699
+
700
+ # A helper class for dealing with custom functions (see #create_function,
701
+ # #create_aggregate, and #create_aggregate_handler). It encapsulates the
702
+ # opaque function object that represents the current invocation. It also
703
+ # provides more convenient access to the API functions that operate on
704
+ # the function object.
705
+ #
706
+ # This class will almost _always_ be instantiated indirectly, by working
707
+ # with the create methods mentioned above.
708
+ #
709
+ # source://sqlite3//lib/sqlite3/database.rb#702
710
+ class SQLite3::Database::FunctionProxy
711
+ # Create a new FunctionProxy that encapsulates the given +func+ object.
712
+ # If context is non-nil, the functions context will be set to that. If
713
+ # it is non-nil, it must quack like a Hash. If it is nil, then none of
714
+ # the context functions will be available.
715
+ #
716
+ # @return [FunctionProxy] a new instance of FunctionProxy
717
+ #
718
+ # source://sqlite3//lib/sqlite3/database.rb#709
719
+ def initialize; end
720
+
721
+ # Returns the value with the given key from the context. This is only
722
+ # available to aggregate functions.
723
+ #
724
+ # source://sqlite3//lib/sqlite3/database.rb#729
725
+ def [](key); end
726
+
727
+ # Sets the value with the given key in the context. This is only
728
+ # available to aggregate functions.
729
+ #
730
+ # source://sqlite3//lib/sqlite3/database.rb#735
731
+ def []=(key, value); end
732
+
733
+ # (Only available to aggregate functions.) Returns the number of rows
734
+ # that the aggregate has processed so far. This will include the current
735
+ # row, and so will always return at least 1.
736
+ #
737
+ # source://sqlite3//lib/sqlite3/database.rb#723
738
+ def count; end
739
+
740
+ # Returns the value of attribute result.
741
+ #
742
+ # source://sqlite3//lib/sqlite3/database.rb#703
743
+ def result; end
744
+
745
+ # Sets the attribute result
746
+ #
747
+ # @param value the value to set the attribute result to.
748
+ #
749
+ # source://sqlite3//lib/sqlite3/database.rb#703
750
+ def result=(_arg0); end
751
+
752
+ # Set the result of the function to the given error message.
753
+ # The function will then return that error.
754
+ #
755
+ # source://sqlite3//lib/sqlite3/database.rb#716
756
+ def set_error(error); end
757
+ end
758
+
759
+ # source://sqlite3//lib/sqlite3/database.rb#747
760
+ SQLite3::Database::NULL_TRANSLATOR = T.let(T.unsafe(nil), Proc)
761
+
762
+ # source://sqlite3//lib/sqlite3/errors.rb#24
763
+ class SQLite3::EmptyException < ::SQLite3::Exception; end
764
+
765
+ # source://sqlite3//lib/sqlite3/errors.rb#4
766
+ class SQLite3::Exception < ::StandardError
767
+ # A convenience for accessing the error code for this exception.
768
+ #
769
+ # source://sqlite3//lib/sqlite3/errors.rb#6
770
+ def code; end
771
+ end
772
+
773
+ # source://sqlite3//lib/sqlite3/errors.rb#32
774
+ class SQLite3::FormatException < ::SQLite3::Exception; end
775
+
776
+ # source://sqlite3//lib/sqlite3/errors.rb#21
777
+ class SQLite3::FullException < ::SQLite3::Exception; end
778
+
779
+ # source://sqlite3//lib/sqlite3/errors.rb#18
780
+ class SQLite3::IOException < ::SQLite3::Exception; end
781
+
782
+ # source://sqlite3//lib/sqlite3/errors.rb#10
783
+ class SQLite3::InternalException < ::SQLite3::Exception; end
784
+
785
+ # source://sqlite3//lib/sqlite3/errors.rb#17
786
+ class SQLite3::InterruptException < ::SQLite3::Exception; end
787
+
788
+ # source://sqlite3//lib/sqlite3/errors.rb#14
789
+ class SQLite3::LockedException < ::SQLite3::Exception; end
790
+
791
+ # source://sqlite3//lib/sqlite3/errors.rb#15
792
+ class SQLite3::MemoryException < ::SQLite3::Exception; end
793
+
794
+ # source://sqlite3//lib/sqlite3/errors.rb#28
795
+ class SQLite3::MismatchException < ::SQLite3::Exception; end
796
+
797
+ # source://sqlite3//lib/sqlite3/errors.rb#29
798
+ class SQLite3::MisuseException < ::SQLite3::Exception; end
799
+
800
+ # source://sqlite3//lib/sqlite3/errors.rb#34
801
+ class SQLite3::NotADatabaseException < ::SQLite3::Exception; end
802
+
803
+ # source://sqlite3//lib/sqlite3/errors.rb#20
804
+ class SQLite3::NotFoundException < ::SQLite3::Exception; end
805
+
806
+ # source://sqlite3//lib/sqlite3/errors.rb#11
807
+ class SQLite3::PermissionException < ::SQLite3::Exception; end
808
+
809
+ # This module is intended for inclusion solely by the Database class. It
810
+ # defines convenience methods for the various pragmas supported by SQLite3.
811
+ #
812
+ # For a detailed description of these pragmas, see the SQLite3 documentation
813
+ # at http://sqlite.org/pragma.html.
814
+ #
815
+ # source://sqlite3//lib/sqlite3/pragmas.rb#10
816
+ module SQLite3::Pragmas
817
+ # source://sqlite3//lib/sqlite3/pragmas.rb#104
818
+ def application_id; end
819
+
820
+ # source://sqlite3//lib/sqlite3/pragmas.rb#108
821
+ def application_id=(integer); end
822
+
823
+ # source://sqlite3//lib/sqlite3/pragmas.rb#112
824
+ def auto_vacuum; end
825
+
826
+ # source://sqlite3//lib/sqlite3/pragmas.rb#116
827
+ def auto_vacuum=(mode); end
828
+
829
+ # source://sqlite3//lib/sqlite3/pragmas.rb#120
830
+ def automatic_index; end
831
+
832
+ # source://sqlite3//lib/sqlite3/pragmas.rb#124
833
+ def automatic_index=(mode); end
834
+
835
+ # source://sqlite3//lib/sqlite3/pragmas.rb#128
836
+ def busy_timeout; end
837
+
838
+ # source://sqlite3//lib/sqlite3/pragmas.rb#132
839
+ def busy_timeout=(milliseconds); end
840
+
841
+ # source://sqlite3//lib/sqlite3/pragmas.rb#136
842
+ def cache_size; end
843
+
844
+ # source://sqlite3//lib/sqlite3/pragmas.rb#140
845
+ def cache_size=(size); end
846
+
847
+ # source://sqlite3//lib/sqlite3/pragmas.rb#144
848
+ def cache_spill; end
849
+
850
+ # source://sqlite3//lib/sqlite3/pragmas.rb#148
851
+ def cache_spill=(mode); end
852
+
853
+ # source://sqlite3//lib/sqlite3/pragmas.rb#152
854
+ def case_sensitive_like=(mode); end
855
+
856
+ # source://sqlite3//lib/sqlite3/pragmas.rb#156
857
+ def cell_size_check; end
858
+
859
+ # source://sqlite3//lib/sqlite3/pragmas.rb#160
860
+ def cell_size_check=(mode); end
861
+
862
+ # source://sqlite3//lib/sqlite3/pragmas.rb#164
863
+ def checkpoint_fullfsync; end
864
+
865
+ # source://sqlite3//lib/sqlite3/pragmas.rb#168
866
+ def checkpoint_fullfsync=(mode); end
867
+
868
+ # :yields: row
869
+ #
870
+ # source://sqlite3//lib/sqlite3/pragmas.rb#172
871
+ def collation_list(&block); end
872
+
873
+ # :yields: row
874
+ #
875
+ # source://sqlite3//lib/sqlite3/pragmas.rb#176
876
+ def compile_options(&block); end
877
+
878
+ # source://sqlite3//lib/sqlite3/pragmas.rb#180
879
+ def count_changes; end
880
+
881
+ # source://sqlite3//lib/sqlite3/pragmas.rb#184
882
+ def count_changes=(mode); end
883
+
884
+ # source://sqlite3//lib/sqlite3/pragmas.rb#188
885
+ def data_version; end
886
+
887
+ # :yields: row
888
+ #
889
+ # source://sqlite3//lib/sqlite3/pragmas.rb#192
890
+ def database_list(&block); end
891
+
892
+ # source://sqlite3//lib/sqlite3/pragmas.rb#196
893
+ def default_cache_size; end
894
+
895
+ # source://sqlite3//lib/sqlite3/pragmas.rb#200
896
+ def default_cache_size=(size); end
897
+
898
+ # source://sqlite3//lib/sqlite3/pragmas.rb#204
899
+ def default_synchronous; end
900
+
901
+ # source://sqlite3//lib/sqlite3/pragmas.rb#208
902
+ def default_synchronous=(mode); end
903
+
904
+ # source://sqlite3//lib/sqlite3/pragmas.rb#212
905
+ def default_temp_store; end
906
+
907
+ # source://sqlite3//lib/sqlite3/pragmas.rb#216
908
+ def default_temp_store=(mode); end
909
+
910
+ # source://sqlite3//lib/sqlite3/pragmas.rb#220
911
+ def defer_foreign_keys; end
912
+
913
+ # source://sqlite3//lib/sqlite3/pragmas.rb#224
914
+ def defer_foreign_keys=(mode); end
915
+
916
+ # source://sqlite3//lib/sqlite3/pragmas.rb#228
917
+ def encoding; end
918
+
919
+ # source://sqlite3//lib/sqlite3/pragmas.rb#232
920
+ def encoding=(mode); end
921
+
922
+ # :yields: row
923
+ #
924
+ # source://sqlite3//lib/sqlite3/pragmas.rb#236
925
+ def foreign_key_check(*table, &block); end
926
+
927
+ # :yields: row
928
+ #
929
+ # source://sqlite3//lib/sqlite3/pragmas.rb#240
930
+ def foreign_key_list(table, &block); end
931
+
932
+ # source://sqlite3//lib/sqlite3/pragmas.rb#244
933
+ def foreign_keys; end
934
+
935
+ # source://sqlite3//lib/sqlite3/pragmas.rb#248
936
+ def foreign_keys=(mode); end
937
+
938
+ # source://sqlite3//lib/sqlite3/pragmas.rb#252
939
+ def freelist_count; end
940
+
941
+ # source://sqlite3//lib/sqlite3/pragmas.rb#256
942
+ def full_column_names; end
943
+
944
+ # source://sqlite3//lib/sqlite3/pragmas.rb#260
945
+ def full_column_names=(mode); end
946
+
947
+ # source://sqlite3//lib/sqlite3/pragmas.rb#264
948
+ def fullfsync; end
949
+
950
+ # source://sqlite3//lib/sqlite3/pragmas.rb#268
951
+ def fullfsync=(mode); end
952
+
953
+ # Returns +true+ or +false+ depending on the value of the named pragma.
954
+ #
955
+ # source://sqlite3//lib/sqlite3/pragmas.rb#13
956
+ def get_boolean_pragma(name); end
957
+
958
+ # Return the value of the given pragma.
959
+ #
960
+ # source://sqlite3//lib/sqlite3/pragmas.rb#55
961
+ def get_enum_pragma(name); end
962
+
963
+ # Returns the value of the given pragma as an integer.
964
+ #
965
+ # source://sqlite3//lib/sqlite3/pragmas.rb#72
966
+ def get_int_pragma(name); end
967
+
968
+ # Requests the given pragma (and parameters), and if the block is given,
969
+ # each row of the result set will be yielded to it. Otherwise, the results
970
+ # are returned as an array.
971
+ #
972
+ # source://sqlite3//lib/sqlite3/pragmas.rb#45
973
+ def get_query_pragma(name, *params, &block); end
974
+
975
+ # source://sqlite3//lib/sqlite3/pragmas.rb#272
976
+ def ignore_check_constraints=(mode); end
977
+
978
+ # :yields: row
979
+ #
980
+ # source://sqlite3//lib/sqlite3/pragmas.rb#276
981
+ def incremental_vacuum(pages, &block); end
982
+
983
+ # :yields: row
984
+ #
985
+ # source://sqlite3//lib/sqlite3/pragmas.rb#280
986
+ def index_info(index, &block); end
987
+
988
+ # :yields: row
989
+ #
990
+ # source://sqlite3//lib/sqlite3/pragmas.rb#284
991
+ def index_list(table, &block); end
992
+
993
+ # :yields: row
994
+ #
995
+ # source://sqlite3//lib/sqlite3/pragmas.rb#288
996
+ def index_xinfo(index, &block); end
997
+
998
+ # :yields: row
999
+ #
1000
+ # source://sqlite3//lib/sqlite3/pragmas.rb#292
1001
+ def integrity_check(*num_errors, &block); end
1002
+
1003
+ # source://sqlite3//lib/sqlite3/pragmas.rb#296
1004
+ def journal_mode; end
1005
+
1006
+ # source://sqlite3//lib/sqlite3/pragmas.rb#300
1007
+ def journal_mode=(mode); end
1008
+
1009
+ # source://sqlite3//lib/sqlite3/pragmas.rb#304
1010
+ def journal_size_limit; end
1011
+
1012
+ # source://sqlite3//lib/sqlite3/pragmas.rb#308
1013
+ def journal_size_limit=(size); end
1014
+
1015
+ # source://sqlite3//lib/sqlite3/pragmas.rb#312
1016
+ def legacy_file_format; end
1017
+
1018
+ # source://sqlite3//lib/sqlite3/pragmas.rb#316
1019
+ def legacy_file_format=(mode); end
1020
+
1021
+ # source://sqlite3//lib/sqlite3/pragmas.rb#320
1022
+ def locking_mode; end
1023
+
1024
+ # source://sqlite3//lib/sqlite3/pragmas.rb#324
1025
+ def locking_mode=(mode); end
1026
+
1027
+ # source://sqlite3//lib/sqlite3/pragmas.rb#328
1028
+ def max_page_count; end
1029
+
1030
+ # source://sqlite3//lib/sqlite3/pragmas.rb#332
1031
+ def max_page_count=(size); end
1032
+
1033
+ # source://sqlite3//lib/sqlite3/pragmas.rb#336
1034
+ def mmap_size; end
1035
+
1036
+ # source://sqlite3//lib/sqlite3/pragmas.rb#340
1037
+ def mmap_size=(size); end
1038
+
1039
+ # source://sqlite3//lib/sqlite3/pragmas.rb#344
1040
+ def page_count; end
1041
+
1042
+ # source://sqlite3//lib/sqlite3/pragmas.rb#348
1043
+ def page_size; end
1044
+
1045
+ # source://sqlite3//lib/sqlite3/pragmas.rb#352
1046
+ def page_size=(size); end
1047
+
1048
+ # source://sqlite3//lib/sqlite3/pragmas.rb#356
1049
+ def parser_trace=(mode); end
1050
+
1051
+ # source://sqlite3//lib/sqlite3/pragmas.rb#360
1052
+ def query_only; end
1053
+
1054
+ # source://sqlite3//lib/sqlite3/pragmas.rb#364
1055
+ def query_only=(mode); end
1056
+
1057
+ # :yields: row
1058
+ #
1059
+ # source://sqlite3//lib/sqlite3/pragmas.rb#368
1060
+ def quick_check(*num_errors, &block); end
1061
+
1062
+ # source://sqlite3//lib/sqlite3/pragmas.rb#372
1063
+ def read_uncommitted; end
1064
+
1065
+ # source://sqlite3//lib/sqlite3/pragmas.rb#376
1066
+ def read_uncommitted=(mode); end
1067
+
1068
+ # source://sqlite3//lib/sqlite3/pragmas.rb#380
1069
+ def recursive_triggers; end
1070
+
1071
+ # source://sqlite3//lib/sqlite3/pragmas.rb#384
1072
+ def recursive_triggers=(mode); end
1073
+
1074
+ # source://sqlite3//lib/sqlite3/pragmas.rb#388
1075
+ def reverse_unordered_selects; end
1076
+
1077
+ # source://sqlite3//lib/sqlite3/pragmas.rb#392
1078
+ def reverse_unordered_selects=(mode); end
1079
+
1080
+ # source://sqlite3//lib/sqlite3/pragmas.rb#396
1081
+ def schema_cookie; end
1082
+
1083
+ # source://sqlite3//lib/sqlite3/pragmas.rb#400
1084
+ def schema_cookie=(cookie); end
1085
+
1086
+ # source://sqlite3//lib/sqlite3/pragmas.rb#404
1087
+ def schema_version; end
1088
+
1089
+ # source://sqlite3//lib/sqlite3/pragmas.rb#408
1090
+ def schema_version=(version); end
1091
+
1092
+ # source://sqlite3//lib/sqlite3/pragmas.rb#412
1093
+ def secure_delete; end
1094
+
1095
+ # source://sqlite3//lib/sqlite3/pragmas.rb#416
1096
+ def secure_delete=(mode); end
1097
+
1098
+ # Sets the given pragma to the given boolean value. The value itself
1099
+ # may be +true+ or +false+, or any other commonly used string or
1100
+ # integer that represents truth.
1101
+ #
1102
+ # source://sqlite3//lib/sqlite3/pragmas.rb#20
1103
+ def set_boolean_pragma(name, mode); end
1104
+
1105
+ # Set the value of the given pragma to +mode+. The +mode+ parameter must
1106
+ # conform to one of the values in the given +enum+ array. Each entry in
1107
+ # the array is another array comprised of elements in the enumeration that
1108
+ # have duplicate values. See #synchronous, #default_synchronous,
1109
+ # #temp_store, and #default_temp_store for usage examples.
1110
+ #
1111
+ # @raise [Exception]
1112
+ #
1113
+ # source://sqlite3//lib/sqlite3/pragmas.rb#64
1114
+ def set_enum_pragma(name, mode, enums); end
1115
+
1116
+ # Set the value of the given pragma to the integer value of the +value+
1117
+ # parameter.
1118
+ #
1119
+ # source://sqlite3//lib/sqlite3/pragmas.rb#78
1120
+ def set_int_pragma(name, value); end
1121
+
1122
+ # source://sqlite3//lib/sqlite3/pragmas.rb#420
1123
+ def short_column_names; end
1124
+
1125
+ # source://sqlite3//lib/sqlite3/pragmas.rb#424
1126
+ def short_column_names=(mode); end
1127
+
1128
+ # source://sqlite3//lib/sqlite3/pragmas.rb#428
1129
+ def shrink_memory; end
1130
+
1131
+ # source://sqlite3//lib/sqlite3/pragmas.rb#432
1132
+ def soft_heap_limit; end
1133
+
1134
+ # source://sqlite3//lib/sqlite3/pragmas.rb#436
1135
+ def soft_heap_limit=(mode); end
1136
+
1137
+ # :yields: row
1138
+ #
1139
+ # source://sqlite3//lib/sqlite3/pragmas.rb#440
1140
+ def stats(&block); end
1141
+
1142
+ # source://sqlite3//lib/sqlite3/pragmas.rb#444
1143
+ def synchronous; end
1144
+
1145
+ # source://sqlite3//lib/sqlite3/pragmas.rb#448
1146
+ def synchronous=(mode); end
1147
+
1148
+ # Returns information about +table+. Yields each row of table information
1149
+ # if a block is provided.
1150
+ #
1151
+ # source://sqlite3//lib/sqlite3/pragmas.rb#527
1152
+ def table_info(table); end
1153
+
1154
+ # source://sqlite3//lib/sqlite3/pragmas.rb#452
1155
+ def temp_store; end
1156
+
1157
+ # source://sqlite3//lib/sqlite3/pragmas.rb#456
1158
+ def temp_store=(mode); end
1159
+
1160
+ # source://sqlite3//lib/sqlite3/pragmas.rb#460
1161
+ def threads; end
1162
+
1163
+ # source://sqlite3//lib/sqlite3/pragmas.rb#464
1164
+ def threads=(count); end
1165
+
1166
+ # source://sqlite3//lib/sqlite3/pragmas.rb#468
1167
+ def user_cookie; end
1168
+
1169
+ # source://sqlite3//lib/sqlite3/pragmas.rb#472
1170
+ def user_cookie=(cookie); end
1171
+
1172
+ # source://sqlite3//lib/sqlite3/pragmas.rb#476
1173
+ def user_version; end
1174
+
1175
+ # source://sqlite3//lib/sqlite3/pragmas.rb#480
1176
+ def user_version=(version); end
1177
+
1178
+ # source://sqlite3//lib/sqlite3/pragmas.rb#484
1179
+ def vdbe_addoptrace=(mode); end
1180
+
1181
+ # source://sqlite3//lib/sqlite3/pragmas.rb#488
1182
+ def vdbe_debug=(mode); end
1183
+
1184
+ # source://sqlite3//lib/sqlite3/pragmas.rb#492
1185
+ def vdbe_listing=(mode); end
1186
+
1187
+ # source://sqlite3//lib/sqlite3/pragmas.rb#496
1188
+ def vdbe_trace; end
1189
+
1190
+ # source://sqlite3//lib/sqlite3/pragmas.rb#500
1191
+ def vdbe_trace=(mode); end
1192
+
1193
+ # source://sqlite3//lib/sqlite3/pragmas.rb#504
1194
+ def wal_autocheckpoint; end
1195
+
1196
+ # source://sqlite3//lib/sqlite3/pragmas.rb#508
1197
+ def wal_autocheckpoint=(mode); end
1198
+
1199
+ # source://sqlite3//lib/sqlite3/pragmas.rb#512
1200
+ def wal_checkpoint; end
1201
+
1202
+ # source://sqlite3//lib/sqlite3/pragmas.rb#516
1203
+ def wal_checkpoint=(mode); end
1204
+
1205
+ # source://sqlite3//lib/sqlite3/pragmas.rb#520
1206
+ def writable_schema=(mode); end
1207
+
1208
+ private
1209
+
1210
+ # Since SQLite 3.3.8, the table_info pragma has returned the default
1211
+ # value of the row as a quoted SQL value. This method essentially
1212
+ # unquotes those values.
1213
+ #
1214
+ # source://sqlite3//lib/sqlite3/pragmas.rb#583
1215
+ def tweak_default(hash); end
1216
+
1217
+ # Compares two version strings
1218
+ #
1219
+ # source://sqlite3//lib/sqlite3/pragmas.rb#567
1220
+ def version_compare(v1, v2); end
1221
+ end
1222
+
1223
+ # The enumeration of valid auto vacuum modes.
1224
+ #
1225
+ # source://sqlite3//lib/sqlite3/pragmas.rb#89
1226
+ SQLite3::Pragmas::AUTO_VACUUM_MODES = T.let(T.unsafe(nil), Array)
1227
+
1228
+ # The list of valid encodings.
1229
+ #
1230
+ # source://sqlite3//lib/sqlite3/pragmas.rb#99
1231
+ SQLite3::Pragmas::ENCODINGS = T.let(T.unsafe(nil), Array)
1232
+
1233
+ # The list of valid journaling modes.
1234
+ #
1235
+ # source://sqlite3//lib/sqlite3/pragmas.rb#92
1236
+ SQLite3::Pragmas::JOURNAL_MODES = T.let(T.unsafe(nil), Array)
1237
+
1238
+ # The list of valid locking modes.
1239
+ #
1240
+ # source://sqlite3//lib/sqlite3/pragmas.rb#96
1241
+ SQLite3::Pragmas::LOCKING_MODES = T.let(T.unsafe(nil), Array)
1242
+
1243
+ # The enumeration of valid synchronous modes.
1244
+ #
1245
+ # source://sqlite3//lib/sqlite3/pragmas.rb#83
1246
+ SQLite3::Pragmas::SYNCHRONOUS_MODES = T.let(T.unsafe(nil), Array)
1247
+
1248
+ # The enumeration of valid temp store modes.
1249
+ #
1250
+ # source://sqlite3//lib/sqlite3/pragmas.rb#86
1251
+ SQLite3::Pragmas::TEMP_STORE_MODES = T.let(T.unsafe(nil), Array)
1252
+
1253
+ # The list of valid WAL checkpoints.
1254
+ #
1255
+ # source://sqlite3//lib/sqlite3/pragmas.rb#102
1256
+ SQLite3::Pragmas::WAL_CHECKPOINTS = T.let(T.unsafe(nil), Array)
1257
+
1258
+ # source://sqlite3//lib/sqlite3/errors.rb#23
1259
+ class SQLite3::ProtocolException < ::SQLite3::Exception; end
1260
+
1261
+ # source://sqlite3//lib/sqlite3/errors.rb#33
1262
+ class SQLite3::RangeException < ::SQLite3::Exception; end
1263
+
1264
+ # source://sqlite3//lib/sqlite3/errors.rb#16
1265
+ class SQLite3::ReadOnlyException < ::SQLite3::Exception; end
1266
+
1267
+ # The ResultSet object encapsulates the enumerability of a query's output.
1268
+ # It is a simple cursor over the data that the query returns. It will
1269
+ # very rarely (if ever) be instantiated directly. Instead, clients should
1270
+ # obtain a ResultSet instance via Statement#execute.
1271
+ #
1272
+ # source://sqlite3//lib/sqlite3/resultset.rb#10
1273
+ class SQLite3::ResultSet
1274
+ include ::Enumerable
1275
+
1276
+ # Create a new ResultSet attached to the given database, using the
1277
+ # given sql text.
1278
+ #
1279
+ # @return [ResultSet] a new instance of ResultSet
1280
+ #
1281
+ # source://sqlite3//lib/sqlite3/resultset.rb#64
1282
+ def initialize(db, stmt); end
1283
+
1284
+ # Closes the statement that spawned this result set.
1285
+ # <em>Use with caution!</em> Closing a result set will automatically
1286
+ # close any other result sets that were spawned from the same statement.
1287
+ #
1288
+ # source://sqlite3//lib/sqlite3/resultset.rb#141
1289
+ def close; end
1290
+
1291
+ # Queries whether the underlying statement has been closed or not.
1292
+ #
1293
+ # @return [Boolean]
1294
+ #
1295
+ # source://sqlite3//lib/sqlite3/resultset.rb#146
1296
+ def closed?; end
1297
+
1298
+ # Returns the names of the columns returned by this result set.
1299
+ #
1300
+ # source://sqlite3//lib/sqlite3/resultset.rb#156
1301
+ def columns; end
1302
+
1303
+ # Required by the Enumerable mixin. Provides an internal iterator over the
1304
+ # rows of the result set.
1305
+ #
1306
+ # source://sqlite3//lib/sqlite3/resultset.rb#124
1307
+ def each; end
1308
+
1309
+ # Provides an internal iterator over the rows of the result set where
1310
+ # each row is yielded as a hash.
1311
+ #
1312
+ # source://sqlite3//lib/sqlite3/resultset.rb#132
1313
+ def each_hash; end
1314
+
1315
+ # Query whether the cursor has reached the end of the result set or not.
1316
+ #
1317
+ # @return [Boolean]
1318
+ #
1319
+ # source://sqlite3//lib/sqlite3/resultset.rb#78
1320
+ def eof?; end
1321
+
1322
+ # Obtain the next row from the cursor. If there are no more rows to be
1323
+ # had, this will return +nil+. If type translation is active on the
1324
+ # corresponding database, the values in the row will be translated
1325
+ # according to their types.
1326
+ #
1327
+ # The returned value will be an array, unless Database#results_as_hash has
1328
+ # been set to +true+, in which case the returned value will be a hash.
1329
+ #
1330
+ # For arrays, the column names are accessible via the +fields+ property,
1331
+ # and the column types are accessible via the +types+ property.
1332
+ #
1333
+ # For hashes, the column names are the keys of the hash, and the column
1334
+ # types are accessible via the +types+ property.
1335
+ #
1336
+ # source://sqlite3//lib/sqlite3/resultset.rb#95
1337
+ def next; end
1338
+
1339
+ # Return the next row as a hash
1340
+ #
1341
+ # source://sqlite3//lib/sqlite3/resultset.rb#161
1342
+ def next_hash; end
1343
+
1344
+ # Reset the cursor, so that a result set which has reached end-of-file
1345
+ # can be rewound and reiterated.
1346
+ #
1347
+ # source://sqlite3//lib/sqlite3/resultset.rb#71
1348
+ def reset(*bind_params); end
1349
+
1350
+ # Returns the types of the columns returned by this result set.
1351
+ #
1352
+ # source://sqlite3//lib/sqlite3/resultset.rb#151
1353
+ def types; end
1354
+ end
1355
+
1356
+ # source://sqlite3//lib/sqlite3/resultset.rb#13
1357
+ class SQLite3::ResultSet::ArrayWithTypes < ::Array
1358
+ # Returns the value of attribute types.
1359
+ #
1360
+ # source://sqlite3//lib/sqlite3/resultset.rb#14
1361
+ def types; end
1362
+
1363
+ # Sets the attribute types
1364
+ #
1365
+ # @param value the value to set the attribute types to.
1366
+ #
1367
+ # source://sqlite3//lib/sqlite3/resultset.rb#14
1368
+ def types=(_arg0); end
1369
+ end
1370
+
1371
+ # source://sqlite3//lib/sqlite3/resultset.rb#17
1372
+ class SQLite3::ResultSet::ArrayWithTypesAndFields < ::Array
1373
+ # source://sqlite3//lib/sqlite3/resultset.rb#28
1374
+ def fields; end
1375
+
1376
+ # Sets the attribute fields
1377
+ #
1378
+ # @param value the value to set the attribute fields to.
1379
+ #
1380
+ # source://sqlite3//lib/sqlite3/resultset.rb#19
1381
+ def fields=(_arg0); end
1382
+
1383
+ # source://sqlite3//lib/sqlite3/resultset.rb#21
1384
+ def types; end
1385
+
1386
+ # Sets the attribute types
1387
+ #
1388
+ # @param value the value to set the attribute types to.
1389
+ #
1390
+ # source://sqlite3//lib/sqlite3/resultset.rb#18
1391
+ def types=(_arg0); end
1392
+ end
1393
+
1394
+ # The class of which we return an object in case we want a Hash as
1395
+ # result.
1396
+ #
1397
+ # source://sqlite3//lib/sqlite3/resultset.rb#38
1398
+ class SQLite3::ResultSet::HashWithTypesAndFields < ::Hash
1399
+ # source://sqlite3//lib/sqlite3/resultset.rb#56
1400
+ def [](key); end
1401
+
1402
+ # source://sqlite3//lib/sqlite3/resultset.rb#49
1403
+ def fields; end
1404
+
1405
+ # Sets the attribute fields
1406
+ #
1407
+ # @param value the value to set the attribute fields to.
1408
+ #
1409
+ # source://sqlite3//lib/sqlite3/resultset.rb#40
1410
+ def fields=(_arg0); end
1411
+
1412
+ # source://sqlite3//lib/sqlite3/resultset.rb#42
1413
+ def types; end
1414
+
1415
+ # source://sqlite3//lib/sqlite3/resultset.rb#39
1416
+ def types=(_arg0); end
1417
+ end
1418
+
1419
+ # source://sqlite3//lib/sqlite3/errors.rb#9
1420
+ class SQLite3::SQLException < ::SQLite3::Exception; end
1421
+
1422
+ SQLite3::SQLITE_LOADED_VERSION = T.let(T.unsafe(nil), String)
1423
+ SQLite3::SQLITE_VERSION = T.let(T.unsafe(nil), String)
1424
+ SQLite3::SQLITE_VERSION_NUMBER = T.let(T.unsafe(nil), Integer)
1425
+
1426
+ # source://sqlite3//lib/sqlite3/errors.rb#25
1427
+ class SQLite3::SchemaChangedException < ::SQLite3::Exception; end
1428
+
1429
+ # A statement represents a prepared-but-unexecuted SQL query. It will rarely
1430
+ # (if ever) be instantiated directly by a client, and is most often obtained
1431
+ # via the Database#prepare method.
1432
+ #
1433
+ # source://sqlite3//lib/sqlite3/statement.rb#14
1434
+ class SQLite3::Statement
1435
+ include ::Enumerable
1436
+
1437
+ def initialize(_arg0, _arg1); end
1438
+
1439
+ # Returns true if the statement is currently active, meaning it has an
1440
+ # open result set.
1441
+ #
1442
+ # @return [Boolean]
1443
+ #
1444
+ # source://sqlite3//lib/sqlite3/statement.rb#94
1445
+ def active?; end
1446
+
1447
+ def bind_param(_arg0, _arg1); end
1448
+ def bind_parameter_count; end
1449
+
1450
+ # Binds the given variables to the corresponding placeholders in the SQL
1451
+ # text.
1452
+ #
1453
+ # See Database#execute for a description of the valid placeholder
1454
+ # syntaxes.
1455
+ #
1456
+ # Example:
1457
+ #
1458
+ # stmt = db.prepare( "select * from table where a=? and b=?" )
1459
+ # stmt.bind_params( 15, "hello" )
1460
+ #
1461
+ # See also #execute, #bind_param, Statement#bind_param, and
1462
+ # Statement#bind_params.
1463
+ #
1464
+ # source://sqlite3//lib/sqlite3/statement.rb#35
1465
+ def bind_params(*bind_vars); end
1466
+
1467
+ def clear_bindings!; end
1468
+ def close; end
1469
+ def closed?; end
1470
+ def column_count; end
1471
+ def column_decltype(_arg0); end
1472
+ def column_name(_arg0); end
1473
+
1474
+ # Return an array of the column names for this statement. Note that this
1475
+ # may execute the statement in order to obtain the metadata; this makes it
1476
+ # a (potentially) expensive operation.
1477
+ #
1478
+ # source://sqlite3//lib/sqlite3/statement.rb#101
1479
+ def columns; end
1480
+
1481
+ def done?; end
1482
+
1483
+ # source://sqlite3//lib/sqlite3/statement.rb#106
1484
+ def each; end
1485
+
1486
+ # Execute the statement. This creates a new ResultSet object for the
1487
+ # statement's virtual machine. If a block was given, the new ResultSet will
1488
+ # be yielded to it; otherwise, the ResultSet will be returned.
1489
+ #
1490
+ # Any parameters will be bound to the statement using #bind_params.
1491
+ #
1492
+ # Example:
1493
+ #
1494
+ # stmt = db.prepare( "select * from table" )
1495
+ # stmt.execute do |result|
1496
+ # ...
1497
+ # end
1498
+ #
1499
+ # See also #bind_params, #execute!.
1500
+ #
1501
+ # @yield [@results]
1502
+ #
1503
+ # source://sqlite3//lib/sqlite3/statement.rb#61
1504
+ def execute(*bind_vars); end
1505
+
1506
+ # Execute the statement. If no block was given, this returns an array of
1507
+ # rows returned by executing the statement. Otherwise, each row will be
1508
+ # yielded to the block.
1509
+ #
1510
+ # Any parameters will be bound to the statement using #bind_params.
1511
+ #
1512
+ # Example:
1513
+ #
1514
+ # stmt = db.prepare( "select * from table" )
1515
+ # stmt.execute! do |row|
1516
+ # ...
1517
+ # end
1518
+ #
1519
+ # See also #bind_params, #execute.
1520
+ #
1521
+ # source://sqlite3//lib/sqlite3/statement.rb#87
1522
+ def execute!(*bind_vars, &block); end
1523
+
1524
+ # Performs a sanity check to ensure that the statement is not
1525
+ # closed. If it is, an exception is raised.
1526
+ #
1527
+ # source://sqlite3//lib/sqlite3/statement.rb#125
1528
+ def must_be_open!; end
1529
+
1530
+ # This is any text that followed the first valid SQL statement in the text
1531
+ # with which the statement was initialized. If there was no trailing text,
1532
+ # this will be the empty string.
1533
+ #
1534
+ # source://sqlite3//lib/sqlite3/statement.rb#20
1535
+ def remainder; end
1536
+
1537
+ def reset!; end
1538
+ def step; end
1539
+
1540
+ # Return an array of the data types for each column in this statement. Note
1541
+ # that this may execute the statement in order to obtain the metadata; this
1542
+ # makes it a (potentially) expensive operation.
1543
+ #
1544
+ # source://sqlite3//lib/sqlite3/statement.rb#117
1545
+ def types; end
1546
+
1547
+ private
1548
+
1549
+ # A convenience method for obtaining the metadata about the query. Note
1550
+ # that this will actually execute the SQL, which means it can be a
1551
+ # (potentially) expensive operation.
1552
+ #
1553
+ # source://sqlite3//lib/sqlite3/statement.rb#135
1554
+ def get_metadata; end
1555
+ end
1556
+
1557
+ # source://sqlite3//lib/sqlite3/errors.rb#26
1558
+ class SQLite3::TooBigException < ::SQLite3::Exception; end
1559
+
1560
+ # The Translator class encapsulates the logic and callbacks necessary for
1561
+ # converting string data to a value of some specified type. Every Database
1562
+ # instance may have a Translator instance, in order to assist in type
1563
+ # translation (Database#type_translation).
1564
+ #
1565
+ # Further, applications may define their own custom type translation logic
1566
+ # by registering translator blocks with the corresponding database's
1567
+ # translator instance (Database#translator).
1568
+ #
1569
+ # source://sqlite3//lib/sqlite3/translator.rb#14
1570
+ class SQLite3::Translator
1571
+ # Create a new Translator instance. It will be preinitialized with default
1572
+ # translators for most SQL data types.
1573
+ #
1574
+ # @return [Translator] a new instance of Translator
1575
+ #
1576
+ # source://sqlite3//lib/sqlite3/translator.rb#18
1577
+ def initialize; end
1578
+
1579
+ # Add a new translator block, which will be invoked to process type
1580
+ # translations to the given type. The type should be an SQL datatype, and
1581
+ # may include parentheses (i.e., "VARCHAR(30)"). However, any parenthetical
1582
+ # information is stripped off and discarded, so type translation decisions
1583
+ # are made solely on the "base" type name.
1584
+ #
1585
+ # The translator block itself should accept two parameters, "type" and
1586
+ # "value". In this case, the "type" is the full type name (including
1587
+ # parentheses), so the block itself may include logic for changing how a
1588
+ # type is translated based on the additional data. The "value" parameter
1589
+ # is the (string) data to convert.
1590
+ #
1591
+ # The block should return the translated value.
1592
+ #
1593
+ # source://sqlite3//lib/sqlite3/translator.rb#37
1594
+ def add_translator(type, &block); end
1595
+
1596
+ # Translate the given string value to a value of the given type. In the
1597
+ # absence of an installed translator block for the given type, the value
1598
+ # itself is always returned. Further, +nil+ values are never translated,
1599
+ # and are always passed straight through regardless of the type parameter.
1600
+ #
1601
+ # source://sqlite3//lib/sqlite3/translator.rb#48
1602
+ def translate(type, value); end
1603
+
1604
+ private
1605
+
1606
+ # Register the default translators for the current Translator instance.
1607
+ # This includes translators for most major SQL data types.
1608
+ #
1609
+ # source://sqlite3//lib/sqlite3/translator.rb#72
1610
+ def register_default_translators; end
1611
+
1612
+ # A convenience method for working with type names. This returns the "base"
1613
+ # type name, without any parenthetical data.
1614
+ #
1615
+ # source://sqlite3//lib/sqlite3/translator.rb#61
1616
+ def type_name(type); end
1617
+ end
1618
+
1619
+ # source://sqlite3//lib/sqlite3/errors.rb#30
1620
+ class SQLite3::UnsupportedException < ::SQLite3::Exception; end
1621
+
1622
+ # source://sqlite3//lib/sqlite3/version.rb#3
1623
+ SQLite3::VERSION = T.let(T.unsafe(nil), String)
1624
+
1625
+ # source://sqlite3//lib/sqlite3/value.rb#5
1626
+ class SQLite3::Value
1627
+ # @return [Value] a new instance of Value
1628
+ #
1629
+ # source://sqlite3//lib/sqlite3/value.rb#8
1630
+ def initialize(db, handle); end
1631
+
1632
+ # Returns the value of attribute handle.
1633
+ #
1634
+ # source://sqlite3//lib/sqlite3/value.rb#6
1635
+ def handle; end
1636
+
1637
+ # source://sqlite3//lib/sqlite3/value.rb#21
1638
+ def length(utf16 = T.unsafe(nil)); end
1639
+
1640
+ # @return [Boolean]
1641
+ #
1642
+ # source://sqlite3//lib/sqlite3/value.rb#13
1643
+ def null?; end
1644
+
1645
+ # source://sqlite3//lib/sqlite3/value.rb#17
1646
+ def to_blob; end
1647
+
1648
+ # source://sqlite3//lib/sqlite3/value.rb#29
1649
+ def to_f; end
1650
+
1651
+ # source://sqlite3//lib/sqlite3/value.rb#33
1652
+ def to_i; end
1653
+
1654
+ # source://sqlite3//lib/sqlite3/value.rb#37
1655
+ def to_int64; end
1656
+
1657
+ # source://sqlite3//lib/sqlite3/value.rb#41
1658
+ def to_s(utf16 = T.unsafe(nil)); end
1659
+
1660
+ # source://sqlite3//lib/sqlite3/value.rb#45
1661
+ def type; end
1662
+ end
1663
+
1664
+ # source://sqlite3//lib/sqlite3/version.rb#5
1665
+ module SQLite3::VersionProxy; end
1666
+
1667
+ # source://sqlite3//lib/sqlite3/version.rb#9
1668
+ SQLite3::VersionProxy::BUILD = T.let(T.unsafe(nil), T.untyped)
1669
+
1670
+ # source://sqlite3//lib/sqlite3/version.rb#6
1671
+ SQLite3::VersionProxy::MAJOR = T.let(T.unsafe(nil), Integer)
1672
+
1673
+ # source://sqlite3//lib/sqlite3/version.rb#7
1674
+ SQLite3::VersionProxy::MINOR = T.let(T.unsafe(nil), Integer)
1675
+
1676
+ # source://sqlite3//lib/sqlite3/version.rb#11
1677
+ SQLite3::VersionProxy::STRING = T.let(T.unsafe(nil), String)
1678
+
1679
+ # source://sqlite3//lib/sqlite3/version.rb#8
1680
+ SQLite3::VersionProxy::TINY = T.let(T.unsafe(nil), Integer)
1681
+
1682
+ # source://sqlite3//lib/sqlite3/version.rb#13
1683
+ SQLite3::VersionProxy::VERSION = T.let(T.unsafe(nil), String)
1684
+
1685
+ # source://sqlite3//lib/sqlite3/statement.rb#4
1686
+ class String
1687
+ include ::Comparable
1688
+
1689
+ # source://sqlite3//lib/sqlite3/statement.rb#5
1690
+ def to_blob; end
1691
+ end