activerecord-oracle_enhanced-adapter 1.6.9 → 1.7.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +10 -11
  3. data/History.md +126 -14
  4. data/README.md +9 -6
  5. data/RUNNING_TESTS.md +1 -1
  6. data/Rakefile +1 -16
  7. data/VERSION +1 -1
  8. data/activerecord-oracle_enhanced-adapter.gemspec +15 -52
  9. data/lib/active_record/connection_adapters/oracle_enhanced/column.rb +8 -22
  10. data/lib/active_record/connection_adapters/oracle_enhanced/column_dumper.rb +53 -45
  11. data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +6 -1
  12. data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +23 -62
  13. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +46 -56
  14. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +35 -0
  15. data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +34 -21
  16. data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +36 -0
  17. data/lib/active_record/connection_adapters/oracle_enhanced/procedures.rb +1 -1
  18. data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +174 -0
  19. data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +17 -8
  20. data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +17 -11
  21. data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +160 -178
  22. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +42 -94
  23. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements_ext.rb +50 -54
  24. data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +15 -11
  25. data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +197 -301
  26. data/lib/active_record/oracle_enhanced/type/integer.rb +3 -2
  27. data/lib/active_record/oracle_enhanced/type/national_character_string.rb +25 -0
  28. data/lib/active_record/oracle_enhanced/type/raw.rb +14 -2
  29. data/lib/active_record/oracle_enhanced/type/string.rb +28 -0
  30. data/lib/active_record/oracle_enhanced/type/text.rb +32 -0
  31. data/lib/activerecord-oracle_enhanced-adapter.rb +12 -17
  32. data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +113 -135
  33. data/spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb +51 -59
  34. data/spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb +40 -41
  35. data/spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb +6 -6
  36. data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +281 -233
  37. data/spec/active_record/connection_adapters/oracle_enhanced_database_tasks_spec.rb +7 -7
  38. data/spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb +10 -10
  39. data/spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb +22 -22
  40. data/spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb +2 -2
  41. data/spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb +36 -37
  42. data/spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb +86 -46
  43. data/spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb +194 -294
  44. data/spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb +53 -39
  45. data/spec/spec_helper.rb +0 -6
  46. metadata +42 -143
  47. data/.travis.yml +0 -39
  48. data/.travis/oracle/download.sh +0 -14
  49. data/.travis/oracle/install.sh +0 -31
  50. data/.travis/setup_accounts.sh +0 -9
  51. data/lib/active_record/connection_adapters/oracle_enhanced/dirty.rb +0 -40
  52. data/lib/active_record/oracle_enhanced/type/timestamp.rb +0 -11
  53. data/spec/spec_config.yaml.template +0 -11
  54. data/spec/support/alter_system_user_password.sql +0 -2
  55. data/spec/support/create_oracle_enhanced_users.sql +0 -31
