Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								13a7d2a538 
								
							 
						 
						
							
							
								
								database: Validate #:nar-size and #:time when registering store items.  
							
							... 
							
							
							
							* guix/store/database.scm (assert-integer): New procedure.
(update-or-insert): Use it to validate NAR-SIZE and TIME.
* tests/store-database.scm ("sqlite-register with incorrect size"): New
test. 
							
						 
						
							2021-01-31 21:49:58 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3169c93903 
								
							 
						 
						
							
							
								
								database: Remove 'register-path'.  
							
							... 
							
							
							
							* guix/store/database.scm (register-path): Remove.
* tests/store-database.scm ("register-path"): Rename to...
("register-items"): ... this, and use 'register-items' instead of
'register-path'.
("register-path, directory"): Rename to...
("register-items, directory"): ... this, and use 'register-items'
instead of 'register-path'.
("register-path with unregistered references"): Rename to...
("sqlite-register with unregistered references"): ... this. 
							
						 
						
							2020-12-15 17:32:11 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0682cc5936 
								
							 
						 
						
							
							
								
								database: Remove #:deduplicate? and #:reset-timestamps? from 'register-path'.  
							
							... 
							
							
							
							* guix/store/database.scm (register-path): Remove #:deduplicate?
and #:reset-timestamps?.
* guix/scripts/system.scm (copy-item): Adjust accordingly.
* tests/store-database.scm ("register-path")
("register-path, directory"): Call 'reset-timestamps'. 
							
						 
						
							2020-12-15 17:32:11 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ac435c14a6 
								
							 
						 
						
							
							
								
								store-database: Add test checking the directory mtime after 'register-path'.  
							
							... 
							
							
							
							* tests/store-database.scm ("register-path, directory"): New test. 
							
						 
						
							2020-11-21 12:39:14 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e475211869 
								
							 
						 
						
							
							
								
								database: Reset timestamps to one second after the Epoch.  
							
							... 
							
							
							
							Previously, store items registered in the database by this code (for
instance, store items retrieved by 'guix offload' and passed to
'restore-file-set') would have an mtime of 0 instead of 1.
This would cause problems for things like .go files: Guile would
consider them to be older than the corresponding .scm file, and
consequently it would ignore them and possibly use another (incorrect)
.go file.
Reported by Ricardo Wurmus.
* guix/store/database.scm (reset-timestamps): Pass 1, not 0, to
'utime'.
* tests/store-database.scm ("register-path"): Check the mtime of FILE
and REF. 
							
						 
						
							2018-07-20 15:01:33 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								df2f6400b1 
								
							 
						 
						
							
							
								
								store: Remove 'register-path'.  
							
							... 
							
							
							
							* guix/store.scm (register-path): Remove.
* guix/nar.scm: Use (guix store database).
* guix/scripts/system.scm: Likewise.
* tests/store-database.scm: Remove #:hide (register-path).
* tests/store.scm ("register-path"): Remove. 
							
						 
						
							2018-06-14 11:17:00 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ef1297e8c7 
								
							 
						 
						
							
							
								
								database: 'sqlite-register' takes a database, not a file name.  
							
							... 
							
							
							
							* guix/store/database.scm (sqlite-register): Remove #:db-file and add
'db' parameter.  Remove #:schema and 'parameterize'.
(register-path): Wrap 'sqlite-register' call in 'with-database' and in
'parameterize'.
* tests/store-database.scm ("new database")
("register-path with unregistered references"): Adjust accordingly. 
							
						 
						
							2018-06-14 11:17:00 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f8f9f7cabc 
								
							 
						 
						
							
							
								
								database: Fail registration when encountering unregistered references.  
							
							... 
							
							
							
							* guix/store/database.scm (add-reference-sql): Remove nested SELECT.
(add-references): Expect REFERENCES to be a list of ids.
(sqlite-register): Call 'path-id' for each of REFERENCES and pass it to
'add-references'.
* tests/store-database.scm ("register-path with unregistered references"):
New test. 
							
						 
						
							2018-06-14 11:16:58 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Ludovic Courtès 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3931c76154 
								
							 
						 
						
							
							
								
								database: 'with-database' can now initialize new databases.  
							
							... 
							
							
							
							* nix/libstore/schema.sql: Rename to...
* guix/store/schema.sql: ... this.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
* nix/local.mk (%D%/libstore/schema.sql.hh): Adjust accordingly.
* guix/store/database.scm (sql-schema): New variable.
(sqlite-exec, initialize-database, call-with-database): New procedures.
(with-database): Rewrite in terms of 'call-with-database'.
* tests/store-database.scm ("new database"): New test.
* guix/self.scm (compiled-guix)[*core-modules*]: Add 'schema.sql' to
 #:extra-files. 
							
						 
						
							2018-06-14 11:16:58 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Caleb Ristvedt 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7f9d184d9b 
								
							 
						 
						
							
							
								
								Add (gnu store database).  
							
							... 
							
							
							
							* guix/config.scm.in (%store-database-directory): New variable.
* guix/store/database.scm: New file.
* tests/store-database.scm: New file.
* Makefile.am (STORE_MODULES): New variable.
(MODULES, MODULES_NOT_COMPILED): Adjust accordingly.
(SCM_TESTS) [HAVE_GUILE_SQLITE3]: Add tests/store-database.scm.
Co-authored-by: Ludovic Courtès <ludo@gnu.org> 
							
						 
						
							2018-06-01 15:35:32 +02:00