From a2a2c4a9ade9e50922e509e2e1353b3147fbfad8 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov <ivantashkinov@gmail.com> Date: Mon, 5 Nov 2012 16:31:30 +0600 Subject: [PATCH] Critical fix: new lines treatment in fields' values. --- .../connection_adapters/monetdb_adapter_config.rb | 8 +++++++- lib/MonetDBData.rb | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/adapter/lib/active_record/connection_adapters/monetdb_adapter_config.rb b/adapter/lib/active_record/connection_adapters/monetdb_adapter_config.rb index e866ff9..822b738 100644 --- a/adapter/lib/active_record/connection_adapters/monetdb_adapter_config.rb +++ b/adapter/lib/active_record/connection_adapters/monetdb_adapter_config.rb @@ -4,4 +4,10 @@ MDB_SYS_SCHEMA = "sys." # explicitly specifying system schema #MDB_NON_SYSTEM_TABLES_ONLY = "" # initial value [before fix] - I.T. MDB_NON_SYSTEM_TABLES_ONLY = "and system = false" # ignoring columns from system tables (in order not to mix in 'default_schema' and other fields from sys.users to OLDS users table) -MDB_LOG_USER_QUERIES = false \ No newline at end of file +MDB_LOG_USER_QUERIES = false + +# NOTE: critical fix: lib/MonetDBData.rb, line 280: +# fields << f.gsub(/\\/, '').gsub(/^"/,'').gsub(/"$/,'').gsub(/\"/, '') +# should be +# fields << f.gsub(/\\n/, "\n").gsub(/\\/, '').gsub(/^"/,'').gsub(/"$/,'').gsub(/\"/, '') +# in order to treat line breaks correctly \ No newline at end of file diff --git a/lib/MonetDBData.rb b/lib/MonetDBData.rb index 93c4917..2ad7b4e 100644 --- a/lib/MonetDBData.rb +++ b/lib/MonetDBData.rb @@ -277,7 +277,8 @@ class MonetDBData tuple = tuple.to_s.gsub(/^\[\s+/,'') tuple.split(/,\t/).each do |f| - fields << f.gsub(/\\/, '').gsub(/^"/,'').gsub(/"$/,'').gsub(/\"/, '') + #fields << f.gsub(/\\/, '').gsub(/^"/,'').gsub(/"$/,'').gsub(/\"/, '') + fields << f.gsub(/\\n/, "\n").gsub(/\\/, '').gsub(/^"/,'').gsub(/"$/,'').gsub(/\"/, '') end return fields.freeze -- GitLab