1. 25 Feb, 2009 6 commits
    • vasil's avatar
      branches/zip: · 370c3036
      vasil authored
      White-space cleanup in the ChangeLog
      370c3036
    • marko's avatar
      branches/zip: Correct the initialization of the memory subsystem once · 93ec81bb
      marko authored
      again, to finally put Issue #181 to rest.
      
      Revert some parts of r4274.  It is best not to call ut_malloc() before
      srv_general_init().
      
      mem_init(): Do not call ut_mem_init().
      
      srv_general_init(): Initialize the memory subsystem in two phases:
      first ut_mem_init(), then mem_init().  This is because os_sync_init()
      and sync_init() depend on ut_mem_init() and mem_init() depends on
      os_sync_init() or sync_init().
      
      srv_parse_data_file_paths_and_sizes(),
      srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
      to the global variables directly.  Allocate memory with malloc()
      instead of ut_malloc(), because these functions will be called before
      srv_general_init().
      
      srv_free_paths_and_sizes(): New function, for cleaning up after
      srv_parse_data_file_paths_and_sizes() and
      srv_parse_log_group_home_dirs().
      
      rb://92 approved by Sunny Bains
      93ec81bb
    • vasil's avatar
      branches/zip: · 09f6d57a
      vasil authored
      Fix Bug synopsis and remove explanation
      09f6d57a
    • vasil's avatar
      branches/zip: · f1e2b009
      vasil authored
      Make ChangeLog entries for bugs in bugs.mysql.com in the form:
      Fix Bug#12345 bug title
      (for bugs after 1.0.2 was released and the ChangeLog published)
      
      There is no need to bloat the ChangeLog with information that is available
      via bugs.mysql.com.
      
      Discussed with:	Marko
      f1e2b009
    • vasil's avatar
      branches/zip: · bb05c979
      vasil authored
      Add ChangeLog entry for the fix in r4288.
      bb05c979
    • vasil's avatar
      branches/zip: Merge revisions 4261:4287 from branches/5.1: · 63107fbd
      vasil authored
        ------------------------------------------------------------------------
        r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
        changes to the autoinc handling.
        
        1. To fix the immediate problem from the bug report, we must ensure that the
           value written to the table is always less than the max value stored in
           dict_table_t.
        
        2. The second related change is that according to MySQL documentation when
           the offset is greater than the increment, we should ignore the offset.
        
        ------------------------------------------------------------------------
      63107fbd
  2. 24 Feb, 2009 4 commits
  3. 23 Feb, 2009 5 commits
  4. 20 Feb, 2009 6 commits
    • vasil's avatar
      branches/zip: · eae4c323
      vasil authored
      Add a sentence at the top of COPYING.Google to clarify that this license
      does not apply to the whole InnoDB.
      
      Suggested by:	Ken
      eae4c323
    • marko's avatar
      branches/zip: Make innodb_use_sys_malloc=ON the default. · e31baa84
      marko authored
      Replace srv_use_sys_malloc with UNIV_LIKELY(srv_use_sys_malloc)
      to improve branch prediction in the default case.
      
      Approved by Ken over the IM.
      e31baa84
    • vasil's avatar
      branches/zip: · 8850a348
      vasil authored
      Add a ChangeLog entry for a change in r4262.
      8850a348
    • vasil's avatar
      branches/zip: · b4399fa8
      vasil authored
      Merge revisions 4035:4261 from branches/5.1:
      
        ------------------------------------------------------------------------
        r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
        is only defined for integer columns. This caused an assertion failure when
        we checked for the maximum value of a column type. We now calculate the
        max value for floating-point autoinc columns too.
        
        Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
        rb://84 and Mantis issue://162
        
        ------------------------------------------------------------------------
        r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: Add the ULL suffix otherwise there is an overflow.
        
        ------------------------------------------------------------------------
        r4128 | vasil | 2009-02-08 21:36:45 +0200 (Sun, 08 Feb 2009) | 18 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1:
        
        Merge a change from MySQL:
        
          ------------------------------------------------------------
          revno: 2709.20.31
          committer: Timothy Smith <timothy.smith@sun.com>
          branch nick: 51
          timestamp: Fri 2008-12-19 01:28:51 +0100
          message:
            Disable part of innodb-autoinc.test, because the MySQL server asserts when
            compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
            increment > 1".  This change should be reverted when that bug is fixed (and a
            a few other minor changes to the test as described in comments).
          modified:
            mysql-test/r/innodb-autoinc.result
            mysql-test/t/innodb-autoinc.test
        
        ------------------------------------------------------------------------
        r4129 | vasil | 2009-02-08 21:54:25 +0200 (Sun, 08 Feb 2009) | 310 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1:
        
        Merge a change from MySQL:
        
        [looks like the changes to innodb-autoinc.test were made as part of
        the following huge merge, but we are merging only changes to that file]
        
          ------------------------------------------------------------
          revno: 2546.47.1
          committer: Luis Soares <luis.soares@sun.com>
          branch nick: 5.1-rpl
          timestamp: Fri 2009-01-23 13:22:05 +0100
          message:
            merge: 5.1 -> 5.1-rpl
            conflicts:
              Text conflict in client/mysqltest.cc
              Text conflict in mysql-test/include/wait_until_connected_again.inc
              Text conflict in mysql-test/lib/mtr_report.pm
              Text conflict in mysql-test/mysql-test-run.pl
              Text conflict in mysql-test/r/events_bugs.result
              Text conflict in mysql-test/r/log_state.result
              Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
              Text conflict in mysql-test/r/mysqlcheck.result
              Text conflict in mysql-test/r/query_cache.result
              Text conflict in mysql-test/r/status.result
              Text conflict in mysql-test/suite/binlog/r/binlog_index.result
              Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
              Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
              Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
              Text conflict in mysql-test/t/disabled.def
              Text conflict in mysql-test/t/events_bugs.test
              Text conflict in mysql-test/t/log_state.test
              Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
              Text conflict in mysql-test/t/mysqlcheck.test
              Text conflict in mysql-test/t/query_cache.test
              Text conflict in mysql-test/t/rpl_init_slave_func.test
              Text conflict in mysql-test/t/status.test
          removed:
            mysql-test/suite/parts/r/partition_bit_ndb.result
            mysql-test/suite/parts/t/partition_bit_ndb.test
            mysql-test/suite/parts/t/partition_sessions.test
            mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
            mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
            mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
            mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
            mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
            mysql-test/t/log_bin_trust_function_creators_func-master.opt
            mysql-test/t/rpl_init_slave_func-slave.opt
          added:
            mysql-test/include/check_events_off.inc
            mysql-test/include/cleanup_fake_relay_log.inc
            mysql-test/include/have_simple_parser.inc
            mysql-test/include/no_running_event_scheduler.inc
            mysql-test/include/no_running_events.inc
            mysql-test/include/running_event_scheduler.inc
            mysql-test/include/setup_fake_relay_log.inc
            mysql-test/include/wait_condition_sp.inc
            mysql-test/r/fulltext_plugin.result
            mysql-test/r/have_simple_parser.require
            mysql-test/r/innodb_bug38231.result
            mysql-test/r/innodb_bug39438.result
            mysql-test/r/innodb_mysql_rbk.result
            mysql-test/r/partition_innodb_semi_consistent.result
            mysql-test/r/query_cache_28249.result
            mysql-test/r/status2.result
            mysql-test/std_data/bug40482-bin.000001
            mysql-test/suite/binlog/r/binlog_innodb_row.result
            mysql-test/suite/binlog/t/binlog_innodb_row.test
            mysql-test/suite/rpl/r/rpl_binlog_corruption.result
            mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
            mysql-test/suite/rpl/t/rpl_binlog_corruption.test
            mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
            mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
            mysql-test/t/fulltext_plugin-master.opt
            mysql-test/t/fulltext_plugin.test
            mysql-test/t/innodb_bug38231.test
            mysql-test/t/innodb_bug39438-master.opt
            mysql-test/t/innodb_bug39438.test
            mysql-test/t/innodb_mysql_rbk-master.opt
            mysql-test/t/innodb_mysql_rbk.test
            mysql-test/t/partition_innodb_semi_consistent-master.opt
            mysql-test/t/partition_innodb_semi_consistent.test
            mysql-test/t/query_cache_28249.test
            mysql-test/t/status2.test
          renamed:
            mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
            mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
          modified:
            .bzr-mysql/default.conf
            CMakeLists.txt
            client/mysql.cc
            client/mysql_upgrade.c
            client/mysqlcheck.c
            client/mysqltest.cc
            configure.in
            extra/resolve_stack_dump.c
            extra/yassl/include/openssl/ssl.h
            include/config-win.h
            include/m_ctype.h
            include/my_global.h
            mysql-test/extra/binlog_tests/database.test
            mysql-test/extra/rpl_tests/rpl_auto_increment.test
            mysql-test/include/commit.inc
            mysql-test/include/have_32bit.inc
            mysql-test/include/have_64bit.inc
            mysql-test/include/index_merge1.inc
            mysql-test/include/linux_sys_vars.inc
            mysql-test/include/windows_sys_vars.inc
            mysql-test/lib/mtr_report.pm
            mysql-test/mysql-test-run.pl
            mysql-test/r/alter_table.result
            mysql-test/r/commit_1innodb.result
            mysql-test/r/create.result
            mysql-test/r/csv.result
            mysql-test/r/ctype_ucs.result
            mysql-test/r/date_formats.result
            mysql-test/r/events_bugs.result
            mysql-test/r/events_scheduling.result
            mysql-test/r/fulltext.result
            mysql-test/r/func_if.result
            mysql-test/r/func_in.result
            mysql-test/r/func_str.result
            mysql-test/r/func_time.result
            mysql-test/r/grant.result
            mysql-test/r/index_merge_myisam.result
            mysql-test/r/information_schema.result
            mysql-test/r/innodb-autoinc.result
            mysql-test/r/innodb.result
            mysql-test/r/innodb_mysql.result
            mysql-test/r/log_bin_trust_function_creators_func.result
            mysql-test/r/log_state.result
            mysql-test/r/myisampack.result
            mysql-test/r/mysql.result
            mysql-test/r/mysqlcheck.result
            mysql-test/r/partition_datatype.result
            mysql-test/r/partition_mgm.result
            mysql-test/r/partition_pruning.result
            mysql-test/r/query_cache.result
            mysql-test/r/read_buffer_size_basic.result
            mysql-test/r/read_rnd_buffer_size_basic.result
            mysql-test/r/rpl_init_slave_func.result
            mysql-test/r/select.result
            mysql-test/r/status.result
            mysql-test/r/strict.result
            mysql-test/r/temp_table.result
            mysql-test/r/type_bit.result
            mysql-test/r/type_date.result
            mysql-test/r/type_float.result
            mysql-test/r/warnings_engine_disabled.result
            mysql-test/r/xml.result
            mysql-test/suite/binlog/r/binlog_database.result
            mysql-test/suite/binlog/r/binlog_index.result
            mysql-test/suite/binlog/r/binlog_innodb.result
            mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
            mysql-test/suite/binlog/t/binlog_innodb.test
            mysql-test/suite/funcs_1/r/is_columns_is.result
            mysql-test/suite/funcs_1/r/is_engines.result
            mysql-test/suite/funcs_1/r/storedproc.result
            mysql-test/suite/funcs_1/storedproc/param_check.inc
            mysql-test/suite/funcs_2/t/disabled.def
            mysql-test/suite/ndb/t/disabled.def
            mysql-test/suite/parts/r/partition_bit_innodb.result
            mysql-test/suite/parts/r/partition_bit_myisam.result
            mysql-test/suite/parts/r/partition_special_innodb.result
            mysql-test/suite/parts/t/disabled.def
            mysql-test/suite/parts/t/partition_special_innodb.test
            mysql-test/suite/parts/t/partition_value_innodb.test
            mysql-test/suite/parts/t/partition_value_myisam.test
            mysql-test/suite/parts/t/partition_value_ndb.test
            mysql-test/suite/rpl/r/rpl_auto_increment.result
            mysql-test/suite/rpl/r/rpl_packet.result
            mysql-test/suite/rpl/r/rpl_row_create_table.result
            mysql-test/suite/rpl/r/rpl_slave_skip.result
            mysql-test/suite/rpl/r/rpl_trigger.result
            mysql-test/suite/rpl/t/disabled.def
            mysql-test/suite/rpl/t/rpl_packet.test
            mysql-test/suite/rpl/t/rpl_row_create_table.test
            mysql-test/suite/rpl/t/rpl_slave_skip.test
            mysql-test/suite/rpl/t/rpl_trigger.test
            mysql-test/suite/rpl_ndb/t/disabled.def
            mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
            mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
            mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
            mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
            mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
            mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
            mysql-test/t/alter_table.test
            mysql-test/t/create.test
            mysql-test/t/csv.test
            mysql-test/t/ctype_ucs.test
            mysql-test/t/date_formats.test
            mysql-test/t/disabled.def
            mysql-test/t/events_bugs.test
            mysql-test/t/events_scheduling.test
            mysql-test/t/fulltext.test
            mysql-test/t/func_if.test
            mysql-test/t/func_in.test
            mysql-test/t/func_str.test
            mysql-test/t/func_time.test
            mysql-test/t/grant.test
            mysql-test/t/information_schema.test
            mysql-test/t/innodb-autoinc.test
            mysql-test/t/innodb.test
            mysql-test/t/innodb_mysql.test
            mysql-test/t/log_bin_trust_function_creators_func.test
            mysql-test/t/log_state.test
            mysql-test/t/myisam_data_pointer_size_func.test
            mysql-test/t/myisampack.test
            mysql-test/t/mysql.test
            mysql-test/t/mysqlcheck.test
            mysql-test/t/partition_innodb_stmt.test
            mysql-test/t/partition_mgm.test
            mysql-test/t/partition_pruning.test
            mysql-test/t/query_cache.test
            mysql-test/t/rpl_init_slave_func.test
            mysql-test/t/select.test
            mysql-test/t/status.test
            mysql-test/t/strict.test
            mysql-test/t/temp_table.test
            mysql-test/t/type_bit.test
            mysql-test/t/type_date.test
            mysql-test/t/type_float.test
            mysql-test/t/warnings_engine_disabled.test
            mysql-test/t/xml.test
            mysys/my_getopt.c
            mysys/my_init.c
            scripts/mysql_install_db.sh
            sql-common/my_time.c
            sql/field.cc
            sql/field.h
            sql/filesort.cc
            sql/ha_partition.cc
            sql/ha_partition.h
            sql/item.cc
            sql/item_cmpfunc.cc
            sql/item_func.h
            sql/item_strfunc.cc
            sql/item_sum.cc
            sql/item_timefunc.cc
            sql/item_timefunc.h
            sql/log.cc
            sql/log.h
            sql/log_event.cc
            sql/log_event.h
            sql/mysql_priv.h
            sql/mysqld.cc
            sql/opt_range.cc
            sql/partition_info.cc
            sql/repl_failsafe.cc
            sql/rpl_constants.h
            sql/set_var.cc
            sql/slave.cc
            sql/spatial.h
            sql/sql_acl.cc
            sql/sql_base.cc
            sql/sql_binlog.cc
            sql/sql_class.h
            sql/sql_cursor.cc
            sql/sql_delete.cc
            sql/sql_lex.cc
            sql/sql_lex.h
            sql/sql_locale.cc
            sql/sql_parse.cc
            sql/sql_partition.cc
            sql/sql_plugin.cc
            sql/sql_plugin.h
            sql/sql_profile.cc
            sql/sql_repl.cc
            sql/sql_select.cc
            sql/sql_select.h
            sql/sql_show.cc
            sql/sql_table.cc
            sql/sql_trigger.cc
            sql/sql_trigger.h
            sql/table.cc
            sql/table.h
            sql/unireg.cc
            storage/csv/ha_tina.cc
            storage/federated/ha_federated.cc
            storage/heap/ha_heap.cc
            storage/innobase/Makefile.am
            storage/innobase/btr/btr0sea.c
            storage/innobase/buf/buf0lru.c
            storage/innobase/dict/dict0dict.c
            storage/innobase/dict/dict0mem.c
            storage/innobase/handler/ha_innodb.cc
            storage/innobase/handler/ha_innodb.h
            storage/innobase/include/btr0sea.h
            storage/innobase/include/dict0dict.h
            storage/innobase/include/dict0mem.h
            storage/innobase/include/ha_prototypes.h
            storage/innobase/include/lock0lock.h
            storage/innobase/include/row0mysql.h
            storage/innobase/include/sync0sync.ic
            storage/innobase/include/ut0ut.h
            storage/innobase/lock/lock0lock.c
            storage/innobase/os/os0file.c
            storage/innobase/plug.in
            storage/innobase/row/row0mysql.c
            storage/innobase/row/row0sel.c
            storage/innobase/srv/srv0srv.c
            storage/innobase/srv/srv0start.c
            storage/innobase/ut/ut0ut.c
            storage/myisam/ft_boolean_search.c
            strings/ctype.c
            strings/xml.c
            tests/mysql_client_test.c
            win/configure.js
            mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
        
        ------------------------------------------------------------------------
        r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: minor non-functional changes.
        ------------------------------------------------------------------------
      b4399fa8
    • vasil's avatar
      branches/zip: · 4cbc3c48
      vasil authored
      ChangeLog: Remove include/os0sync.ic from the entry about the google patch,
      this file was modified later to not include Google's code.
      4cbc3c48
    • vasil's avatar
      branches/zip: · 4d49c50c
      vasil authored
      Cleanup in ChangeLog:
      * Wrap lines at 78 characters
      * Changed files are listed alphabetically
      * White-space cleanup
      4d49c50c
  5. 19 Feb, 2009 2 commits
  6. 18 Feb, 2009 3 commits
  7. 17 Feb, 2009 14 commits
    • marko's avatar
      branches/zip: When assigning lock->recursive = FALSE, also flag · a5304a28
      marko authored
      lock->writer_thread invalid, so that Valgrind will catch more errors.
      This is related to Issue #175.
      a5304a28
    • marko's avatar
      Minor cleanup of the Google SMP patch. · a5d1b1ce
      marko authored
      sync_array_object_signalled(): Add a (void) cast to eliminate a gcc warning
      about the return value of os_atomic_increment() being ignored.
      
      rw_lock_create_func(): Properly indent the preprocessor directives.
      
      rw_lock_x_lock_low(), rw_lock_x_lock_func_nowait(): Split lines correctly.
      
      rw_lock_set_writer_id_and_recursion_flag(): Silence a Valgrind warning.
      Do not mix statements and variable declarations.
      a5d1b1ce
    • vasil's avatar
      branches/zip: · f3fab6e7
      vasil authored
      Add the copyright notice to the non C files.
      f3fab6e7
    • vasil's avatar
      branches/zip: · a6c09afa
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 28/28]
      a6c09afa
    • vasil's avatar
      branches/zip: · 20c13efe
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 27/28]
      20c13efe
    • vasil's avatar
      branches/zip: · 98b586da
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 26/28]
      98b586da
    • vasil's avatar
      branches/zip: · 4ec7ccb2
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 25/28]
      4ec7ccb2
    • vasil's avatar
      branches/zip: · dcf56b04
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 24/28]
      dcf56b04
    • vasil's avatar
      branches/zip: · 1c46e6ef
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 23/28]
      1c46e6ef
    • vasil's avatar
      branches/zip: · d77e348f
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 22/28]
      d77e348f
    • vasil's avatar
      branches/zip: · b769ee87
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 21/28]
      b769ee87
    • vasil's avatar
      branches/zip: · 600b4188
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 20/28]
      600b4188
    • vasil's avatar
      branches/zip: · 78866060
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 19/28]
      78866060
    • vasil's avatar
      branches/zip: · bcd9af2b
      vasil authored
      * Remove old Innobase copyright lines from C source files
      * Add a reference to the GPLv2 license as recommended by the lawyers
      at Oracle Legal
      
      [Step 18/28]
      bcd9af2b