activerecord-oracle_enhanced-adapter 1.6.9 → 1.7.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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;