amalgalite 1.9.4 → 2.0.0

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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY.md +19 -2
  3. data/Manifest.txt +4 -54
  4. data/README.md +1 -1
  5. data/TODO.md +4 -3
  6. data/amalgalite.gemspec +39 -0
  7. data/ext/amalgalite/c/amalgalite.c +0 -1
  8. data/ext/amalgalite/c/amalgalite_constants.c +155 -10
  9. data/ext/amalgalite/c/extconf.rb +5 -2
  10. data/ext/amalgalite/c/gen_constants.rb +32 -1
  11. data/ext/amalgalite/c/sqlite3.c +19308 -9112
  12. data/ext/amalgalite/c/sqlite3.h +909 -296
  13. data/ext/amalgalite/c/sqlite3ext.h +11 -0
  14. data/lib/amalgalite/column.rb +20 -2
  15. data/lib/amalgalite/result/row.rb +83 -0
  16. data/lib/amalgalite/result.rb +15 -0
  17. data/lib/amalgalite/statement.rb +32 -24
  18. data/lib/amalgalite/type_maps/default_map.rb +48 -56
  19. data/lib/amalgalite/version.rb +1 -1
  20. metadata +32 -119
  21. data/Rakefile +0 -27
  22. data/bin/amalgalite-pack +0 -147
  23. data/examples/a.rb +0 -9
  24. data/examples/blob.rb +0 -88
  25. data/examples/bootstrap.rb +0 -36
  26. data/examples/define_aggregate.rb +0 -75
  27. data/examples/define_function.rb +0 -104
  28. data/examples/fts5.rb +0 -152
  29. data/examples/gem-db.rb +0 -94
  30. data/examples/require_me.rb +0 -11
  31. data/examples/requires.rb +0 -42
  32. data/examples/schema-info.rb +0 -34
  33. data/ext/amalgalite/c/amalgalite_requires_bootstrap.c +0 -283
  34. data/lib/amalgalite/core_ext/kernel/require.rb +0 -21
  35. data/lib/amalgalite/packer.rb +0 -231
  36. data/lib/amalgalite/requires.rb +0 -151
  37. data/spec/aggregate_spec.rb +0 -158
  38. data/spec/amalgalite_spec.rb +0 -4
  39. data/spec/blob_spec.rb +0 -78
  40. data/spec/boolean_spec.rb +0 -24
  41. data/spec/busy_handler.rb +0 -157
  42. data/spec/data/iso-3166-country.txt +0 -242
  43. data/spec/data/iso-3166-schema.sql +0 -22
  44. data/spec/data/iso-3166-subcountry.txt +0 -3995
  45. data/spec/data/make-iso-db.sh +0 -12
  46. data/spec/database_spec.rb +0 -505
  47. data/spec/default_map_spec.rb +0 -92
  48. data/spec/function_spec.rb +0 -78
  49. data/spec/integeration_spec.rb +0 -97
  50. data/spec/iso_3166_database.rb +0 -58
  51. data/spec/json_spec.rb +0 -24
  52. data/spec/packer_spec.rb +0 -60
  53. data/spec/paths_spec.rb +0 -28
  54. data/spec/progress_handler_spec.rb +0 -91
  55. data/spec/requires_spec.rb +0 -54
  56. data/spec/rtree_spec.rb +0 -66
  57. data/spec/schema_spec.rb +0 -131
  58. data/spec/spec_helper.rb +0 -48
  59. data/spec/sqlite3/constants_spec.rb +0 -108
  60. data/spec/sqlite3/database_status_spec.rb +0 -36
  61. data/spec/sqlite3/status_spec.rb +0 -22
  62. data/spec/sqlite3/version_spec.rb +0 -28
  63. data/spec/sqlite3_spec.rb +0 -53
  64. data/spec/statement_spec.rb +0 -168
  65. data/spec/storage_map_spec.rb +0 -38
  66. data/spec/tap_spec.rb +0 -57
  67. data/spec/text_map_spec.rb +0 -20
  68. data/spec/type_map_spec.rb +0 -14
  69. data/spec/version_spec.rb +0 -8
  70. data/tasks/custom.rake +0 -101
  71. data/tasks/default.rake +0 -257
  72. data/tasks/extension.rake +0 -28
  73. data/tasks/this.rb +0 -208
  74. /data/{LICENSE → LICENSE.txt} +0 -0