data/.travis.yml DELETED
@@ -1,39 +0,0 @@
1
- sudo: required
2
-
3
- env:
4
- global:
5
- - ORACLE_COOKIE=sqldev
6
- - ORACLE_FILE=oracle11g/xe/oracle-xe-11.2.0-1.0.x86_64.rpm.zip
7
- - ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
8
- - TNS_ADMIN=$ORACLE_HOME/network/admin
9
- - NLS_LANG=AMERICAN_AMERICA.AL32UTF8
10
- - ORACLE_BASE=/u01/app/oracle
11
- - LD_LIBRARY_PATH=$ORACLE_HOME/lib
12
- - PATH=$PATH:$ORACLE_HOME/jdbc/lib
13
- - DATABASE_VERSION=11.2.0.2
14
- - ORACLE_SID=XE
15
- - DATABASE_NAME=XE
16
- - ORA_SDTZ='Europe/Riga' #Needed as a client parameter
17
- - TZ='Europe/Riga' #Needed as a DB Server parameter
18
- - "JRUBY_OPTS='--debug --dev -J-Xmx1024M'"
19
-
20
- before_install:
21
- - chmod +x .travis/oracle/download.sh
22
- - chmod +x .travis/oracle/install.sh
23
- - chmod +x .travis/setup_accounts.sh
24
-
25
- install:
26
- - .travis/oracle/download.sh
27
- - .travis/oracle/install.sh
28
- - .travis/setup_accounts.sh
29
- - bundle install
30
-
31
- language: ruby
32
- rvm:
33
- - 2.2.6
34
- - 2.3.3
35
- - 2.4.0
36
- - jruby-9.1.8.0
37
-
38
- notifications:
39
- email: false
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- cd "$(dirname "$(readlink -f "$0")")"
4
-
5
- deb_file=oracle-xe_11.2.0-1.0_amd64.deb
6
-
7
- git clone https://github.com/wnameless/docker-oracle-xe-11g.git
8
-
9
- cd docker-oracle-xe-11g/assets &&
10
- cat "${deb_file}aa" "${deb_file}ab" "${deb_file}ac" > "${deb_file}"
11
-
12
- pwd
13
-
14
- ls -lAh "${deb_file}"
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$ORACLE_FILE" ] || { echo "Missing ORACLE_FILE environment variable!"; exit 1; }
4
- [ -n "$ORACLE_HOME" ] || { echo "Missing ORACLE_HOME environment variable!"; exit 1; }
5
-
6
- cd "$(dirname "$(readlink -f "$0")")"
7
-
8
- ORACLE_DEB=docker-oracle-xe-11g/assets/oracle-xe_11.2.0-1.0_amd64.deb
9
-
10
- sudo apt-get -qq update
11
- sudo apt-get --no-install-recommends -qq install bc libaio1
12
-
13
- df -B1 /dev/shm | awk 'END { if ($1 != "shmfs" && $1 != "tmpfs" || $2 < 2147483648) exit 1 }' ||
14
- ( sudo rm -r /dev/shm && sudo mkdir /dev/shm && sudo mount -t tmpfs shmfs -o size=2G /dev/shm )
15
-
16
- test -f /sbin/chkconfig ||
17
- ( echo '#!/bin/sh' | sudo tee /sbin/chkconfig > /dev/null && sudo chmod u+x /sbin/chkconfig )
18
-
19
- test -d /var/lock/subsys || sudo mkdir /var/lock/subsys
20
-
21
- sudo dpkg -i "${ORACLE_DEB}"
22
-
23
- echo 'OS_AUTHENT_PREFIX=""' | sudo tee -a "$ORACLE_HOME/config/scripts/init.ora" > /dev/null
24
- sudo usermod -aG dba $USER
25
-
26
- ( echo ; echo ; echo travis ; echo travis ; echo n ) | sudo AWK='/usr/bin/awk' /etc/init.d/oracle-xe configure
27
-
28
- "$ORACLE_HOME/bin/sqlplus" -L -S / AS SYSDBA <<SQL
29
- CREATE USER $USER IDENTIFIED EXTERNALLY;
30
- GRANT CONNECT, RESOURCE TO $USER;
31
- SQL
@@ -1,9 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -ev
4
-
5
- "$ORACLE_HOME/bin/sqlplus" -L -S / AS SYSDBA <<SQL
6
- @@spec/support/alter_system_user_password.sql
7
- @@spec/support/create_oracle_enhanced_users.sql
8
- exit
9
- SQL
@@ -1,40 +0,0 @@
1
- module ActiveRecord #:nodoc:
2
- module ConnectionAdapters #:nodoc:
3
- module OracleEnhancedDirty #:nodoc:
4
-
5
- module InstanceMethods #:nodoc:
6
- private
7
-
8
- def _field_changed?(attr, old_value)
9
- new_value = read_attribute(attr)
10
- raw_value = read_attribute_before_type_cast(attr)
11
-
12
- if self.class.columns_hash.include?(attr.to_s)
13
- column = column_for_attribute(attr)
14
-
15
- # Oracle stores empty string '' as NULL
16
- # therefore need to convert empty string value to nil if old value is nil
17
- if column.type == :string && column.null && old_value.nil?
18
- new_value = nil if new_value == ''
19
- end
20
- column.changed?(old_value, new_value, raw_value)
21
- else
22
- new_value != old_value
23
- end
24
- end
25
-
26
- def non_zero?(value)
27
- value !~ /\A0+(\.0+)?\z/
28
- end
29
-
30
- end
31
-
32
- end
33
- end
34
- end
35
-
36
- if ActiveRecord::Base.method_defined?(:changed?)
37
- ActiveRecord::Base.class_eval do
38
- include ActiveRecord::ConnectionAdapters::OracleEnhancedDirty::InstanceMethods
39
- end
40
- end
@@ -1,11 +0,0 @@
1
- module ActiveRecord
2
- module OracleEnhanced
3
- module Type
4
- class Timestamp < ActiveRecord::Type::Value # :nodoc:
5
- def type
6
- :timestamp
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # copy this file to spec/config.yaml and set appropriate values
2
- # you can also use environment variables, see spec_helper.rb
3
- database:
4
- name: 'orcl'
5
- host: '127.0.0.1'
6
- port: 1521
7
- user: 'oracle_enhanced'
8
- password: 'oracle_enhanced'
9
- sys_password: 'admin'
10
- non_default_tablespace: 'SYSTEM'
11
- timezone: 'Europe/Riga'
@@ -1,2 +0,0 @@
1
- alter user sys identified by admin;
2
- alter user system identified by admin;
@@ -1,31 +0,0 @@
1
- alter database default tablespace USERS;
2
-
3
- CREATE USER oracle_enhanced IDENTIFIED BY oracle_enhanced;
4
-
5
- GRANT unlimited tablespace, create session, create table, create sequence,
6
- create procedure, create trigger, create view, create materialized view,
7
- create database link, create synonym, create type, ctxapp TO oracle_enhanced;
8
-
9
- CREATE USER oracle_enhanced_schema IDENTIFIED BY oracle_enhanced_schema;
10
-
11
- GRANT unlimited tablespace, create session, create table, create sequence,
12
- create procedure, create trigger, create view, create materialized view,
13
- create database link, create synonym, create type, ctxapp TO oracle_enhanced_schema;
14
-
15
- CREATE USER arunit IDENTIFIED BY arunit;
16
-
17
- GRANT unlimited tablespace, create session, create table, create sequence,
18
- create procedure, create trigger, create view, create materialized view,
19
- create database link, create synonym, create type, ctxapp TO arunit;
20
-
21
- CREATE USER arunit2 IDENTIFIED BY arunit2;
22
-
23
- GRANT unlimited tablespace, create session, create table, create sequence,
24
- create procedure, create trigger, create view, create materialized view,
25
- create database link, create synonym, create type, ctxapp TO arunit2;
26
-
27
- CREATE USER ruby IDENTIFIED BY oci8;
28
- GRANT connect, resource, create view,create synonym TO ruby;
29
- GRANT EXECUTE ON dbms_lock TO ruby;
30
- GRANT CREATE VIEW TO ruby;
31
- GRANT unlimited tablespace to ruby;