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 a9e7a16..48ae1f2 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 58a2292..332e25b 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 75e7149..731afba 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 ();