summaryrefslogtreecommitdiff
path: root/odb/relational/oracle/context.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/oracle/context.cxx')
-rw-r--r--odb/relational/oracle/context.cxx16
1 files changed, 12 insertions, 4 deletions
diff --git a/odb/relational/oracle/context.cxx b/odb/relational/oracle/context.cxx
index 0f9bae1..d477a19 100644
--- a/odb/relational/oracle/context.cxx
+++ b/odb/relational/oracle/context.cxx
@@ -400,11 +400,13 @@ namespace relational
// However, this may change in future versions.
//
r.type = sql_type::VARCHAR2;
+ r.byte_semantics = true;
s = parse_prec;
}
else if (id == "NVARCHAR2")
{
r.type = sql_type::NVARCHAR2;
+ r.byte_semantics = false;
s = parse_prec;
}
else if (id == "VARYING")
@@ -412,11 +414,17 @@ namespace relational
// VARYING always appears at the end of an identifier.
//
if (prefix == "CHAR" || prefix == "CHARACTER")
+ {
r.type = sql_type::VARCHAR2;
+ r.byte_semantics = true;
+ }
else if (prefix == "NCHAR" ||
prefix == "NATIONAL CHAR" ||
prefix == "NATIONAL CHARACTER")
+ {
r.type = sql_type::NVARCHAR2;
+ r.byte_semantics = false;
+ }
s = parse_prec;
}
@@ -473,18 +481,18 @@ namespace relational
if (prefix == "CHAR" || prefix == "CHARACTER")
{
r.type = sql_type::CHAR;
+ r.byte_semantics = true;
r.prec = true;
r.prec_value = 1;
- r.byte_semantics = true;
}
else if (prefix == "NCHAR" ||
prefix == "NATIONAL CHAR" ||
prefix == "NATIONAL CHARACTER")
{
r.type = sql_type::NCHAR;
+ r.byte_semantics = false;
r.prec = true;
r.prec_value = 1;
- r.byte_semantics = false;
}
else if (prefix == "TIMESTAMP")
{
@@ -643,18 +651,18 @@ namespace relational
if (prefix == "CHAR" || prefix == "CHARACTER")
{
r.type = sql_type::CHAR;
+ r.byte_semantics = true;
r.prec = true;
r.prec_value = 1;
- r.byte_semantics = true;
}
else if (prefix == "NCHAR" ||
prefix == "NATIONAL CHAR" ||
prefix == "NATIONAL CHARACTER")
{
r.type = sql_type::NCHAR;
+ r.byte_semantics = false;
r.prec = true;
r.prec_value = 1;
- r.byte_semantics = false;
}
else if (prefix == "TIMESTAMP")
{