aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--odb/relational/mysql/source.cxx6
-rw-r--r--odb/relational/pgsql/source.cxx6
-rw-r--r--odb/relational/sqlite/source.cxx6
3 files changed, 18 insertions, 0 deletions
diff --git a/odb/relational/mysql/source.cxx b/odb/relational/mysql/source.cxx
index 15a4fcf..494abf5 100644
--- a/odb/relational/mysql/source.cxx
+++ b/odb/relational/mysql/source.cxx
@@ -316,6 +316,12 @@ namespace relational
if (container (mi))
return false;
+ // Ignore polymorphic id references; they are not returned by
+ // the select statement.
+ //
+ if (mi.ptr != 0 && mi.m.count ("polymorphic-ref"))
+ return false;
+
ostringstream ostr;
ostr << "t[" << index_ << "UL]";
e = ostr.str ();
diff --git a/odb/relational/pgsql/source.cxx b/odb/relational/pgsql/source.cxx
index 6a3d761..23600d0 100644
--- a/odb/relational/pgsql/source.cxx
+++ b/odb/relational/pgsql/source.cxx
@@ -265,6 +265,12 @@ namespace relational
if (container (mi))
return false;
+ // Ignore polymorphic id references; they are not returned by
+ // the select statement.
+ //
+ if (mi.ptr != 0 && mi.m.count ("polymorphic-ref"))
+ return false;
+
ostringstream ostr;
ostr << "t[" << index_ << "UL]";
e = ostr.str ();
diff --git a/odb/relational/sqlite/source.cxx b/odb/relational/sqlite/source.cxx
index 7d29c1e..03467cc 100644
--- a/odb/relational/sqlite/source.cxx
+++ b/odb/relational/sqlite/source.cxx
@@ -93,6 +93,12 @@ namespace relational
if (container (mi))
return false;
+ // Ignore polymorphic id references; they are not returned by
+ // the select statement.
+ //
+ if (mi.ptr != 0 && mi.m.count ("polymorphic-ref"))
+ return false;
+
ostringstream ostr;
ostr << "t[" << index_ << "UL]";
e = ostr.str ();