View Issue Details

IDProjectCategoryView StatusLast Update
0000826SymmetricDSImprovementpublic2014-08-28 01:03
ReporterAhmad Assigned Tochenson  
Prioritynormal 
Status resolvedResolutionfixed 
Product Version3.5.15 
Target Version3.5.16 
Summary0000826: Support oracle's raw datatype as a PK
Descriptionraw datatype in oracle is not supported as a PK.

Oracle accepts reading/writing raw data type as hex string, giving that, raw fields can be mapped to varchar in org.jumpmind.db.platform.oracle.OracleDdlReader#mapUnknownJdbcTypeForColumn() method and the received data (Base64 String) needs to be converted to hex String.

apache commons codec has base64-to-binary and binary-to-hex conversion utilities that can be used

see http://sourceforge.net/projects/symmetricds/forums/forum/739236/topic/5596833
TagsNo tags attached.

Activities

andresff

2013-08-05 04:51

reporter   ~0000371

Last edited: 2013-08-05 04:53

View 2 revisions

I think the problem happens on Update/Delete method inside DataBaseWriter.java.

Inside those methods, it tries to delete the columns (from the where clause) that is of "BinaryType" but in this case the BinaryType is the PK Column

Is the below code really necessary? Am I wrong if I say if it's a PK "I can't remove it"

if (!platform.getDatabaseInfo().isBlobsWorkInWhereClause()
                            || data.isNoBinaryOldData()) {
                        Iterator<Column> it = lookupKeys.iterator();
                        while (it.hasNext()) {
                            Column col = it.next();
                            if (col.isOfBinaryType())) {
                                it.remove();
                            }
                        }
                    }

Related Changesets

SymmetricDS: master e450023e

2014-02-04 09:48:43

chenson

Details Diff
Fixed 0000826: Support oracle's raw datatype as a PK Affected Issues
0000826
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/DatabaseInfo.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/IDatabasePlatform.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/db2/Db2DdlBuilder.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/derby/DerbyDdlBuilder.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/mssql/MsSqlDdlBuilder.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/oracle/OracleDdlBuilder.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriter.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/derby/DerbyDatabasePlatform.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mssql/MsSqlDatabasePlatform.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java Diff File

Issue History

Date Modified Username Field Change
2012-09-13 15:36 Ahmad New Issue
2013-08-05 04:51 andresff Note Added: 0000371
2013-08-05 04:53 andresff Note Edited: 0000371 View Revisions
2014-02-04 14:26 chenson Assigned To => chenson
2014-02-04 14:26 chenson Status new => assigned
2014-02-04 14:26 chenson Product Version => 3.5.15
2014-02-04 14:26 chenson Target Version => 3.5.16
2014-02-04 15:00 Changeset attached => SymmetricDS trunk r7914
2014-02-04 15:00 guest Status assigned => resolved
2014-02-04 15:00 guest Resolution open => fixed
2014-08-28 01:03 chenson Status resolved => closed
2015-07-31 01:49 chenson Changeset attached => SymmetricDS master e450023e
2015-07-31 01:50 chenson Status closed => resolved