@@ -7,19 +7,22 @@ $ruby = ARGV.shift if ARGV[0]
7
7
 
8
8
  # make available table and column meta data api
9
9
  $CFLAGS += " -DSQLITE_ENABLE_BYTECODE_VTAB=1"
10
+ $CFLAGS += " -DSQLITE_ENABLE_CARRAY=1"
10
11
  $CFLAGS += " -DSQLITE_ENABLE_COLUMN_METADATA=1"
11
- $CFLAGS += " -DSQLITE_ENABLE_DBSTAT_VTAB=1"
12
12
  $CFLAGS += " -DSQLITE_ENABLE_DBPAGE_VTAB=1"
13
+ $CFLAGS += " -DSQLITE_ENABLE_DBSTAT_VTAB=1"
13
14
  $CFLAGS += " -DSQLITE_ENABLE_EXPLAIN_COMMENTS=1"
14
15
  $CFLAGS += " -DSQLITE_ENABLE_FTS3=1"
15
16
  $CFLAGS += " -DSQLITE_ENABLE_FTS3_PARENTHESIS=1"
16
17
  $CFLAGS += " -DSQLITE_ENABLE_FTS4=1"
17
18
  $CFLAGS += " -DSQLITE_ENABLE_FTS5=1"
18
19
  $CFLAGS += " -DSQLITE_ENABLE_GEOPOLY=1"
20
+ $CFLAGS += " -DSQLITE_ENABLE_HIDDEN_COLUMNS=1"
19
21
  $CFLAGS += " -DSQLITE_ENABLE_MATH_FUNCTIONS=1"
20
22
  $CFLAGS += " -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1"
21
23
  $CFLAGS += " -DSQLITE_ENABLE_NORMALIZE=1"
22
24
  $CFLAGS += " -DSQLITE_ENABLE_NULL_TRIM=1"
25
+ $CFLAGS += " -DSQLITE_ENABLE_PERCENTILE=1"
23
26
  $CFLAGS += " -DSQLITE_ENABLE_PREUPDATE_HOOK=1"
24
27
  $CFLAGS ++ " -DSQLITE_EANBLE_QPSG=1"
25
28
  $CFLAGS += " -DSQLITE_ENABLE_RBU=1"
@@ -80,5 +83,5 @@ ignoreable_warnings.each do |warning|
80
83
  $CFLAGS += " -Wno-#{warning}"
81
84
  end
82
85
 
83
- subdir = RUBY_VERSION.sub(/\.\d$/,'')
86
+ subdir = RUBY_VERSION.sub(/\.\d+\z/,'')
84
87
  create_makefile("amalgalite/#{subdir}/amalgalite")
