aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE2
-rw-r--r--Makefile.am1
-rwxr-xr-xbootstrap1
-rw-r--r--build/bootstrap.build1
-rw-r--r--build/bootstrap.make1
-rw-r--r--build/configuration-rules.make1
-rw-r--r--build/configuration.make1
-rwxr-xr-xbuild/configure1
-rw-r--r--build/export.build1
-rw-r--r--build/export/libodb/stub.make1
-rw-r--r--build/import/libodb/configuration-rules.make1
-rwxr-xr-xbuild/import/libodb/configure1
-rw-r--r--build/import/libodb/stub.make1
-rw-r--r--build/root.build1
-rw-r--r--buildfile3
-rw-r--r--configure.ac1
-rw-r--r--libodb.pc.in1
-rw-r--r--m4/disable-rpath.m41
-rw-r--r--m4/libodb.m41
-rw-r--r--m4/libtool-link.m41
-rw-r--r--m4/pkgconfig.m41
-rw-r--r--m4/static-lib.m41
-rw-r--r--m4/threads.m41
-rw-r--r--makefile5
-rw-r--r--manifest12
-rw-r--r--odb/Makefile.am1
-rw-r--r--odb/buildfile1
-rw-r--r--odb/c-array-traits.hxx1
-rw-r--r--odb/cache-traits.hxx1
-rw-r--r--odb/callback.hxx1
-rw-r--r--odb/connection.cxx1
-rw-r--r--odb/connection.hxx10
-rw-r--r--odb/connection.ixx5
-rw-r--r--odb/connection.txx1
-rw-r--r--odb/container-traits.hxx1
-rw-r--r--odb/core.hxx1
-rw-r--r--odb/database.cxx3
-rw-r--r--odb/database.hxx7
-rw-r--r--odb/database.ixx17
-rw-r--r--odb/database.txx5
-rw-r--r--odb/details/buffer.cxx1
-rw-r--r--odb/details/buffer.hxx17
-rw-r--r--odb/details/build2/config-stub.h1
-rw-r--r--odb/details/build2/config-vc-stub.h1
-rw-r--r--odb/details/build2/config-vc.h1
-rw-r--r--odb/details/build2/config.h1
-rw-r--r--odb/details/c-string.hxx1
-rw-r--r--odb/details/condition.cxx1
-rw-r--r--odb/details/condition.hxx1
-rw-r--r--odb/details/config-vc.h1
-rw-r--r--odb/details/config.h.in1
-rw-r--r--odb/details/config.hxx1
-rw-r--r--odb/details/exception.hxx1
-rw-r--r--odb/details/export.hxx1
-rw-r--r--odb/details/function-wrapper.hxx1
-rw-r--r--odb/details/function-wrapper.ixx1
-rw-r--r--odb/details/function-wrapper.txx6
-rw-r--r--odb/details/lock.cxx1
-rw-r--r--odb/details/lock.hxx1
-rw-r--r--odb/details/meta/answer.hxx1
-rw-r--r--odb/details/meta/class-p.hxx1
-rw-r--r--odb/details/meta/polymorphic-p.hxx1
-rw-r--r--odb/details/meta/remove-const-volatile.hxx1
-rw-r--r--odb/details/meta/remove-const.hxx1
-rw-r--r--odb/details/meta/remove-pointer.hxx1
-rw-r--r--odb/details/meta/remove-volatile.hxx1
-rw-r--r--odb/details/meta/static-assert.hxx1
-rw-r--r--odb/details/mutex.cxx1
-rw-r--r--odb/details/mutex.hxx1
-rw-r--r--odb/details/posix/condition.hxx1
-rw-r--r--odb/details/posix/condition.ixx1
-rw-r--r--odb/details/posix/exceptions.cxx1
-rw-r--r--odb/details/posix/exceptions.hxx1
-rw-r--r--odb/details/posix/mutex.hxx1
-rw-r--r--odb/details/posix/mutex.ixx1
-rw-r--r--odb/details/posix/thread.cxx1
-rw-r--r--odb/details/posix/thread.hxx1
-rw-r--r--odb/details/posix/thread.ixx1
-rw-r--r--odb/details/posix/tls.hxx1
-rw-r--r--odb/details/posix/tls.ixx1
-rw-r--r--odb/details/posix/tls.txx1
-rw-r--r--odb/details/shared-ptr-fwd.hxx1
-rw-r--r--odb/details/shared-ptr.hxx1
-rw-r--r--odb/details/shared-ptr/base.cxx1
-rw-r--r--odb/details/shared-ptr/base.hxx1
-rw-r--r--odb/details/shared-ptr/base.ixx1
-rw-r--r--odb/details/shared-ptr/base.txx1
-rw-r--r--odb/details/shared-ptr/counter-type.hxx1
-rw-r--r--odb/details/shared-ptr/exception.hxx1
-rw-r--r--odb/details/thread.cxx1
-rw-r--r--odb/details/thread.hxx1
-rw-r--r--odb/details/tls.hxx1
-rw-r--r--odb/details/transfer-ptr.hxx3
-rw-r--r--odb/details/type-info.hxx1
-rw-r--r--odb/details/unique-ptr.hxx5
-rw-r--r--odb/details/unused.hxx1
-rw-r--r--odb/details/win32/condition.cxx1
-rw-r--r--odb/details/win32/condition.hxx1
-rw-r--r--odb/details/win32/condition.ixx1
-rw-r--r--odb/details/win32/dll.cxx1
-rw-r--r--odb/details/win32/exceptions.cxx1
-rw-r--r--odb/details/win32/exceptions.hxx1
-rw-r--r--odb/details/win32/init.cxx1
-rw-r--r--odb/details/win32/init.hxx1
-rw-r--r--odb/details/win32/lock.hxx1
-rw-r--r--odb/details/win32/mutex.hxx1
-rw-r--r--odb/details/win32/mutex.ixx1
-rw-r--r--odb/details/win32/once-init.hxx1
-rw-r--r--odb/details/win32/once.cxx1
-rw-r--r--odb/details/win32/once.hxx1
-rw-r--r--odb/details/win32/once.ixx1
-rw-r--r--odb/details/win32/thread.cxx1
-rw-r--r--odb/details/win32/thread.hxx1
-rw-r--r--odb/details/win32/tls-init.hxx1
-rw-r--r--odb/details/win32/tls.cxx1
-rw-r--r--odb/details/win32/tls.hxx1
-rw-r--r--odb/details/win32/tls.ixx1
-rw-r--r--odb/details/win32/tls.txx1
-rw-r--r--odb/details/win32/windows.hxx1
-rw-r--r--odb/details/wrapper-p.hxx1
-rw-r--r--odb/exception.hxx1
-rw-r--r--odb/exceptions.cxx1
-rw-r--r--odb/exceptions.hxx1
-rw-r--r--odb/forward.hxx1
-rw-r--r--odb/function-table.hxx1
-rw-r--r--odb/lazy-pointer-traits.hxx1
-rw-r--r--odb/lazy-ptr-impl.hxx9
-rw-r--r--odb/lazy-ptr-impl.ixx13
-rw-r--r--odb/lazy-ptr-impl.txx1
-rw-r--r--odb/lazy-ptr.hxx9
-rw-r--r--odb/lazy-ptr.ixx9
-rw-r--r--odb/lazy-ptr.txx1
-rw-r--r--odb/makefile3
-rw-r--r--odb/nested-container.hxx179
-rw-r--r--odb/no-id-object-result.hxx1
-rw-r--r--odb/no-id-object-result.txx1
-rw-r--r--odb/no-op-cache-traits.hxx1
-rw-r--r--odb/nullable.hxx1
-rw-r--r--odb/object-result.hxx1
-rw-r--r--odb/pointer-traits.hxx1
-rw-r--r--odb/polymorphic-info.hxx1
-rw-r--r--odb/polymorphic-map.hxx1
-rw-r--r--odb/polymorphic-map.ixx1
-rw-r--r--odb/polymorphic-map.txx1
-rw-r--r--odb/polymorphic-object-result.hxx1
-rw-r--r--odb/polymorphic-object-result.txx1
-rw-r--r--odb/post.hxx1
-rw-r--r--odb/pre.hxx1
-rw-r--r--odb/prepared-query.cxx8
-rw-r--r--odb/prepared-query.hxx7
-rw-r--r--odb/query-dynamic.cxx1
-rw-r--r--odb/query-dynamic.hxx1
-rw-r--r--odb/query-dynamic.ixx1
-rw-r--r--odb/query-dynamic.txx1
-rw-r--r--odb/query.hxx1
-rw-r--r--odb/result.cxx1
-rw-r--r--odb/result.hxx1
-rw-r--r--odb/result.txx1
-rw-r--r--odb/schema-catalog-impl.hxx1
-rw-r--r--odb/schema-catalog.cxx4
-rw-r--r--odb/schema-catalog.hxx1
-rw-r--r--odb/schema-version.hxx1
-rw-r--r--odb/section.cxx1
-rw-r--r--odb/section.hxx1
-rw-r--r--odb/session.cxx1
-rw-r--r--odb/session.hxx1
-rw-r--r--odb/session.ixx1
-rw-r--r--odb/session.txx1
-rw-r--r--odb/simple-object-result.hxx1
-rw-r--r--odb/simple-object-result.txx1
-rw-r--r--odb/statement-processing-common.hxx1
-rw-r--r--odb/statement-processing.cxx1
-rw-r--r--odb/statement.cxx1
-rw-r--r--odb/statement.hxx1
-rw-r--r--odb/std-array-traits.hxx1
-rw-r--r--odb/std-deque-traits.hxx1
-rw-r--r--odb/std-forward-list-traits.hxx1
-rw-r--r--odb/std-list-traits.hxx1
-rw-r--r--odb/std-map-traits.hxx1
-rw-r--r--odb/std-set-traits.hxx1
-rw-r--r--odb/std-unordered-map-traits.hxx1
-rw-r--r--odb/std-unordered-set-traits.hxx1
-rw-r--r--odb/std-vector-traits.hxx1
-rw-r--r--odb/tr1/lazy-pointer-traits.hxx1
-rw-r--r--odb/tr1/lazy-ptr.hxx1
-rw-r--r--odb/tr1/lazy-ptr.ixx1
-rw-r--r--odb/tr1/lazy-ptr.txx1
-rw-r--r--odb/tr1/memory.hxx1
-rw-r--r--odb/tr1/pointer-traits.hxx1
-rw-r--r--odb/tr1/wrapper-traits.hxx1
-rw-r--r--odb/tracer.cxx1
-rw-r--r--odb/tracer.hxx1
-rw-r--r--odb/traits.hxx13
-rw-r--r--odb/transaction.cxx27
-rw-r--r--odb/transaction.hxx23
-rw-r--r--odb/transaction.ixx18
-rw-r--r--odb/vector-impl.cxx1
-rw-r--r--odb/vector-impl.hxx5
-rw-r--r--odb/vector-impl.ixx54
-rw-r--r--odb/vector-traits.hxx1
-rw-r--r--odb/vector-traits.txx1
-rw-r--r--odb/vector.hxx9
-rw-r--r--odb/vector.ixx1
-rw-r--r--odb/version-build2-stub.hxx1
-rw-r--r--odb/version-build2.hxx.in3
-rw-r--r--odb/version.hxx9
-rw-r--r--odb/view-image.hxx1
-rw-r--r--odb/view-result.hxx1
-rw-r--r--odb/view-result.txx1
-rw-r--r--odb/wrapper-traits.hxx1
-rw-r--r--tests/basics/buildfile1
-rw-r--r--tests/basics/driver.cxx1
-rw-r--r--tests/build/bootstrap.build1
-rw-r--r--tests/build/root.build1
-rw-r--r--tests/buildfile1
-rw-r--r--version1
-rw-r--r--version.txt1
217 files changed, 339 insertions, 348 deletions
diff --git a/LICENSE b/LICENSE
index d106b92..9d92da1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2009-2020 Code Synthesis Tools CC.
+Copyright (c) 2009-2024 Code Synthesis Tools CC.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as
diff --git a/Makefile.am b/Makefile.am
index a76cd6f..e44eb5c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,4 @@
# file : Makefile.am
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
SUBDIRS = __path__(dirs)
diff --git a/bootstrap b/bootstrap
index 0e786df..85d1399 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,7 +1,6 @@
#! /bin/sh
# file : bootstrap
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
#
diff --git a/build/bootstrap.build b/build/bootstrap.build
index 783341d..9c8d1a9 100644
--- a/build/bootstrap.build
+++ b/build/bootstrap.build
@@ -1,5 +1,4 @@
# file : build/bootstrap.build
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
project = libodb
diff --git a/build/bootstrap.make b/build/bootstrap.make
index d87cf18..f26a5dc 100644
--- a/build/bootstrap.make
+++ b/build/bootstrap.make
@@ -1,5 +1,4 @@
# file : build/bootstrap.make
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
project_name := libodb
diff --git a/build/configuration-rules.make b/build/configuration-rules.make
index 895ac81..adfaf3c 100644
--- a/build/configuration-rules.make
+++ b/build/configuration-rules.make
@@ -1,5 +1,4 @@
# file : build/configuration-rules.make
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
$(dcf_root)/configuration-dynamic.make: | $(dcf_root)/.
diff --git a/build/configuration.make b/build/configuration.make
index 39ab11a..7a00b14 100644
--- a/build/configuration.make
+++ b/build/configuration.make
@@ -1,5 +1,4 @@
# file : build/configuration.make
-# copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
$(call include-once,$(scf_root)/configuration-rules.make,$(dcf_root))
diff --git a/build/configure b/build/configure
index 977bc3a..0109cb2 100755
--- a/build/configure
+++ b/build/configure
@@ -1,7 +1,6 @@
#! /usr/bin/env bash
# file : build/configure
-# copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
# $1 out file
diff --git a/build/export.build b/build/export.build
index 59d866f..56312c8 100644
--- a/build/export.build
+++ b/build/export.build
@@ -1,5 +1,4 @@
# file : build/export.build
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
$out_root/
diff --git a/build/export/libodb/stub.make b/build/export/libodb/stub.make
index d3a2bf3..10eeb22 100644
--- a/build/export/libodb/stub.make
+++ b/build/export/libodb/stub.make
@@ -1,5 +1,4 @@
# file : build/export/libodb/stub.make
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
$(call include-once,$(src_root)/odb/makefile,$(out_root))
diff --git a/build/import/libodb/configuration-rules.make b/build/import/libodb/configuration-rules.make
index 872cbb3..340c418 100644
--- a/build/import/libodb/configuration-rules.make
+++ b/build/import/libodb/configuration-rules.make
@@ -1,5 +1,4 @@
# file : build/import/libodb/configuration-rules.make
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
$(dcf_root)/import/libodb/configuration-dynamic.make: | $(dcf_root)/import/libodb/.
diff --git a/build/import/libodb/configure b/build/import/libodb/configure
index 0d57a5f..261a202 100755
--- a/build/import/libodb/configure
+++ b/build/import/libodb/configure
@@ -1,7 +1,6 @@
#! /usr/bin/env bash
# file : build/import/libodb/configure
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
diff --git a/build/import/libodb/stub.make b/build/import/libodb/stub.make
index 6b7088d..04dc786 100644
--- a/build/import/libodb/stub.make
+++ b/build/import/libodb/stub.make
@@ -1,5 +1,4 @@
# file : build/import/libodb/stub.make
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
$(call include-once,$(scf_root)/import/libodb/configuration-rules.make,$(dcf_root))
diff --git a/build/root.build b/build/root.build
index 653ded7..882047d 100644
--- a/build/root.build
+++ b/build/root.build
@@ -1,5 +1,4 @@
# file : build/root.build
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
cxx.std = latest
diff --git a/buildfile b/buildfile
index bf7778e..406853f 100644
--- a/buildfile
+++ b/buildfile
@@ -1,8 +1,7 @@
# file : buildfile
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
-./: {*/ -build/ -m4/} doc{GPLv2 INSTALL LICENSE NEWS README} manifest
+./: {*/ -build/ -m4/} doc{INSTALL NEWS README} legal{GPLv2 LICENSE} manifest
# Don't install tests or the INSTALL file.
#
diff --git a/configure.ac b/configure.ac
index 7a644cd..e368d3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,4 @@
# file : configure.ac
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
AC_PREREQ(2.60)
diff --git a/libodb.pc.in b/libodb.pc.in
index 91d6e22..05978d6 100644
--- a/libodb.pc.in
+++ b/libodb.pc.in
@@ -1,5 +1,4 @@
# file : libodb.pc.in
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
prefix=@prefix@
diff --git a/m4/disable-rpath.m4 b/m4/disable-rpath.m4
index 7874d4b..0864209 100644
--- a/m4/disable-rpath.m4
+++ b/m4/disable-rpath.m4
@@ -1,5 +1,4 @@
dnl file : m4/disable-rpath.m4
-dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
AC_DEFUN([DISABLE_RPATH],[
diff --git a/m4/libodb.m4 b/m4/libodb.m4
index 5f140bd..0dba7c4 100644
--- a/m4/libodb.m4
+++ b/m4/libodb.m4
@@ -1,5 +1,4 @@
dnl file : m4/libodb.m4
-dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
dnl LIBODB([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
diff --git a/m4/libtool-link.m4 b/m4/libtool-link.m4
index 635793f..302639f 100644
--- a/m4/libtool-link.m4
+++ b/m4/libtool-link.m4
@@ -1,5 +1,4 @@
dnl file : m4/libtool-link.m4
-dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
dnl
diff --git a/m4/pkgconfig.m4 b/m4/pkgconfig.m4
index d5aa2d0..c48ea56 100644
--- a/m4/pkgconfig.m4
+++ b/m4/pkgconfig.m4
@@ -1,5 +1,4 @@
dnl file : m4/pkgconfig.m4
-dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
AC_DEFUN([PKGCONFIG],[
diff --git a/m4/static-lib.m4 b/m4/static-lib.m4
index 79b89cd..5fb1c11 100644
--- a/m4/static-lib.m4
+++ b/m4/static-lib.m4
@@ -1,5 +1,4 @@
dnl file : m4/static-lib.m4
-dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
dnl STATIC_LIB(MACRO, DESCRIPTION)
diff --git a/m4/threads.m4 b/m4/threads.m4
index 10bdfdd..6f2e25f 100644
--- a/m4/threads.m4
+++ b/m4/threads.m4
@@ -1,5 +1,4 @@
dnl file : m4/threads.m4
-dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
AC_DEFUN([THREADS],[
diff --git a/makefile b/makefile
index 49eab87..74e1b6e 100644
--- a/makefile
+++ b/makefile
@@ -1,5 +1,4 @@
# file : makefile
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
include $(dir $(lastword $(MAKEFILE_LIST)))build/bootstrap.make
@@ -13,12 +12,12 @@ clean := $(out_base)/.clean
$(default): $(addprefix $(out_base)/,$(addsuffix /,$(dirs)))
$(dist): export dirs := $(dirs)
-$(dist): export docs := GPLv2 LICENSE README NEWS version
+$(dist): export docs := GPLv2 LICENSE README NEWS version.txt
$(dist): data_dist := INSTALL libodb-vc8.sln libodb-vc9.sln libodb-vc10.sln \
libodb-vc11.sln libodb-vc12.sln
$(dist): exec_dist := bootstrap
$(dist): export extra_dist := $(data_dist) $(exec_dist)
-$(dist): export version = $(shell cat $(src_root)/version)
+$(dist): export version = $(shell cat $(src_root)/version.txt)
$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(dirs)))
$(call dist-data,$(docs) $(data_dist) libodb.pc.in)
diff --git a/manifest b/manifest
index 23998fa..d728912 100644
--- a/manifest
+++ b/manifest
@@ -1,10 +1,10 @@
: 1
name: libodb
-version: 2.5.0-b.18.z
+version: 2.5.0-b.26.z
project: odb
summary: Common ODB runtime library
-license: GPLv2
-license: proprietary
+license: GPL-2.0-only
+license: other: proprietary ; Not free/open source.
topics: C++, ORM, SQL, object persistence, relational database
description-file: README
changes-file: NEWS
@@ -12,8 +12,8 @@ url: https://www.codesynthesis.com/products/odb/
doc-url: https://www.codesynthesis.com/products/odb/doc/manual.xhtml
src-url: https://git.codesynthesis.com/cgit/odb/libodb/
email: odb-users@codesynthesis.com
-build-email: odb-builds@codesynthesis.com
+build-warning-email: odb-builds@codesynthesis.com
builds: all
requires: c++11
-depends: * build2 >= 0.12.0
-depends: * bpkg >= 0.12.0
+depends: * build2 >= 0.16.0-
+depends: * bpkg >= 0.16.0-
diff --git a/odb/Makefile.am b/odb/Makefile.am
index b45951a..af5141c 100644
--- a/odb/Makefile.am
+++ b/odb/Makefile.am
@@ -1,5 +1,4 @@
# file : odb/Makefile.am
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
lib_LTLIBRARIES = libodb.la
diff --git a/odb/buildfile b/odb/buildfile
index 5eb0866..ec95e94 100644
--- a/odb/buildfile
+++ b/odb/buildfile
@@ -1,5 +1,4 @@
# file : odb/buildfile
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
lib{odb}: {hxx ixx txx cxx}{* -version-build2} \
diff --git a/odb/c-array-traits.hxx b/odb/c-array-traits.hxx
index 44d5bb9..fff7880 100644
--- a/odb/c-array-traits.hxx
+++ b/odb/c-array-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/c-array-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_C_ARRAY_TRAITS_HXX
diff --git a/odb/cache-traits.hxx b/odb/cache-traits.hxx
index 0ac7bca..a8cf750 100644
--- a/odb/cache-traits.hxx
+++ b/odb/cache-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/cache-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_CACHE_TRAITS_HXX
diff --git a/odb/callback.hxx b/odb/callback.hxx
index 5379ccc..aaa066f 100644
--- a/odb/callback.hxx
+++ b/odb/callback.hxx
@@ -1,5 +1,4 @@
// file : odb/callback.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_CALLBACK_HXX
diff --git a/odb/connection.cxx b/odb/connection.cxx
index e21b3ac..29743a2 100644
--- a/odb/connection.cxx
+++ b/odb/connection.cxx
@@ -1,5 +1,4 @@
// file : odb/connection.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/database.hxx>
diff --git a/odb/connection.hxx b/odb/connection.hxx
index 38d6533..8ce4544 100644
--- a/odb/connection.hxx
+++ b/odb/connection.hxx
@@ -1,5 +1,4 @@
// file : odb/connection.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_CONNECTION_HXX
@@ -90,11 +89,11 @@ namespace odb
template <typename T>
prepared_query<T>
- lookup_query (const char* name) const;
+ lookup_query (const char* name);
template <typename T, typename P>
prepared_query<T>
- lookup_query (const char* name, P*& params) const;
+ lookup_query (const char* name, P*& params);
// SQL statement tracing.
//
@@ -200,8 +199,9 @@ namespace odb
friend class prepared_query_impl;
prepared_query_impl* prepared_queries_;
- protected:
- friend class transaction;
+ // Implementation details.
+ //
+ public:
tracer_type* transaction_tracer_;
};
diff --git a/odb/connection.ixx b/odb/connection.ixx
index 5a95176..d19390a 100644
--- a/odb/connection.ixx
+++ b/odb/connection.ixx
@@ -1,5 +1,4 @@
// file : odb/connection.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <cstring> // std::string
@@ -90,14 +89,14 @@ namespace odb
template <typename T>
inline prepared_query<T> connection::
- lookup_query (const char* name) const
+ lookup_query (const char* name)
{
return prepared_query<T> (lookup_query_ (name, typeid (T), 0, 0));
}
template <typename T, typename P>
inline prepared_query<T> connection::
- lookup_query (const char* name, P*& params) const
+ lookup_query (const char* name, P*& params)
{
return prepared_query<T> (
lookup_query_ (name,
diff --git a/odb/connection.txx b/odb/connection.txx
index a68beee..a082f14 100644
--- a/odb/connection.txx
+++ b/odb/connection.txx
@@ -1,5 +1,4 @@
// file : odb/connection.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/container-traits.hxx b/odb/container-traits.hxx
index ea3b0d3..e2f44ce 100644
--- a/odb/container-traits.hxx
+++ b/odb/container-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/container-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_CONTAINER_TRAITS_HXX
diff --git a/odb/core.hxx b/odb/core.hxx
index 9cfffd9..bca295d 100644
--- a/odb/core.hxx
+++ b/odb/core.hxx
@@ -1,5 +1,4 @@
// file : odb/core.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_CORE_HXX
diff --git a/odb/database.cxx b/odb/database.cxx
index f9e1043..9e098c7 100644
--- a/odb/database.cxx
+++ b/odb/database.cxx
@@ -1,5 +1,4 @@
// file : odb/database.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/database.hxx>
@@ -20,7 +19,7 @@ namespace odb
unsigned long long database::
execute (const char* st, std::size_t n)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
return c.execute (st, n);
}
diff --git a/odb/database.hxx b/odb/database.hxx
index 1440cea..e18e8ee 100644
--- a/odb/database.hxx
+++ b/odb/database.hxx
@@ -1,5 +1,4 @@
// file : odb/database.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DATABASE_HXX
@@ -49,6 +48,8 @@ namespace odb
#ifdef ODB_CXX11
//database (database&&) = default; // VC 2013
+ // Note: noexcept is not specified since *_map_ (std::map) can throw.
+ //
database (database&& d)
: id_ (d.id_),
tracer_ (d.tracer_),
@@ -378,11 +379,11 @@ namespace odb
template <typename T>
prepared_query<T>
- lookup_query (const char* name) const;
+ lookup_query (const char* name);
template <typename T, typename P>
prepared_query<T>
- lookup_query (const char* name, P*& params) const;
+ lookup_query (const char* name, P*& params);
// Prepared query factory.
//
diff --git a/odb/database.ixx b/odb/database.ixx
index fa16f71..c3cf2e2 100644
--- a/odb/database.ixx
+++ b/odb/database.ixx
@@ -1,5 +1,4 @@
// file : odb/database.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <cstring> // std::strlen()
@@ -675,7 +674,7 @@ namespace odb
inline prepared_query<T> database::
prepare_query (const char* n, const odb::query<T>& q)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
return c.prepare_query (n, q);
}
@@ -683,7 +682,7 @@ namespace odb
inline void database::
cache_query (const prepared_query<T>& pq)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
c.cache_query (pq);
}
@@ -692,7 +691,7 @@ namespace odb
inline void database::
cache_query (const prepared_query<T>& pq, std::unique_ptr<P> params)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
c.cache_query (pq, std::move (params));
}
#else
@@ -700,24 +699,24 @@ namespace odb
inline void database::
cache_query (const prepared_query<T>& pq, std::auto_ptr<P> params)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
c.cache_query (pq, params);
}
#endif
template <typename T>
inline prepared_query<T> database::
- lookup_query (const char* name) const
+ lookup_query (const char* name)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
return c.lookup_query<T> (name);
}
template <typename T, typename P>
inline prepared_query<T> database::
- lookup_query (const char* name, P*& params) const
+ lookup_query (const char* name, P*& params)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
return c.lookup_query<T, P> (name, params);
}
diff --git a/odb/database.txx b/odb/database.txx
index dc8f318..5659b6f 100644
--- a/odb/database.txx
+++ b/odb/database.txx
@@ -1,5 +1,4 @@
// file : odb/database.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/section.hxx>
@@ -256,7 +255,7 @@ namespace odb
void database::
load_ (T& obj, section& s)
{
- connection_type& c (transaction::current ().connection ());
+ connection_type& c (transaction::current ().connection (*this));
// T is always object_type.
//
@@ -350,7 +349,7 @@ namespace odb
// T is always object_type.
//
- if (object_traits_impl<T, DB>::update (t.connection (), obj, s))
+ if (object_traits_impl<T, DB>::update (t.connection (*this), obj, s))
{
if (s.changed ())
s.reset (true, false, &t); // Clear the change flag.
diff --git a/odb/details/buffer.cxx b/odb/details/buffer.cxx
index aabd546..595329e 100644
--- a/odb/details/buffer.cxx
+++ b/odb/details/buffer.cxx
@@ -1,5 +1,4 @@
// file : odb/details/buffer.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <cstring> // std::memcpy
diff --git a/odb/details/buffer.hxx b/odb/details/buffer.hxx
index aec6d42..558be9b 100644
--- a/odb/details/buffer.hxx
+++ b/odb/details/buffer.hxx
@@ -1,5 +1,4 @@
// file : odb/details/buffer.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_BUFFER_DETAILS_HXX
@@ -65,6 +64,22 @@ namespace odb
{
return static_cast<T*> (data_);
}
+
+ // Note that strictly speaking the return type should be void* const*
+ // but that would make using this function too awkward since we often
+ // store the result as void*.
+ //
+ void**
+ data_ptr ()
+ {
+ return &data_;
+ }
+
+ const void* const*
+ data_ptr () const
+ {
+ return &data_;
+ }
};
typedef basic_buffer<char> buffer;
diff --git a/odb/details/build2/config-stub.h b/odb/details/build2/config-stub.h
index 34847bb..83ea927 100644
--- a/odb/details/build2/config-stub.h
+++ b/odb/details/build2/config-stub.h
@@ -1,5 +1,4 @@
/* file : odb/details/build2/config-stub.h
- * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
* license : GNU GPL v2; see accompanying LICENSE file
*/
diff --git a/odb/details/build2/config-vc-stub.h b/odb/details/build2/config-vc-stub.h
index 183879f..e440e70 100644
--- a/odb/details/build2/config-vc-stub.h
+++ b/odb/details/build2/config-vc-stub.h
@@ -1,5 +1,4 @@
/* file : odb/details/build2/config-vc-stub.h
- * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
* license : GNU GPL v2; see accompanying LICENSE file
*/
diff --git a/odb/details/build2/config-vc.h b/odb/details/build2/config-vc.h
index 91eba7c..77ce106 100644
--- a/odb/details/build2/config-vc.h
+++ b/odb/details/build2/config-vc.h
@@ -1,5 +1,4 @@
/* file : odb/details/build2/config-vc.h
- * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
* license : GNU GPL v2; see accompanying LICENSE file
*/
diff --git a/odb/details/build2/config.h b/odb/details/build2/config.h
index 8577a6e..ba434f4 100644
--- a/odb/details/build2/config.h
+++ b/odb/details/build2/config.h
@@ -1,5 +1,4 @@
/* file : odb/details/build2/config.h
- * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
* license : GNU GPL v2; see accompanying LICENSE file
*/
diff --git a/odb/details/c-string.hxx b/odb/details/c-string.hxx
index d41c022..6ab1adc 100644
--- a/odb/details/c-string.hxx
+++ b/odb/details/c-string.hxx
@@ -1,5 +1,4 @@
// file : odb/details/c-string.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_C_STRING_HXX
diff --git a/odb/details/condition.cxx b/odb/details/condition.cxx
index 4bc16c2..2c4cbdb 100644
--- a/odb/details/condition.cxx
+++ b/odb/details/condition.cxx
@@ -1,5 +1,4 @@
// file : odb/details/condition.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/condition.hxx>
diff --git a/odb/details/condition.hxx b/odb/details/condition.hxx
index 22ee11e..10b6b4a 100644
--- a/odb/details/condition.hxx
+++ b/odb/details/condition.hxx
@@ -1,5 +1,4 @@
// file : odb/details/condition.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_CONDITION_HXX
diff --git a/odb/details/config-vc.h b/odb/details/config-vc.h
index a7ddbac..b1e38b2 100644
--- a/odb/details/config-vc.h
+++ b/odb/details/config-vc.h
@@ -1,5 +1,4 @@
/* file : odb/details/config-vc.h
- * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
* license : GNU GPL v2; see accompanying LICENSE file
*/
diff --git a/odb/details/config.h.in b/odb/details/config.h.in
index 048c122..2396606 100644
--- a/odb/details/config.h.in
+++ b/odb/details/config.h.in
@@ -1,5 +1,4 @@
/* file : odb/details/config.h.in
- * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
* license : GNU GPL v2; see accompanying LICENSE file
*/
diff --git a/odb/details/config.hxx b/odb/details/config.hxx
index 2e11521..a42dd69 100644
--- a/odb/details/config.hxx
+++ b/odb/details/config.hxx
@@ -1,5 +1,4 @@
// file : odb/details/config.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_CONFIG_HXX
diff --git a/odb/details/exception.hxx b/odb/details/exception.hxx
index 221d442..ab838e1 100644
--- a/odb/details/exception.hxx
+++ b/odb/details/exception.hxx
@@ -1,5 +1,4 @@
// file : odb/details/exception.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_EXCEPTION_HXX
diff --git a/odb/details/export.hxx b/odb/details/export.hxx
index 7939122..80fe342 100644
--- a/odb/details/export.hxx
+++ b/odb/details/export.hxx
@@ -1,5 +1,4 @@
// file : odb/details/export.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_EXPORT_HXX
diff --git a/odb/details/function-wrapper.hxx b/odb/details/function-wrapper.hxx
index 165df18..418a625 100644
--- a/odb/details/function-wrapper.hxx
+++ b/odb/details/function-wrapper.hxx
@@ -1,5 +1,4 @@
// file : odb/details/function-wrapper.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_FUNCTION_WRAPPER_HXX
diff --git a/odb/details/function-wrapper.ixx b/odb/details/function-wrapper.ixx
index 9ec19ec..5b83b96 100644
--- a/odb/details/function-wrapper.ixx
+++ b/odb/details/function-wrapper.ixx
@@ -1,5 +1,4 @@
// file : odb/details/function-wrapper.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/details/function-wrapper.txx b/odb/details/function-wrapper.txx
index 0ece244..db73e8d 100644
--- a/odb/details/function-wrapper.txx
+++ b/odb/details/function-wrapper.txx
@@ -1,5 +1,4 @@
// file : odb/details/function-wrapper.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <utility> // std::swap, std::move
@@ -68,7 +67,10 @@ namespace odb
}
else
{
- function = reinterpret_cast<F*> (&caller_impl<F>::function);
+ function_wrapper<decltype (caller_impl<F>::function)> fw (
+ &caller_impl<F>::function);
+
+ function = fw.template cast<F*> ();
deleter = &deleter_impl<F>;
std_function = new std_function_type (std::move (sf));
}
diff --git a/odb/details/lock.cxx b/odb/details/lock.cxx
index ef37529..f474bf5 100644
--- a/odb/details/lock.cxx
+++ b/odb/details/lock.cxx
@@ -1,5 +1,4 @@
// file : odb/details/lock.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/lock.hxx>
diff --git a/odb/details/lock.hxx b/odb/details/lock.hxx
index f5b6bbf..0c54f03 100644
--- a/odb/details/lock.hxx
+++ b/odb/details/lock.hxx
@@ -1,5 +1,4 @@
// file : odb/details/lock.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_LOCK_HXX
diff --git a/odb/details/meta/answer.hxx b/odb/details/meta/answer.hxx
index 8667a4b..f15dc43 100644
--- a/odb/details/meta/answer.hxx
+++ b/odb/details/meta/answer.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/answer.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_ANSWER_HXX
diff --git a/odb/details/meta/class-p.hxx b/odb/details/meta/class-p.hxx
index 35e9801..bddb452 100644
--- a/odb/details/meta/class-p.hxx
+++ b/odb/details/meta/class-p.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/class-p.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_CLASS_HXX
diff --git a/odb/details/meta/polymorphic-p.hxx b/odb/details/meta/polymorphic-p.hxx
index cf12551..10fef6a 100644
--- a/odb/details/meta/polymorphic-p.hxx
+++ b/odb/details/meta/polymorphic-p.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/polymorphic-p.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_POLYMORPHIC_HXX
diff --git a/odb/details/meta/remove-const-volatile.hxx b/odb/details/meta/remove-const-volatile.hxx
index 8d01de3..910ec35 100644
--- a/odb/details/meta/remove-const-volatile.hxx
+++ b/odb/details/meta/remove-const-volatile.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/remove-const-volatile.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_REMOVE_CONST_VOLATILE_HXX
diff --git a/odb/details/meta/remove-const.hxx b/odb/details/meta/remove-const.hxx
index 61518ab..4a92ed3 100644
--- a/odb/details/meta/remove-const.hxx
+++ b/odb/details/meta/remove-const.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/remove-const.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_REMOVE_CONST_HXX
diff --git a/odb/details/meta/remove-pointer.hxx b/odb/details/meta/remove-pointer.hxx
index 52b0218..9963fd7 100644
--- a/odb/details/meta/remove-pointer.hxx
+++ b/odb/details/meta/remove-pointer.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/remove-pointer.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_REMOVE_POINTER_HXX
diff --git a/odb/details/meta/remove-volatile.hxx b/odb/details/meta/remove-volatile.hxx
index c100d32..877e532 100644
--- a/odb/details/meta/remove-volatile.hxx
+++ b/odb/details/meta/remove-volatile.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/remove-volatile.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_REMOVE_VOLATILE_HXX
diff --git a/odb/details/meta/static-assert.hxx b/odb/details/meta/static-assert.hxx
index c9ecca5..a2cc81b 100644
--- a/odb/details/meta/static-assert.hxx
+++ b/odb/details/meta/static-assert.hxx
@@ -1,5 +1,4 @@
// file : odb/details/meta/static-assert.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_META_STATIC_ASSERT_HXX
diff --git a/odb/details/mutex.cxx b/odb/details/mutex.cxx
index d68c564..df367d8 100644
--- a/odb/details/mutex.cxx
+++ b/odb/details/mutex.cxx
@@ -1,5 +1,4 @@
// file : odb/details/mutex.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/mutex.hxx>
diff --git a/odb/details/mutex.hxx b/odb/details/mutex.hxx
index 49a9e15..df12013 100644
--- a/odb/details/mutex.hxx
+++ b/odb/details/mutex.hxx
@@ -1,5 +1,4 @@
// file : odb/details/mutex.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_MUTEX_HXX
diff --git a/odb/details/posix/condition.hxx b/odb/details/posix/condition.hxx
index 4502bc3..4f7c42a 100644
--- a/odb/details/posix/condition.hxx
+++ b/odb/details/posix/condition.hxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/condition.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_POSIX_CONDITION_HXX
diff --git a/odb/details/posix/condition.ixx b/odb/details/posix/condition.ixx
index f097ebc..9b68d9f 100644
--- a/odb/details/posix/condition.ixx
+++ b/odb/details/posix/condition.ixx
@@ -1,5 +1,4 @@
// file : odb/details/posix/condition.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/posix/exceptions.hxx>
diff --git a/odb/details/posix/exceptions.cxx b/odb/details/posix/exceptions.cxx
index 211aa34..c346655 100644
--- a/odb/details/posix/exceptions.cxx
+++ b/odb/details/posix/exceptions.cxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/exceptions.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/posix/exceptions.hxx>
diff --git a/odb/details/posix/exceptions.hxx b/odb/details/posix/exceptions.hxx
index cb0aabe..aff33b6 100644
--- a/odb/details/posix/exceptions.hxx
+++ b/odb/details/posix/exceptions.hxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/exceptions.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_POSIX_EXCEPTIONS_HXX
diff --git a/odb/details/posix/mutex.hxx b/odb/details/posix/mutex.hxx
index 3120ae6..0cb94db 100644
--- a/odb/details/posix/mutex.hxx
+++ b/odb/details/posix/mutex.hxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/mutex.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_POSIX_MUTEX_HXX
diff --git a/odb/details/posix/mutex.ixx b/odb/details/posix/mutex.ixx
index 48504fc..ee73d09 100644
--- a/odb/details/posix/mutex.ixx
+++ b/odb/details/posix/mutex.ixx
@@ -1,5 +1,4 @@
// file : odb/details/posix/mutex.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/posix/exceptions.hxx>
diff --git a/odb/details/posix/thread.cxx b/odb/details/posix/thread.cxx
index 6fe24a5..045f32a 100644
--- a/odb/details/posix/thread.cxx
+++ b/odb/details/posix/thread.cxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/thread.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/unique-ptr.hxx>
diff --git a/odb/details/posix/thread.hxx b/odb/details/posix/thread.hxx
index e20b1d3..f0d29a7 100644
--- a/odb/details/posix/thread.hxx
+++ b/odb/details/posix/thread.hxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/thread.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_POSIX_THREAD_HXX
diff --git a/odb/details/posix/thread.ixx b/odb/details/posix/thread.ixx
index b177c31..6576101 100644
--- a/odb/details/posix/thread.ixx
+++ b/odb/details/posix/thread.ixx
@@ -1,5 +1,4 @@
// file : odb/details/posix/thread.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/posix/exceptions.hxx>
diff --git a/odb/details/posix/tls.hxx b/odb/details/posix/tls.hxx
index 9b1a84a..e868819 100644
--- a/odb/details/posix/tls.hxx
+++ b/odb/details/posix/tls.hxx
@@ -1,5 +1,4 @@
// file : odb/details/posix/tls.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_POSIX_TLS_HXX
diff --git a/odb/details/posix/tls.ixx b/odb/details/posix/tls.ixx
index c160f77..7acc173 100644
--- a/odb/details/posix/tls.ixx
+++ b/odb/details/posix/tls.ixx
@@ -1,5 +1,4 @@
// file : odb/details/posix/tls.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/details/posix/tls.txx b/odb/details/posix/tls.txx
index 352d626..e4c5b8f 100644
--- a/odb/details/posix/tls.txx
+++ b/odb/details/posix/tls.txx
@@ -1,5 +1,4 @@
// file : odb/details/posix/tls.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/unique-ptr.hxx>
diff --git a/odb/details/shared-ptr-fwd.hxx b/odb/details/shared-ptr-fwd.hxx
index df41a97..73377b9 100644
--- a/odb/details/shared-ptr-fwd.hxx
+++ b/odb/details/shared-ptr-fwd.hxx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr-fwd.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_SHARED_PTR_FWD_HXX
diff --git a/odb/details/shared-ptr.hxx b/odb/details/shared-ptr.hxx
index 4c02796..5a1e842 100644
--- a/odb/details/shared-ptr.hxx
+++ b/odb/details/shared-ptr.hxx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_SHARED_PTR_HXX
diff --git a/odb/details/shared-ptr/base.cxx b/odb/details/shared-ptr/base.cxx
index 91957a5..d937400 100644
--- a/odb/details/shared-ptr/base.cxx
+++ b/odb/details/shared-ptr/base.cxx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr/base.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/shared-ptr/base.hxx>
diff --git a/odb/details/shared-ptr/base.hxx b/odb/details/shared-ptr/base.hxx
index 7057e22..8cd4c86 100644
--- a/odb/details/shared-ptr/base.hxx
+++ b/odb/details/shared-ptr/base.hxx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr/base.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_SHARED_PTR_BASE_HXX
diff --git a/odb/details/shared-ptr/base.ixx b/odb/details/shared-ptr/base.ixx
index dd899d7..1e2fd4b 100644
--- a/odb/details/shared-ptr/base.ixx
+++ b/odb/details/shared-ptr/base.ixx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr/base.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/details/shared-ptr/base.txx b/odb/details/shared-ptr/base.txx
index 9c7dc4c..77a957d 100644
--- a/odb/details/shared-ptr/base.txx
+++ b/odb/details/shared-ptr/base.txx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr/base.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/meta/answer.hxx>
diff --git a/odb/details/shared-ptr/counter-type.hxx b/odb/details/shared-ptr/counter-type.hxx
index d0b3243..2b6caad 100644
--- a/odb/details/shared-ptr/counter-type.hxx
+++ b/odb/details/shared-ptr/counter-type.hxx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr/counter-type.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_SHARED_PTR_COUNTER_TYPE_HXX
diff --git a/odb/details/shared-ptr/exception.hxx b/odb/details/shared-ptr/exception.hxx
index f6117dd..0ed50be 100644
--- a/odb/details/shared-ptr/exception.hxx
+++ b/odb/details/shared-ptr/exception.hxx
@@ -1,5 +1,4 @@
// file : odb/details/shared-ptr/exception.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_SHARED_PTR_EXCEPTION_HXX
diff --git a/odb/details/thread.cxx b/odb/details/thread.cxx
index 31868ca..b1fbe42 100644
--- a/odb/details/thread.cxx
+++ b/odb/details/thread.cxx
@@ -1,5 +1,4 @@
// file : odb/details/thread.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/thread.hxx>
diff --git a/odb/details/thread.hxx b/odb/details/thread.hxx
index 2c1e94d..9095f68 100644
--- a/odb/details/thread.hxx
+++ b/odb/details/thread.hxx
@@ -1,5 +1,4 @@
// file : odb/details/thread.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_THREAD_HXX
diff --git a/odb/details/tls.hxx b/odb/details/tls.hxx
index f2a8f20..de6c344 100644
--- a/odb/details/tls.hxx
+++ b/odb/details/tls.hxx
@@ -1,5 +1,4 @@
// file : odb/details/tls.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_TLS_HXX
diff --git a/odb/details/transfer-ptr.hxx b/odb/details/transfer-ptr.hxx
index c8fc87f..4b63df6 100644
--- a/odb/details/transfer-ptr.hxx
+++ b/odb/details/transfer-ptr.hxx
@@ -1,5 +1,4 @@
// file : odb/details/transfer-ptr.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_TRANSFER_PTR_HXX
@@ -50,7 +49,7 @@ namespace odb
transfer_ptr& operator= (const transfer_ptr&);
public:
- transfer_ptr (transfer_ptr&& p): p_ (p.transfer ()) {}
+ transfer_ptr (transfer_ptr&& p) noexcept: p_ (p.transfer ()) {}
#endif
~transfer_ptr () {delete p_;}
diff --git a/odb/details/type-info.hxx b/odb/details/type-info.hxx
index cac77d8..fe01699 100644
--- a/odb/details/type-info.hxx
+++ b/odb/details/type-info.hxx
@@ -1,5 +1,4 @@
// file : odb/details/type-info.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_TYPE_INFO_HXX
diff --git a/odb/details/unique-ptr.hxx b/odb/details/unique-ptr.hxx
index 6f94f60..06b2c76 100644
--- a/odb/details/unique-ptr.hxx
+++ b/odb/details/unique-ptr.hxx
@@ -1,5 +1,4 @@
// file : odb/details/unique-ptr.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_UNIQUE_PTR_HXX
@@ -23,8 +22,8 @@ namespace odb
~unique_ptr () {delete p_;}
#ifdef ODB_CXX11
- unique_ptr (unique_ptr&& p): p_ (p.p_) {p.p_ = 0;}
- unique_ptr& operator= (unique_ptr&& p)
+ unique_ptr (unique_ptr&& p) noexcept: p_ (p.p_) {p.p_ = 0;}
+ unique_ptr& operator= (unique_ptr&& p) noexcept
{
if (this != &p)
{
diff --git a/odb/details/unused.hxx b/odb/details/unused.hxx
index 92d7090..8364c44 100644
--- a/odb/details/unused.hxx
+++ b/odb/details/unused.hxx
@@ -1,5 +1,4 @@
// file : odb/details/unused.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_UNUSED_DETAILS_HXX
diff --git a/odb/details/win32/condition.cxx b/odb/details/win32/condition.cxx
index 49195a8..3a4b605 100644
--- a/odb/details/win32/condition.cxx
+++ b/odb/details/win32/condition.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/condition.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/windows.hxx>
diff --git a/odb/details/win32/condition.hxx b/odb/details/win32/condition.hxx
index f41f485..69972a0 100644
--- a/odb/details/win32/condition.hxx
+++ b/odb/details/win32/condition.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/condition.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_CONDITION_HXX
diff --git a/odb/details/win32/condition.ixx b/odb/details/win32/condition.ixx
index b51ccfa..37a2bac 100644
--- a/odb/details/win32/condition.ixx
+++ b/odb/details/win32/condition.ixx
@@ -1,5 +1,4 @@
// file : odb/details/win32/condition.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/exceptions.hxx>
diff --git a/odb/details/win32/dll.cxx b/odb/details/win32/dll.cxx
index 7e6d9a3..49b660c 100644
--- a/odb/details/win32/dll.cxx
+++ b/odb/details/win32/dll.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/dll.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
// If we are building a static library from VC++ (LIBODB_STATIC_LIB) or
diff --git a/odb/details/win32/exceptions.cxx b/odb/details/win32/exceptions.cxx
index 8b81ca8..3cf11c2 100644
--- a/odb/details/win32/exceptions.cxx
+++ b/odb/details/win32/exceptions.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/exceptions.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/exceptions.hxx>
diff --git a/odb/details/win32/exceptions.hxx b/odb/details/win32/exceptions.hxx
index 13363c8..b61a447 100644
--- a/odb/details/win32/exceptions.hxx
+++ b/odb/details/win32/exceptions.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/exceptions.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_EXCEPTIONS_HXX
diff --git a/odb/details/win32/init.cxx b/odb/details/win32/init.cxx
index cca9e68..f6e0f9a 100644
--- a/odb/details/win32/init.cxx
+++ b/odb/details/win32/init.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/init.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/init.hxx>
diff --git a/odb/details/win32/init.hxx b/odb/details/win32/init.hxx
index 16fc4ce..1c15ffd 100644
--- a/odb/details/win32/init.hxx
+++ b/odb/details/win32/init.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/init.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_INIT_HXX
diff --git a/odb/details/win32/lock.hxx b/odb/details/win32/lock.hxx
index eef01c7..2e81ac6 100644
--- a/odb/details/win32/lock.hxx
+++ b/odb/details/win32/lock.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/lock.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_LOCK_HXX
diff --git a/odb/details/win32/mutex.hxx b/odb/details/win32/mutex.hxx
index f135a72..b2cd997 100644
--- a/odb/details/win32/mutex.hxx
+++ b/odb/details/win32/mutex.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/mutex.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_MUTEX_HXX
diff --git a/odb/details/win32/mutex.ixx b/odb/details/win32/mutex.ixx
index 81d69ba..bb06415 100644
--- a/odb/details/win32/mutex.ixx
+++ b/odb/details/win32/mutex.ixx
@@ -1,5 +1,4 @@
// file : odb/details/win32/mutex.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/details/win32/once-init.hxx b/odb/details/win32/once-init.hxx
index c8fdd45..a465c90 100644
--- a/odb/details/win32/once-init.hxx
+++ b/odb/details/win32/once-init.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/once-init.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_ONCE_INIT_HXX
diff --git a/odb/details/win32/once.cxx b/odb/details/win32/once.cxx
index 8a489ec..7b98d80 100644
--- a/odb/details/win32/once.cxx
+++ b/odb/details/win32/once.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/once.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/windows.hxx>
diff --git a/odb/details/win32/once.hxx b/odb/details/win32/once.hxx
index 2b99709..45748b8 100644
--- a/odb/details/win32/once.hxx
+++ b/odb/details/win32/once.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/once.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_ONCE_HXX
diff --git a/odb/details/win32/once.ixx b/odb/details/win32/once.ixx
index a893e67..1638706 100644
--- a/odb/details/win32/once.ixx
+++ b/odb/details/win32/once.ixx
@@ -1,5 +1,4 @@
// file : odb/details/win32/once.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/lock.hxx>
diff --git a/odb/details/win32/thread.cxx b/odb/details/win32/thread.cxx
index 5a76247..46720d4 100644
--- a/odb/details/win32/thread.cxx
+++ b/odb/details/win32/thread.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/thread.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/windows.hxx>
diff --git a/odb/details/win32/thread.hxx b/odb/details/win32/thread.hxx
index b65a503..a4e1a15 100644
--- a/odb/details/win32/thread.hxx
+++ b/odb/details/win32/thread.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/thread.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_THREAD_HXX
diff --git a/odb/details/win32/tls-init.hxx b/odb/details/win32/tls-init.hxx
index c187dc2..0a44a10 100644
--- a/odb/details/win32/tls-init.hxx
+++ b/odb/details/win32/tls-init.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/tls-init.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_TLS_INIT_HXX
diff --git a/odb/details/win32/tls.cxx b/odb/details/win32/tls.cxx
index a589066..2edc364 100644
--- a/odb/details/win32/tls.cxx
+++ b/odb/details/win32/tls.cxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/tls.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/win32/windows.hxx>
diff --git a/odb/details/win32/tls.hxx b/odb/details/win32/tls.hxx
index eccd3ea..2a75cc8 100644
--- a/odb/details/win32/tls.hxx
+++ b/odb/details/win32/tls.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/tls.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_TLS_HXX
diff --git a/odb/details/win32/tls.ixx b/odb/details/win32/tls.ixx
index cd8c304..fbcc3dd 100644
--- a/odb/details/win32/tls.ixx
+++ b/odb/details/win32/tls.ixx
@@ -1,5 +1,4 @@
// file : odb/details/win32/tls.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/details/win32/tls.txx b/odb/details/win32/tls.txx
index 1607a95..96bed4c 100644
--- a/odb/details/win32/tls.txx
+++ b/odb/details/win32/tls.txx
@@ -1,5 +1,4 @@
// file : odb/details/win32/tls.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/details/unique-ptr.hxx>
diff --git a/odb/details/win32/windows.hxx b/odb/details/win32/windows.hxx
index 9117bec..9ff4cb4 100644
--- a/odb/details/win32/windows.hxx
+++ b/odb/details/win32/windows.hxx
@@ -1,5 +1,4 @@
// file : odb/details/win32/windows.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WIN32_WINDOWS_HXX
diff --git a/odb/details/wrapper-p.hxx b/odb/details/wrapper-p.hxx
index da90f4a..8f72b5d 100644
--- a/odb/details/wrapper-p.hxx
+++ b/odb/details/wrapper-p.hxx
@@ -1,5 +1,4 @@
// file : odb/details/wrapper-p.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_DETAILS_WRAPPER_P_HXX
diff --git a/odb/exception.hxx b/odb/exception.hxx
index 9f90770..39daf92 100644
--- a/odb/exception.hxx
+++ b/odb/exception.hxx
@@ -1,5 +1,4 @@
// file : odb/exception.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_EXCEPTION_HXX
diff --git a/odb/exceptions.cxx b/odb/exceptions.cxx
index 552de74..bb13b6c 100644
--- a/odb/exceptions.cxx
+++ b/odb/exceptions.cxx
@@ -1,5 +1,4 @@
// file : odb/exceptions.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <cstring> // std::strlen
diff --git a/odb/exceptions.hxx b/odb/exceptions.hxx
index 531f8c0..d283010 100644
--- a/odb/exceptions.hxx
+++ b/odb/exceptions.hxx
@@ -1,5 +1,4 @@
// file : odb/exceptions.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_EXCEPTIONS_HXX
diff --git a/odb/forward.hxx b/odb/forward.hxx
index b9913d9..6f1176d 100644
--- a/odb/forward.hxx
+++ b/odb/forward.hxx
@@ -1,5 +1,4 @@
// file : odb/forward.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_FORWARD_HXX
diff --git a/odb/function-table.hxx b/odb/function-table.hxx
index 1e2a5eb..b1a5a94 100644
--- a/odb/function-table.hxx
+++ b/odb/function-table.hxx
@@ -1,5 +1,4 @@
// file : odb/function-table.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_FUNCTION_TABLE_HXX
diff --git a/odb/lazy-pointer-traits.hxx b/odb/lazy-pointer-traits.hxx
index 73163a2..2a6c8eb 100644
--- a/odb/lazy-pointer-traits.hxx
+++ b/odb/lazy-pointer-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/lazy-pointer-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_LAZY_POINTER_TRAITS_HXX
diff --git a/odb/lazy-ptr-impl.hxx b/odb/lazy-ptr-impl.hxx
index 3c4138f..89fe798 100644
--- a/odb/lazy-ptr-impl.hxx
+++ b/odb/lazy-ptr-impl.hxx
@@ -1,5 +1,4 @@
// file : odb/lazy-ptr-impl.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_LAZY_PTR_IMPL_HXX
@@ -45,10 +44,10 @@ namespace odb
//
public:
#ifdef ODB_CXX11
- lazy_ptr_base (lazy_ptr_base&&);
+ lazy_ptr_base (lazy_ptr_base&&) noexcept;
lazy_ptr_base&
- operator= (lazy_ptr_base&&);
+ operator= (lazy_ptr_base&&) noexcept;
#endif
public:
@@ -140,13 +139,13 @@ namespace odb
//
public:
#ifdef ODB_CXX11
- lazy_ptr_impl (lazy_ptr_impl&&);
+ lazy_ptr_impl (lazy_ptr_impl&&) noexcept;
template <typename Y>
lazy_ptr_impl (lazy_ptr_impl<Y>&&);
lazy_ptr_impl&
- operator= (lazy_ptr_impl&&);
+ operator= (lazy_ptr_impl&&) noexcept;
template <typename Y>
lazy_ptr_impl&
diff --git a/odb/lazy-ptr-impl.ixx b/odb/lazy-ptr-impl.ixx
index e4a32b4..9ab0471 100644
--- a/odb/lazy-ptr-impl.ixx
+++ b/odb/lazy-ptr-impl.ixx
@@ -1,5 +1,4 @@
// file : odb/lazy-ptr-impl.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
@@ -32,7 +31,7 @@ namespace odb
#ifdef ODB_CXX11
inline lazy_ptr_base::
- lazy_ptr_base (lazy_ptr_base&& r)
+ lazy_ptr_base (lazy_ptr_base&& r) noexcept
: id_ (r.id_), db_ (r.db_), loader_ (r.loader_),
free_ (r.free_), copy_ (r.copy_)
{
@@ -79,20 +78,20 @@ namespace odb
#ifdef ODB_CXX11
inline lazy_ptr_base& lazy_ptr_base::
- operator= (lazy_ptr_base&& r)
+ operator= (lazy_ptr_base&& r) noexcept
{
if (id_ != r.id_)
{
reset_id ();
id_ = r.id_;
- db_ = r.db_;
- loader_ = r.loader_;
free_ = r.free_;
copy_ = r.copy_;
r.id_ = 0;
}
+ db_ = r.db_;
+ loader_ = r.loader_;
return *this;
}
#endif
@@ -273,7 +272,7 @@ namespace odb
#ifdef ODB_CXX11
template <typename T>
inline lazy_ptr_impl<T>::
- lazy_ptr_impl (lazy_ptr_impl&& r)
+ lazy_ptr_impl (lazy_ptr_impl&& r) noexcept
: lazy_ptr_base (std::move (r))
{
}
@@ -288,7 +287,7 @@ namespace odb
template <typename T>
inline lazy_ptr_impl<T>& lazy_ptr_impl<T>::
- operator= (lazy_ptr_impl&& r)
+ operator= (lazy_ptr_impl&& r) noexcept
{
lazy_ptr_base& b (*this);
b = std::move (r);
diff --git a/odb/lazy-ptr-impl.txx b/odb/lazy-ptr-impl.txx
index aac3db6..7aea9c3 100644
--- a/odb/lazy-ptr-impl.txx
+++ b/odb/lazy-ptr-impl.txx
@@ -1,5 +1,4 @@
// file : odb/lazy-ptr-impl.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/lazy-ptr.hxx b/odb/lazy-ptr.hxx
index 9f2f141..ab31dfc 100644
--- a/odb/lazy-ptr.hxx
+++ b/odb/lazy-ptr.hxx
@@ -1,5 +1,4 @@
// file : odb/lazy-ptr.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_LAZY_PTR_HXX
@@ -247,14 +246,14 @@ namespace odb
lazy_unique_ptr (pointer, const deleter_type&) /*noexcept*/;
lazy_unique_ptr (pointer, deleter_type&&) /*noexcept*/;
- lazy_unique_ptr (lazy_unique_ptr&&) /*noexcept*/;
+ lazy_unique_ptr (lazy_unique_ptr&&) noexcept;
template <class T1, class D1> lazy_unique_ptr (lazy_unique_ptr<T1, D1>&&) /*noexcept*/;
//template <class T1> lazy_unique_ptr (std::auto_ptr<T1>&&) /*noexcept*/;
#ifdef ODB_CXX11_NULLPTR
lazy_unique_ptr& operator= (std::nullptr_t) /*noexcept*/;
#endif
- lazy_unique_ptr& operator= (lazy_unique_ptr&&) /*noexcept*/;
+ lazy_unique_ptr& operator= (lazy_unique_ptr&&) noexcept;
template <class T1, class D1> lazy_unique_ptr& operator= (lazy_unique_ptr<T1, D1>&&) /*noexcept*/;
T& operator* () const;
@@ -408,7 +407,7 @@ namespace odb
lazy_shared_ptr (const lazy_shared_ptr&) /*noexcept*/;
template <class Y> lazy_shared_ptr (const lazy_shared_ptr<Y>&) /*noexcept*/;
- lazy_shared_ptr (lazy_shared_ptr&&) /*noexcept*/;
+ lazy_shared_ptr (lazy_shared_ptr&&) noexcept;
template <class Y> lazy_shared_ptr (lazy_shared_ptr<Y>&&) /*noexcept*/;
template <class Y> explicit lazy_shared_ptr (const lazy_weak_ptr<Y>&);
//template <class Y> explicit lazy_shared_ptr (std::auto_ptr<Y>&&);
@@ -418,7 +417,7 @@ namespace odb
lazy_shared_ptr& operator= (const lazy_shared_ptr&) /*noexcept*/;
template <class Y> lazy_shared_ptr& operator= (const lazy_shared_ptr<Y>&) /*noexcept*/;
- lazy_shared_ptr& operator= (lazy_shared_ptr&&) /*noexcept*/;
+ lazy_shared_ptr& operator= (lazy_shared_ptr&&) noexcept;
template <class Y> lazy_shared_ptr& operator= (lazy_shared_ptr<Y>&&) /*noexcept*/;
//template <class Y> lazy_shared_ptr& operator= (std::auto_ptr<Y>&&);
template <class Y, class D> lazy_shared_ptr& operator= (std::unique_ptr<Y, D>&&);
diff --git a/odb/lazy-ptr.ixx b/odb/lazy-ptr.ixx
index 7ec9a24..a2d72f5 100644
--- a/odb/lazy-ptr.ixx
+++ b/odb/lazy-ptr.ixx
@@ -1,5 +1,4 @@
// file : odb/lazy-ptr.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
@@ -520,7 +519,7 @@ namespace odb
template <class T, class D>
lazy_unique_ptr<T, D>::
- lazy_unique_ptr (lazy_unique_ptr&& r)
+ lazy_unique_ptr (lazy_unique_ptr&& r) noexcept
: p_ (std::move (r.p_)), i_ (std::move (r.i_)) {}
template <class T, class D>
@@ -546,7 +545,7 @@ namespace odb
template <class T, class D>
lazy_unique_ptr<T, D>& lazy_unique_ptr<T, D>::
- operator= (lazy_unique_ptr&& r)
+ operator= (lazy_unique_ptr&& r) noexcept
{
p_ = std::move (r.p_);
i_ = std::move (r.i_);
@@ -923,7 +922,7 @@ namespace odb
template <class T>
inline lazy_shared_ptr<T>::
- lazy_shared_ptr (lazy_shared_ptr&& r)
+ lazy_shared_ptr (lazy_shared_ptr&& r) noexcept
: p_ (std::move (r.p_)), i_ (std::move (r.i_)) {}
template <class T>
@@ -980,7 +979,7 @@ namespace odb
template <class T>
inline lazy_shared_ptr<T>& lazy_shared_ptr<T>::
- operator= (lazy_shared_ptr&& r)
+ operator= (lazy_shared_ptr&& r) noexcept
{
p_ = std::move (r.p_);
i_ = std::move (r.i_);
diff --git a/odb/lazy-ptr.txx b/odb/lazy-ptr.txx
index 5309681..17a7405 100644
--- a/odb/lazy-ptr.txx
+++ b/odb/lazy-ptr.txx
@@ -1,5 +1,4 @@
// file : odb/lazy-ptr.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/makefile b/odb/makefile
index 24f7eb3..01b395e 100644
--- a/odb/makefile
+++ b/odb/makefile
@@ -1,5 +1,4 @@
# file : odb/makefile
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
@@ -137,7 +136,7 @@ libodb-vc10.vcxproj libodb-vc10.vcxproj.filters \
libodb-vc11.vcxproj libodb-vc11.vcxproj.filters \
libodb-vc12.vcxproj libodb-vc12.vcxproj.filters
$(dist): export interface_version = $(shell sed -e \
-'s/^\([0-9]*\.[0-9]*\).*/\1/' $(src_root)/version)
+'s/^\([0-9]*\.[0-9]*\).*/\1/' $(src_root)/version.txt)
$(dist):
$(call dist-data,$(sources) $(posix_threads_sources) \
diff --git a/odb/nested-container.hxx b/odb/nested-container.hxx
index 67cf96f..d7e4ec1 100644
--- a/odb/nested-container.hxx
+++ b/odb/nested-container.hxx
@@ -1,5 +1,4 @@
// file : odb/nested-container.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_NESTED_CONTAINER_HXX
@@ -20,22 +19,29 @@ namespace odb
{
// Nested container emulation support for ODB.
//
- // Note that the outer key in the inner container should strictly
- // speaking be a foreign key pointing to the key of the outer
- // container. The only way to achieve this currently is to manually
- // add the constraint via ALTER TABLE ADD CONSTRAINT. Note, however,
- // that as long as we only modify these tables via the ODB container
- // interface, not having the foreign key (and not having ON DELETE
- // CASCADE) should be harmless (since we have a foreign key pointing
- // to the object id).
+ // In a nutshell, the idea is to represent a nested container, for example,
+ // vector<vector<V>>, as map<nested_key, V> where nested_key is a composite
+ // key consisting of the outer and inner container indexes.
//
-
- // Map key that is used to emulate nested container mapping in ODB.
- // Template parameter T is a tag that allows us to distinguish keys
- // for unrelated containers in order to assign column names, etc.
- // Use inner container type for T.
+ // Note that with this approach the empty trailing entries of the outer
+ // container will not be added on load. It is assumed that the user handles
+ // that on their own, for example, by pre-loading the outer container entry
+ // members if there are any.
+ //
+ // Also note that the outer key in the inner container should strictly
+ // speaking be a foreign key pointing to the key of the outer container. The
+ // only way to achieve this currently is to manually add the constraint via
+ // ALTER TABLE ADD CONSTRAINT. Note, however, that as long as we only modify
+ // these tables via the ODB container interface, not having the foreign key
+ // (and not having ON DELETE CASCADE) should be harmless (since we have a
+ // foreign key pointing to the object id).
+
+ // Map key that is used to emulate 1-level nested container mapping (for
+ // example, vector<vector<V>>). Template parameter IC is a tag that allows
+ // us to distinguish keys for unrelated containers in order to assign column
+ // names, etc. Use the inner container type (for example, vector<V>) for IC.
//
- template <typename T,
+ template <typename IC,
typename O = std::size_t,
typename I = std::size_t>
struct nested_key
@@ -55,10 +61,40 @@ namespace odb
return outer < v.outer || (outer == v.outer && inner < v.inner);
}
};
+
+ // Map key that is used to emulate 2-level nested container mapping (for
+ // example, vector<vector<vector<V>>>>). Use the middle container type for
+ // MC (for example, vector<vector<V>>).
+ //
+ template <typename MC,
+ typename O = std::size_t,
+ typename M = std::size_t,
+ typename I = std::size_t>
+ struct nested2_key
+ {
+ using outer_type = O;
+ using middle_type = M;
+ using inner_type = I;
+
+ outer_type outer;
+ middle_type middle;
+ inner_type inner;
+
+ nested2_key () = default;
+ nested2_key (outer_type o, middle_type m, inner_type i)
+ : outer (o), middle (m), inner (i) {}
+
+ bool
+ operator< (const nested2_key& v) const
+ {
+ return outer != v.outer ? outer < v.outer :
+ middle != v.middle ? middle < v.middle :
+ inner < v.inner ;
+ }
+ };
}
#include <map>
-#include <vector>
#include <cstddef> // size_t
#include <utility> // move(), declval()
#include <cassert>
@@ -66,46 +102,113 @@ namespace odb
namespace odb
{
- // vector<vector<>>
- //
- template <typename IC>
- struct nested_value_type:
- std::remove_reference<decltype (std::declval<IC> ()[0])> {};
+ template <typename C>
+ struct nested1_type:
+ std::remove_reference<decltype (std::declval<C> ()[0])> {};
+
+ template <typename C>
+ struct nested2_type:
+ std::remove_reference<decltype (std::declval<C> ()[0][0])> {};
+
+ template <typename C>
+ struct nested3_type:
+ std::remove_reference<decltype (std::declval<C> ()[0][0][0])> {};
- template <typename IC>
- std::map<nested_key<IC>, typename nested_value_type<IC>::type>
- nested_get (const std::vector<IC>& v)
+ // 1-level nesting.
+ //
+ template <typename OC> // For example, OC = vector<vector<V>>.
+ std::map<nested_key<typename nested1_type<OC>::type>,
+ typename nested2_type<OC>::type>
+ nested_get (const OC& oc)
{
using namespace std;
- using I = typename nested_value_type<IC>::type;
+ using IC = typename nested1_type<OC>::type;
+ using V = typename nested2_type<OC>::type;
using K = nested_key<IC>;
- map<K, I> r;
- for (size_t n (0); n != v.size (); ++n)
+ map<K, V> r;
+ for (size_t o (0); o != oc.size (); ++o)
+ {
+ const IC& ic (oc[o]);
+ for (size_t i (0); i != ic.size (); ++i)
+ r.emplace (K (o, i), ic[i]);
+ }
+ return r;
+ }
+
+ template <typename K, typename V, typename OC>
+ void
+ nested_set (OC& oc, std::map<K, V>&& r)
+ {
+ using namespace std;
+
+ for (auto& p: r)
+ {
+ size_t o (p.first.outer);
+ size_t i (p.first.inner);
+ V& v (p.second);
+
+ if (o >= oc.size ())
+ oc.resize (o + 1);
+
+ assert (i == oc[o].size ());
+
+ oc[o].push_back (move (v));
+ }
+ }
+
+ // 2-level nesting.
+ //
+ template <typename OC> // For example, OC = vector<vector<vector<V>>>.
+ std::map<nested2_key<typename nested1_type<OC>::type>,
+ typename nested3_type<OC>::type>
+ nested2_get (const OC& oc)
+ {
+ using namespace std;
+
+ using MC = typename nested1_type<OC>::type;
+ using V = typename nested3_type<OC>::type;
+ using K = nested2_key<MC>;
+
+ map<K, V> r;
+ for (size_t o (0); o != oc.size (); ++o)
{
- const IC& o (v[n]);
- for (size_t m (0); m != o.size (); ++m)
- r.emplace (K (n, m), o[m]);
+ const auto& mc (oc[o]);
+ for (size_t m (0); m != mc.size (); ++m)
+ {
+ const auto& ic (mc[m]);
+ for (size_t i (0); i != ic.size (); ++i)
+ r.emplace (K (o, m, i), ic[i]);
+ }
}
return r;
}
- template <typename K, typename I, typename IC>
+ template <typename K, typename V, typename OC>
void
- nested_set (std::vector<IC>& v, std::map<K, I>&& r)
+ nested2_set (OC& oc, std::map<K, V>&& r)
{
using namespace std;
for (auto& p: r)
{
- size_t n (p.first.outer);
- size_t m (p.first.inner);
- I& i (p.second);
+ size_t o (p.first.outer);
+ size_t m (p.first.middle);
+ size_t i (p.first.inner);
+ V& v (p.second);
+
+ if (o >= oc.size ())
+ oc.resize (o + 1);
+
+ auto& mc (oc[o]);
+
+ if (m >= mc.size ())
+ mc.resize (m + 1);
+
+ assert (i == mc[m].size ());
- assert (n < v.size ());
- assert (m == v[n].size ());
- v[n].push_back (move (i));
+ mc[m].push_back (move (v));
}
}
}
diff --git a/odb/no-id-object-result.hxx b/odb/no-id-object-result.hxx
index 01fef38..556065b 100644
--- a/odb/no-id-object-result.hxx
+++ b/odb/no-id-object-result.hxx
@@ -1,5 +1,4 @@
// file : odb/no-id-object-result.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_NO_ID_OBJECT_RESULT_HXX
diff --git a/odb/no-id-object-result.txx b/odb/no-id-object-result.txx
index cd6707f..886fe4b 100644
--- a/odb/no-id-object-result.txx
+++ b/odb/no-id-object-result.txx
@@ -1,5 +1,4 @@
// file : odb/no-id-object-result.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/no-op-cache-traits.hxx b/odb/no-op-cache-traits.hxx
index 5f56a77..b6d0518 100644
--- a/odb/no-op-cache-traits.hxx
+++ b/odb/no-op-cache-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/no-op-cache-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_NO_OP_CACHE_TRAITS_HXX
diff --git a/odb/nullable.hxx b/odb/nullable.hxx
index 61d633c..d13f0c9 100644
--- a/odb/nullable.hxx
+++ b/odb/nullable.hxx
@@ -1,5 +1,4 @@
// file : odb/nullable.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_NULLABLE_HXX
diff --git a/odb/object-result.hxx b/odb/object-result.hxx
index 95864b5..056d518 100644
--- a/odb/object-result.hxx
+++ b/odb/object-result.hxx
@@ -1,5 +1,4 @@
// file : odb/object-result.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_OBJECT_RESULT_HXX
diff --git a/odb/pointer-traits.hxx b/odb/pointer-traits.hxx
index ef3c8ee..a0baa21 100644
--- a/odb/pointer-traits.hxx
+++ b/odb/pointer-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/pointer-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_POINTER_TRAITS_HXX
diff --git a/odb/polymorphic-info.hxx b/odb/polymorphic-info.hxx
index cbb6d38..0f410d5 100644
--- a/odb/polymorphic-info.hxx
+++ b/odb/polymorphic-info.hxx
@@ -1,5 +1,4 @@
// file : odb/polymorphic-info.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_POLYMORPHIC_INFO_HXX
diff --git a/odb/polymorphic-map.hxx b/odb/polymorphic-map.hxx
index 9f0ff7b..2e61314 100644
--- a/odb/polymorphic-map.hxx
+++ b/odb/polymorphic-map.hxx
@@ -1,5 +1,4 @@
// file : odb/polymorphic-map.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_POLYMORPHIC_MAP_HXX
diff --git a/odb/polymorphic-map.ixx b/odb/polymorphic-map.ixx
index 8e50d1e..4e00c46 100644
--- a/odb/polymorphic-map.ixx
+++ b/odb/polymorphic-map.ixx
@@ -1,5 +1,4 @@
// file : odb/polymorphic-map.ixx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/polymorphic-map.txx b/odb/polymorphic-map.txx
index 1386036..9e0c0f0 100644
--- a/odb/polymorphic-map.txx
+++ b/odb/polymorphic-map.txx
@@ -1,5 +1,4 @@
// file : odb/polymorphic-map.txx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/exceptions.hxx> // no_type_info
diff --git a/odb/polymorphic-object-result.hxx b/odb/polymorphic-object-result.hxx
index f585150..5498856 100644
--- a/odb/polymorphic-object-result.hxx
+++ b/odb/polymorphic-object-result.hxx
@@ -1,5 +1,4 @@
// file : odb/polymorphic-object-result.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_POLYMORPHIC_OBJECT_RESULT_HXX
diff --git a/odb/polymorphic-object-result.txx b/odb/polymorphic-object-result.txx
index 6208745..d9252e9 100644
--- a/odb/polymorphic-object-result.txx
+++ b/odb/polymorphic-object-result.txx
@@ -1,5 +1,4 @@
// file : odb/polymorphic-object-result.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/exceptions.hxx>
diff --git a/odb/post.hxx b/odb/post.hxx
index 288ae6d..3cdfd94 100644
--- a/odb/post.hxx
+++ b/odb/post.hxx
@@ -1,5 +1,4 @@
// file : odb/post.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifdef _MSC_VER
diff --git a/odb/pre.hxx b/odb/pre.hxx
index 2c44250..088f172 100644
--- a/odb/pre.hxx
+++ b/odb/pre.hxx
@@ -1,5 +1,4 @@
// file : odb/pre.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifdef _MSC_VER
diff --git a/odb/prepared-query.cxx b/odb/prepared-query.cxx
index 22862fe..70bcaa1 100644
--- a/odb/prepared-query.cxx
+++ b/odb/prepared-query.cxx
@@ -1,8 +1,8 @@
// file : odb/prepared-query.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/connection.hxx>
+#include <odb/transaction.hxx>
#include <odb/prepared-query.hxx>
namespace odb
@@ -27,6 +27,12 @@ namespace odb
next_->prev_ = this;
}
+ bool prepared_query_impl::
+ verify_connection (transaction& t)
+ {
+ return &t.connection () == &stmt->connection ();
+ }
+
void prepared_query_impl::
list_remove ()
{
diff --git a/odb/prepared-query.hxx b/odb/prepared-query.hxx
index c9bc33a..7cac6da 100644
--- a/odb/prepared-query.hxx
+++ b/odb/prepared-query.hxx
@@ -1,5 +1,4 @@
// file : odb/prepared-query.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_PREPARED_QUERY_HXX
@@ -25,6 +24,12 @@ namespace odb
prepared_query_impl (connection&);
+ // Verify this prepared query and the specified transaction use the
+ // same connection.
+ //
+ virtual bool
+ verify_connection (transaction&);
+
bool cached;
connection& conn;
const char* name;
diff --git a/odb/query-dynamic.cxx b/odb/query-dynamic.cxx
index b0652e7..bf9fd9c 100644
--- a/odb/query-dynamic.cxx
+++ b/odb/query-dynamic.cxx
@@ -1,5 +1,4 @@
// file : odb/query-dynamic.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/query-dynamic.hxx>
diff --git a/odb/query-dynamic.hxx b/odb/query-dynamic.hxx
index e6e4205..cd0ce05 100644
--- a/odb/query-dynamic.hxx
+++ b/odb/query-dynamic.hxx
@@ -1,5 +1,4 @@
// file : odb/query-dynamic.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_QUERY_DYNAMIC_HXX
diff --git a/odb/query-dynamic.ixx b/odb/query-dynamic.ixx
index 4647714..8de7b8e 100644
--- a/odb/query-dynamic.ixx
+++ b/odb/query-dynamic.ixx
@@ -1,5 +1,4 @@
// file : odb/query-dynamic.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/query-dynamic.txx b/odb/query-dynamic.txx
index 8195c82..9ea16d2 100644
--- a/odb/query-dynamic.txx
+++ b/odb/query-dynamic.txx
@@ -1,5 +1,4 @@
// file : odb/query-dynamic.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/query.hxx b/odb/query.hxx
index 7b78bcd..9375738 100644
--- a/odb/query.hxx
+++ b/odb/query.hxx
@@ -1,5 +1,4 @@
// file : odb/query.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_QUERY_HXX
diff --git a/odb/result.cxx b/odb/result.cxx
index 3bb04cf..e9393ca 100644
--- a/odb/result.cxx
+++ b/odb/result.cxx
@@ -1,5 +1,4 @@
// file : odb/result.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/result.hxx>
diff --git a/odb/result.hxx b/odb/result.hxx
index 177195c..87a6869 100644
--- a/odb/result.hxx
+++ b/odb/result.hxx
@@ -1,5 +1,4 @@
// file : odb/result.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_RESULT_HXX
diff --git a/odb/result.txx b/odb/result.txx
index e937c37..b69d92a 100644
--- a/odb/result.txx
+++ b/odb/result.txx
@@ -1,5 +1,4 @@
// file : odb/result.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <cassert>
diff --git a/odb/schema-catalog-impl.hxx b/odb/schema-catalog-impl.hxx
index 6eaae5a..dd729db 100644
--- a/odb/schema-catalog-impl.hxx
+++ b/odb/schema-catalog-impl.hxx
@@ -1,5 +1,4 @@
// file : odb/schema-catalog-impl.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_SCHEMA_CATALOG_IMPL_HXX
diff --git a/odb/schema-catalog.cxx b/odb/schema-catalog.cxx
index 946884f..1bdc112 100644
--- a/odb/schema-catalog.cxx
+++ b/odb/schema-catalog.cxx
@@ -1,5 +1,4 @@
// file : odb/schema-catalog.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <map>
@@ -268,6 +267,9 @@ namespace odb
schema_version i (db.schema_version (name));
+ if (i > v)
+ throw unknown_schema_version (i); // Database too new.
+
// If there is no schema, then "migrate" by creating it.
//
if (i == 0)
diff --git a/odb/schema-catalog.hxx b/odb/schema-catalog.hxx
index 151b98e..c38cd4f 100644
--- a/odb/schema-catalog.hxx
+++ b/odb/schema-catalog.hxx
@@ -1,5 +1,4 @@
// file : odb/schema-catalog.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_SCHEMA_CATALOG_HXX
diff --git a/odb/schema-version.hxx b/odb/schema-version.hxx
index 9fb6b15..1f047a4 100644
--- a/odb/schema-version.hxx
+++ b/odb/schema-version.hxx
@@ -1,5 +1,4 @@
// file : odb/schema-version.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_SCHEMA_VERSION_HXX
diff --git a/odb/section.cxx b/odb/section.cxx
index bf92ca7..0fe5211 100644
--- a/odb/section.cxx
+++ b/odb/section.cxx
@@ -1,5 +1,4 @@
// file : odb/section.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/section.hxx>
diff --git a/odb/section.hxx b/odb/section.hxx
index ed02d9a..98b98cf 100644
--- a/odb/section.hxx
+++ b/odb/section.hxx
@@ -1,5 +1,4 @@
// file : odb/section.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_SECTION_HXX
diff --git a/odb/session.cxx b/odb/session.cxx
index d8f03d3..bc0e854 100644
--- a/odb/session.cxx
+++ b/odb/session.cxx
@@ -1,5 +1,4 @@
// file : odb/session.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/exceptions.hxx>
diff --git a/odb/session.hxx b/odb/session.hxx
index 44325da..a14c42f 100644
--- a/odb/session.hxx
+++ b/odb/session.hxx
@@ -1,5 +1,4 @@
// file : odb/session.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_SESSION_HXX
diff --git a/odb/session.ixx b/odb/session.ixx
index 9973d24..4acdc1b 100644
--- a/odb/session.ixx
+++ b/odb/session.ixx
@@ -1,5 +1,4 @@
// file : odb/session.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/exceptions.hxx>
diff --git a/odb/session.txx b/odb/session.txx
index d9a7bc7..d74fe0f 100644
--- a/odb/session.txx
+++ b/odb/session.txx
@@ -1,5 +1,4 @@
// file : odb/session.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/simple-object-result.hxx b/odb/simple-object-result.hxx
index 689c6fa..53c0cb2 100644
--- a/odb/simple-object-result.hxx
+++ b/odb/simple-object-result.hxx
@@ -1,5 +1,4 @@
// file : odb/simple-object-result.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_SIMPLE_OBJECT_RESULT_HXX
diff --git a/odb/simple-object-result.txx b/odb/simple-object-result.txx
index 995ebd6..00521f8 100644
--- a/odb/simple-object-result.txx
+++ b/odb/simple-object-result.txx
@@ -1,5 +1,4 @@
// file : odb/simple-object-result.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/statement-processing-common.hxx b/odb/statement-processing-common.hxx
index 0643b7c..23661fc 100644
--- a/odb/statement-processing-common.hxx
+++ b/odb/statement-processing-common.hxx
@@ -1,5 +1,4 @@
// file : odb/statement-processingc-common.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STATEMENT_PROCESSING_COMMON_HXX
diff --git a/odb/statement-processing.cxx b/odb/statement-processing.cxx
index 2bfc589..708c9ab 100644
--- a/odb/statement-processing.cxx
+++ b/odb/statement-processing.cxx
@@ -1,5 +1,4 @@
// file : odb/statement-processing.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <cassert>
diff --git a/odb/statement.cxx b/odb/statement.cxx
index 64ea75a..35e7b77 100644
--- a/odb/statement.cxx
+++ b/odb/statement.cxx
@@ -1,5 +1,4 @@
// file : odb/statement.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/statement.hxx>
diff --git a/odb/statement.hxx b/odb/statement.hxx
index 1f33403..83513c0 100644
--- a/odb/statement.hxx
+++ b/odb/statement.hxx
@@ -1,5 +1,4 @@
// file : odb/statement.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STATEMENT_HXX
diff --git a/odb/std-array-traits.hxx b/odb/std-array-traits.hxx
index 2cdd032..1d0f1a1 100644
--- a/odb/std-array-traits.hxx
+++ b/odb/std-array-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-array-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_ARRAY_TRAITS_HXX
diff --git a/odb/std-deque-traits.hxx b/odb/std-deque-traits.hxx
index 4f06bc8..351c6db 100644
--- a/odb/std-deque-traits.hxx
+++ b/odb/std-deque-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-deque-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_DEQUE_TRAITS_HXX
diff --git a/odb/std-forward-list-traits.hxx b/odb/std-forward-list-traits.hxx
index 9af4e2e..7978b1c 100644
--- a/odb/std-forward-list-traits.hxx
+++ b/odb/std-forward-list-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-forward-list-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_FORWARD_LIST_TRAITS_HXX
diff --git a/odb/std-list-traits.hxx b/odb/std-list-traits.hxx
index f6c7534..f349079 100644
--- a/odb/std-list-traits.hxx
+++ b/odb/std-list-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-list-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_LIST_TRAITS_HXX
diff --git a/odb/std-map-traits.hxx b/odb/std-map-traits.hxx
index 8b0022f..2b9bf7d 100644
--- a/odb/std-map-traits.hxx
+++ b/odb/std-map-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-map-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_MAP_TRAITS_HXX
diff --git a/odb/std-set-traits.hxx b/odb/std-set-traits.hxx
index 3beeb4b..45a5dcc 100644
--- a/odb/std-set-traits.hxx
+++ b/odb/std-set-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-set-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_SET_TRAITS_HXX
diff --git a/odb/std-unordered-map-traits.hxx b/odb/std-unordered-map-traits.hxx
index 584f3ef..461eb06 100644
--- a/odb/std-unordered-map-traits.hxx
+++ b/odb/std-unordered-map-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-unordered-map-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_UNORDERED_MAP_TRAITS_HXX
diff --git a/odb/std-unordered-set-traits.hxx b/odb/std-unordered-set-traits.hxx
index e8a2203..f590665 100644
--- a/odb/std-unordered-set-traits.hxx
+++ b/odb/std-unordered-set-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-unordered-set-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_UNORDERED_SET_TRAITS_HXX
diff --git a/odb/std-vector-traits.hxx b/odb/std-vector-traits.hxx
index af047db..c6bb39e 100644
--- a/odb/std-vector-traits.hxx
+++ b/odb/std-vector-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/std-vector-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_STD_VECTOR_TRAITS_HXX
diff --git a/odb/tr1/lazy-pointer-traits.hxx b/odb/tr1/lazy-pointer-traits.hxx
index fc2e0f2..7adf957 100644
--- a/odb/tr1/lazy-pointer-traits.hxx
+++ b/odb/tr1/lazy-pointer-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/tr1/lazy-pointer-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TR1_LAZY_POINTER_TRAITS_HXX
diff --git a/odb/tr1/lazy-ptr.hxx b/odb/tr1/lazy-ptr.hxx
index 8954d78..b4946ec 100644
--- a/odb/tr1/lazy-ptr.hxx
+++ b/odb/tr1/lazy-ptr.hxx
@@ -1,5 +1,4 @@
// file : odb/tr1/lazy-ptr.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TR1_LAZY_PTR_HXX
diff --git a/odb/tr1/lazy-ptr.ixx b/odb/tr1/lazy-ptr.ixx
index 06b0d38..dc5000f 100644
--- a/odb/tr1/lazy-ptr.ixx
+++ b/odb/tr1/lazy-ptr.ixx
@@ -1,5 +1,4 @@
// file : odb/tr1/lazy-ptr.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/tr1/lazy-ptr.txx b/odb/tr1/lazy-ptr.txx
index 9b5e63a..7e36cd9 100644
--- a/odb/tr1/lazy-ptr.txx
+++ b/odb/tr1/lazy-ptr.txx
@@ -1,5 +1,4 @@
// file : odb/tr1/lazy-ptr.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/tr1/memory.hxx b/odb/tr1/memory.hxx
index 3325e2f..b9e9f45 100644
--- a/odb/tr1/memory.hxx
+++ b/odb/tr1/memory.hxx
@@ -1,5 +1,4 @@
// file : odb/tr1/memory.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TR1_MEMORY_HXX
diff --git a/odb/tr1/pointer-traits.hxx b/odb/tr1/pointer-traits.hxx
index f2295f7..df4f25f 100644
--- a/odb/tr1/pointer-traits.hxx
+++ b/odb/tr1/pointer-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/tr1/pointer-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TR1_POINTER_TRAITS_HXX
diff --git a/odb/tr1/wrapper-traits.hxx b/odb/tr1/wrapper-traits.hxx
index 6e69152..f878ef6 100644
--- a/odb/tr1/wrapper-traits.hxx
+++ b/odb/tr1/wrapper-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/tr1/wrapper-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TR1_WRAPPER_TRAITS_HXX
diff --git a/odb/tracer.cxx b/odb/tracer.cxx
index 8a09afc..1e636a7 100644
--- a/odb/tracer.cxx
+++ b/odb/tracer.cxx
@@ -1,5 +1,4 @@
// file : odb/tracer.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <iostream>
diff --git a/odb/tracer.hxx b/odb/tracer.hxx
index 5263116..11e4e76 100644
--- a/odb/tracer.hxx
+++ b/odb/tracer.hxx
@@ -1,5 +1,4 @@
// file : odb/tracer.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TRACER_HXX
diff --git a/odb/traits.hxx b/odb/traits.hxx
index 06e7ab6..2c6f5d6 100644
--- a/odb/traits.hxx
+++ b/odb/traits.hxx
@@ -1,5 +1,4 @@
// file : odb/traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TRAITS_HXX
@@ -72,6 +71,14 @@ namespace odb
typedef T value_type;
typedef P pointer_type;
+
+ // Suppress bogus use-after-free introduced in GCC 12 (GCC bug #105327).
+ //
+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wuse-after-free"
+#endif
+
static P
create ()
{
@@ -82,6 +89,10 @@ namespace odb
return p;
}
+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12
+#pragma GCC diagnostic pop
+#endif
+
private:
struct mem_guard
{
diff --git a/odb/transaction.cxx b/odb/transaction.cxx
index 6002783..f75cf32 100644
--- a/odb/transaction.cxx
+++ b/odb/transaction.cxx
@@ -1,5 +1,4 @@
// file : odb/transaction.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/transaction.hxx>
@@ -95,7 +94,7 @@ namespace odb
finalized_ = true;
rollback_guard rg (*this);
- impl_->connection ().transaction_tracer_ = 0;
+ impl_->tracer (0);
if (tls_get (current_transaction) == this)
{
@@ -119,7 +118,7 @@ namespace odb
finalized_ = true;
rollback_guard rg (*this);
- impl_->connection ().transaction_tracer_ = 0;
+ impl_->tracer (0);
if (tls_get (current_transaction) == this)
{
@@ -332,4 +331,26 @@ namespace odb
~transaction_impl ()
{
}
+
+ connection& transaction_impl::
+ connection (database_type* db)
+ {
+ assert (db == 0 || db == &database_);
+ return *connection_;
+ }
+
+ // The transaction-specific tracer is stored in the connection. See the
+ // connection class for the reason.
+ //
+ void transaction_impl::
+ tracer (tracer_type* t)
+ {
+ connection_->transaction_tracer_ = t;
+ }
+
+ tracer* transaction_impl::
+ tracer () const
+ {
+ return connection_->transaction_tracer_;
+ }
}
diff --git a/odb/transaction.hxx b/odb/transaction.hxx
index 820ed8f..1958df3 100644
--- a/odb/transaction.hxx
+++ b/odb/transaction.hxx
@@ -1,5 +1,4 @@
// file : odb/transaction.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_TRANSACTION_HXX
@@ -62,9 +61,17 @@ namespace odb
// Return the connection this transaction is on.
//
+ // The second version verifies the connection is to the specified
+ // database. For database implementations that support attaching multiple
+ // databases it may also select the connection corresponding to the
+ // specified database.
+ //
connection_type&
connection ();
+ connection_type&
+ connection (database_type&);
+
bool
finalized () const {return finalized_;}
@@ -216,6 +223,7 @@ namespace odb
class LIBODB_EXPORT transaction_impl
{
public:
+ typedef odb::tracer tracer_type;
typedef odb::database database_type;
typedef odb::connection connection_type;
@@ -237,11 +245,14 @@ namespace odb
return database_;
}
- connection_type&
- connection ()
- {
- return *connection_;
- }
+ virtual connection_type&
+ connection (database_type*);
+
+ virtual void
+ tracer (tracer_type*);
+
+ virtual tracer_type*
+ tracer () const;
protected:
transaction_impl (database_type& db)
diff --git a/odb/transaction.ixx b/odb/transaction.ixx
index 50734a3..cc1ce5e 100644
--- a/odb/transaction.ixx
+++ b/odb/transaction.ixx
@@ -1,5 +1,4 @@
// file : odb/transaction.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/connection.hxx>
@@ -34,7 +33,13 @@ namespace odb
inline transaction::connection_type& transaction::
connection ()
{
- return impl_->connection ();
+ return impl_->connection (0);
+ }
+
+ inline transaction::connection_type& transaction::
+ connection (database_type& db)
+ {
+ return impl_->connection (&db);
}
inline transaction_impl& transaction::
@@ -43,24 +48,21 @@ namespace odb
return *impl_;
}
- // The transaction-specific tracer is stored in the connection. See
- // the connection class for the reason.
- //
inline void transaction::
tracer (tracer_type& t)
{
- impl_->connection ().transaction_tracer_ = &t;
+ impl_->tracer (&t);
}
inline void transaction::
tracer (tracer_type* t)
{
- impl_->connection ().transaction_tracer_ = t;
+ impl_->tracer (t);
}
inline transaction::tracer_type* transaction::
tracer () const
{
- return impl_->connection ().transaction_tracer_;
+ return impl_->tracer ();
}
}
diff --git a/odb/vector-impl.cxx b/odb/vector-impl.cxx
index 25d1ad5..ca30f8d 100644
--- a/odb/vector-impl.cxx
+++ b/odb/vector-impl.cxx
@@ -1,5 +1,4 @@
// file : odb/vector-impl.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/vector-impl.hxx>
diff --git a/odb/vector-impl.hxx b/odb/vector-impl.hxx
index 826f278..9f2ea7c 100644
--- a/odb/vector-impl.hxx
+++ b/odb/vector-impl.hxx
@@ -1,5 +1,4 @@
// file : odb/vector-impl.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_VECTOR_IMPL_HXX
@@ -46,7 +45,7 @@ namespace odb
vector_impl (const vector_impl&);
#ifdef ODB_CXX11
- vector_impl (vector_impl&&);
+ vector_impl (vector_impl&&) noexcept;
#endif
void
@@ -196,7 +195,7 @@ namespace odb
vector_base (const vector_base&);
#ifdef ODB_CXX11
- vector_base (vector_base&&);
+ vector_base (vector_base&&) noexcept;
#endif
void
diff --git a/odb/vector-impl.ixx b/odb/vector-impl.ixx
index 941fa55..21999d5 100644
--- a/odb/vector-impl.ixx
+++ b/odb/vector-impl.ixx
@@ -1,5 +1,4 @@
// file : odb/vector-impl.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifdef ODB_CXX11
@@ -19,9 +18,19 @@ namespace odb
{
}
+ inline void vector_impl::
+ swap (vector_impl& x)
+ {
+ std::swap (state_, x.state_);
+ std::swap (size_, x.size_);
+ std::swap (tail_, x.tail_);
+ std::swap (capacity_, x.capacity_);
+ std::swap (data_, x.data_);
+ }
+
#ifdef ODB_CXX11
inline vector_impl::
- vector_impl (vector_impl&& x)
+ vector_impl (vector_impl&& x) noexcept
: state_ (state_not_tracking),
size_ (0), tail_ (0), capacity_ (0), data_ (0)
{
@@ -37,16 +46,6 @@ namespace odb
}
inline void vector_impl::
- swap (vector_impl& x)
- {
- std::swap (state_, x.state_);
- std::swap (size_, x.size_);
- std::swap (tail_, x.tail_);
- std::swap (capacity_, x.capacity_);
- std::swap (data_, x.data_);
- }
-
- inline void vector_impl::
reserve (std::size_t n)
{
if (n > capacity_)
@@ -147,6 +146,17 @@ namespace odb
inline vector_base::
vector_base (): tran_ (0) {}
+ inline void vector_base::
+ _arm (transaction& t) const
+ {
+ tran_ = &t;
+ t.callback_register (&rollback,
+ const_cast<vector_base*> (this),
+ transaction::event_rollback,
+ 0,
+ &tran_);
+ }
+
inline vector_base::
vector_base (const vector_base& x)
: impl_ (x.impl_), tran_ (0)
@@ -168,12 +178,19 @@ namespace odb
#ifdef ODB_CXX11
inline vector_base::
- vector_base (vector_base&& x)
+ vector_base (vector_base&& x) noexcept
: impl_ (std::move (x.impl_)), tran_ (0)
{
if (x.tran_ != 0)
{
x.tran_->callback_unregister (&x);
+
+ // Note that _arm() can potentially throw bad_alloc while adding a new
+ // callback to the callbacks list of the transaction object. However, we
+ // assume that this will not happen since the new callback should be
+ // saved into an existing slot, freed by the above callback_unregister()
+ // call.
+ //
_arm (*x.tran_);
}
}
@@ -190,15 +207,4 @@ namespace odb
{
return impl_.tracking ();
}
-
- inline void vector_base::
- _arm (transaction& t) const
- {
- tran_ = &t;
- t.callback_register (&rollback,
- const_cast<vector_base*> (this),
- transaction::event_rollback,
- 0,
- &tran_);
- }
}
diff --git a/odb/vector-traits.hxx b/odb/vector-traits.hxx
index 59d0095..5e6cf14 100644
--- a/odb/vector-traits.hxx
+++ b/odb/vector-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/vector-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_VECTOR_TRAITS_HXX
diff --git a/odb/vector-traits.txx b/odb/vector-traits.txx
index 9568212..6c33876 100644
--- a/odb/vector-traits.txx
+++ b/odb/vector-traits.txx
@@ -1,5 +1,4 @@
// file : odb/vector-traits.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/vector.hxx b/odb/vector.hxx
index f388ad6..3fe7d8a 100644
--- a/odb/vector.hxx
+++ b/odb/vector.hxx
@@ -1,5 +1,4 @@
// file : odb/vector.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_VECTOR_HXX
@@ -92,10 +91,16 @@ namespace odb
{return v_.get_allocator ();}
#ifdef ODB_CXX11
- vector(vector&& x): vector_base (std::move (x)), v_ (std::move (x.v_)) {}
+ vector(vector&& x) noexcept
+ : vector_base (std::move (x)), v_ (std::move (x.v_)) {}
+
vector(const vector& x, const A& a): vector_base (x), v_ (x.v_, a) {}
vector(vector&& x, const A& a)
: vector_base (std::move (x)), v_ (std::move (x.v_), a) {}
+
+ // Note: noexcept is not specified since it can throw while reallocating
+ // impl_.
+ //
vector& operator=(vector&&);
#ifdef ODB_CXX11_INITIALIZER_LIST
vector(std::initializer_list<T> il, const A& a = A()): v_ (il, a) {}
diff --git a/odb/vector.ixx b/odb/vector.ixx
index ebb45d6..230b187 100644
--- a/odb/vector.ixx
+++ b/odb/vector.ixx
@@ -1,5 +1,4 @@
// file : odb/vector.ixx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/version-build2-stub.hxx b/odb/version-build2-stub.hxx
index 8008361..f4c7937 100644
--- a/odb/version-build2-stub.hxx
+++ b/odb/version-build2-stub.hxx
@@ -1,5 +1,4 @@
// file : odb/version-build2-stub.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#include <odb/version.hxx>
diff --git a/odb/version-build2.hxx.in b/odb/version-build2.hxx.in
index 57b37c3..3672585 100644
--- a/odb/version-build2.hxx.in
+++ b/odb/version-build2.hxx.in
@@ -1,12 +1,11 @@
// file : odb/version-build2.hxx.in
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef LIBODB_VERSION // Note: using the version macro itself.
// For the ODB compiler (temporary).
//
-#define ODB_VERSION 20468
+#define ODB_VERSION 20476
// The numeric version format is AAAAABBBBBCCCCCDDDE where:
//
diff --git a/odb/version.hxx b/odb/version.hxx
index 86618e0..4961e1a 100644
--- a/odb/version.hxx
+++ b/odb/version.hxx
@@ -1,5 +1,4 @@
// file : odb/version.hxx
-// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifdef LIBODB_BUILD2
@@ -30,13 +29,13 @@
// ODB interface version: minor, major, and alpha/beta versions.
//
-#define ODB_VERSION 20468
-#define ODB_VERSION_STR "2.5-b.18"
+#define ODB_VERSION 20476
+#define ODB_VERSION_STR "2.5-b.26"
// libodb version: interface version plus the bugfix version.
//
-#define LIBODB_VERSION 2049968
-#define LIBODB_VERSION_STR "2.5.0-b.18"
+#define LIBODB_VERSION 2049976
+#define LIBODB_VERSION_STR "2.5.0-b.26"
#include <odb/post.hxx>
diff --git a/odb/view-image.hxx b/odb/view-image.hxx
index 162e3c3..51f7cc0 100644
--- a/odb/view-image.hxx
+++ b/odb/view-image.hxx
@@ -1,5 +1,4 @@
// file : odb/view-image.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_VIEW_IMAGE_HXX
diff --git a/odb/view-result.hxx b/odb/view-result.hxx
index d00317d..601c3b4 100644
--- a/odb/view-result.hxx
+++ b/odb/view-result.hxx
@@ -1,5 +1,4 @@
// file : odb/view-result.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_VIEW_RESULT_HXX
diff --git a/odb/view-result.txx b/odb/view-result.txx
index ba997f5..5c62253 100644
--- a/odb/view-result.txx
+++ b/odb/view-result.txx
@@ -1,5 +1,4 @@
// file : odb/view-result.txx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
namespace odb
diff --git a/odb/wrapper-traits.hxx b/odb/wrapper-traits.hxx
index 20eea69..d31425d 100644
--- a/odb/wrapper-traits.hxx
+++ b/odb/wrapper-traits.hxx
@@ -1,5 +1,4 @@
// file : odb/wrapper-traits.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_WRAPPER_TRAITS_HXX
diff --git a/tests/basics/buildfile b/tests/basics/buildfile
index dcfb292..d568216 100644
--- a/tests/basics/buildfile
+++ b/tests/basics/buildfile
@@ -1,5 +1,4 @@
# file : tests/basics/buildfile
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
import libs = libodb%lib{odb}
diff --git a/tests/basics/driver.cxx b/tests/basics/driver.cxx
index a44e8e8..57cec1c 100644
--- a/tests/basics/driver.cxx
+++ b/tests/basics/driver.cxx
@@ -1,5 +1,4 @@
// file : tests/basics/driver.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
// Basic test to make sure the library is usable. Functionality testing
diff --git a/tests/build/bootstrap.build b/tests/build/bootstrap.build
index c5c067b..6ee38db 100644
--- a/tests/build/bootstrap.build
+++ b/tests/build/bootstrap.build
@@ -1,5 +1,4 @@
# file : tests/build/bootstrap.build
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
project = # Unnamed subproject.
diff --git a/tests/build/root.build b/tests/build/root.build
index da6ff40..6c5a90b 100644
--- a/tests/build/root.build
+++ b/tests/build/root.build
@@ -1,5 +1,4 @@
# file : tests/build/root.build
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
cxx.std = latest
diff --git a/tests/buildfile b/tests/buildfile
index 3614001..57588a4 100644
--- a/tests/buildfile
+++ b/tests/buildfile
@@ -1,5 +1,4 @@
# file : tests/buildfile
-# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
./: {*/ -build/}
diff --git a/version b/version
deleted file mode 100644
index a9b5191..0000000
--- a/version
+++ /dev/null
@@ -1 +0,0 @@
-2.5.0-b.18
diff --git a/version.txt b/version.txt
new file mode 100644
index 0000000..6bc2f39
--- /dev/null
+++ b/version.txt
@@ -0,0 +1 @@
+2.5.0-b.26