@@ -41,6 +41,9 @@ result_codes = %w[
41
41
  SQLITE_ERROR_MISSING_COLLSEQ
42
42
  SQLITE_ERROR_RETRY
43
43
  SQLITE_ERROR_SNAPSHOT
44
+ SQLITE_ERROR_RESERVESIZE
45
+ SQLITE_ERROR_KEY
46
+ SQLITE_ERROR_UNABLE
44
47
  SQLITE_IOERR_READ
45
48
  SQLITE_IOERR_SHORT_READ
46
49
  SQLITE_IOERR_WRITE
@@ -74,6 +77,9 @@ result_codes = %w[
74
77
  SQLITE_IOERR_ROLLBACK_ATOMIC
75
78
  SQLITE_IOERR_DATA
76
79
  SQLITE_IOERR_CORRUPTFS
80
+ SQLITE_IOERR_IN_PAGE
81
+ SQLITE_IOERR_BADKEY
82
+ SQLITE_IOERR_CODEC
77
83
  SQLITE_LOCKED_SHAREDCACHE
78
84
  SQLITE_LOCKED_VTAB
79
85
  SQLITE_BUSY_RECOVERY
@@ -106,8 +112,10 @@ result_codes = %w[
106
112
  SQLITE_CONSTRAINT_VTAB
107
113
  SQLITE_CONSTRAINT_ROWID
108
114
  SQLITE_CONSTRAINT_PINNED
115
+ SQLITE_CONSTRAINT_DATATYPE
109
116
  SQLITE_NOTICE_RECOVER_WAL
110
117
  SQLITE_NOTICE_RECOVER_ROLLBACK
118
+ SQLITE_NOTICE_RBU
111
119
  SQLITE_WARNING_AUTOINDEX
112
120
  SQLITE_AUTH_USER
113
121
  SQLITE_OK_LOAD_PERMANENTLY
@@ -115,7 +123,14 @@ result_codes = %w[
115
123
  ]
116
124
 
117
125
  deprecated_codes = %w[ SQLITE_GET_LOCKPROXYFILE SQLITE_SET_LOCKPROXYFILE SQLITE_LAST_ERRNO ]
118
- version_codes = %w[ SQLITE_VERSION SQLITE_VERSION_NUMBER SQLITE_SOURCE_ID ]
126
+ version_codes = %w[
127
+ SQLITE_VERSION
128
+ SQLITE_VERSION_NUMBER
129
+ SQLITE_SOURCE_ID
130
+ SQLITE_SCM_BRANCH
131
+ SQLITE_SCM_TAGS
132
+ SQLITE_SCM_DATETIME
133
+ ]
119
134
  rtree_codes = %w[ NOT_WITHIN PARTLY_WITHIN FULLY_WITHIN ]
120
135
 
121
136
  authorizer_codes = %w[
@@ -168,6 +183,9 @@ text_encoding_codes = %w[
168
183
  SQLITE_DIRECTONLY
169
184
  SQLITE_SUBTYPE
170
185
  SQLITE_INNOCUOUS
186
+ SQLITE_RESULT_SUBTYPE
187
+ SQLITE_SELFORDER1
188
+
171
189
  ]
172
190
 
173
191
  data_type_codes = %w[
@@ -194,15 +212,27 @@ ignore_codes = [
194
212
  "SQLITE_VTAB_CONSTRAINT_SUPPORT",
195
213
  "SQLITE_VTAB_INNOCUOUS",
196
214
  "SQLITE_VTAB_DIRECTONLY",
215
+ "SQLITE_VTAB_USES_ALL_SCHEMAS",
197
216
 
198
217
  # sqlite destructor callback codes
199
218
  "SQLITE_STATIC",
200
219
  "SQLITE_TRANSIENT",
220
+
221
+ # versions of SQLITE_CARRAY that are not relevant per sqlite source code
222
+ "CARRAY_INT32",
223
+ "CARRAY_INT64",
224
+ "CARRAY_DOUBLE",
225
+ "CARRAY_TEXT",
226
+ "CARRAY_BLOB",
227
+
228
+ # Skipping the SELFORDER items for now
229
+ "SQLITE_SELFORDER1"
201
230
  ]
202
231
 
203
232
  # oddball name
204
233
  module_name_mapping = {
205
234
 
235
+ "CARRAY" => "CArray",
206
236
  "DBCONFIG" => "DBConfig",
207
237
  "DBSTATUS" => "DBStatus",
208
238
  "IOCAP" => "IOCap",
@@ -212,6 +242,7 @@ module_name_mapping = {
212
242
  "CHANGESETAPPLY" => "ChangesetApply",
213
243
  "CHANGESETSTART" => "ChangesetStart",
214
244
  "TXN" => "Transaction",
245
+ "SETLK" => "SetLock",
215
246
  }
216
247
 
217
248
  defines = []