]> Kevux Git Server - koopa/commitdiff
Progress: continue development on database abstraction development master
authorKevin Day <thekevinday@gmail.com>
Tue, 12 Feb 2019 02:02:58 +0000 (20:02 -0600)
committerKevin Day <thekevinday@gmail.com>
Tue, 12 Feb 2019 06:18:51 +0000 (00:18 -0600)
166 files changed:
common/database/classes/database_alter_aggregate.php
common/database/classes/database_alter_coalation.php
common/database/classes/database_alter_conversion.php
common/database/classes/database_alter_database.php
common/database/classes/database_alter_domain.php
common/database/classes/database_alter_event_trigger.php
common/database/classes/database_alter_extension.php
common/database/classes/database_alter_foreign_data_wrapper.php
common/database/classes/database_alter_foreign_table.php
common/database/classes/database_alter_group.php
common/database/classes/database_alter_index.php
common/database/classes/database_alter_language.php
common/database/classes/database_alter_large_object.php
common/database/classes/database_alter_materialized_view.php
common/database/classes/database_alter_operator.php
common/database/classes/database_alter_operator_class.php
common/database/classes/database_alter_operator_family.php
common/database/classes/database_alter_policy.php
common/database/classes/database_alter_publication.php
common/database/classes/database_alter_role.php
common/database/classes/database_alter_rule.php
common/database/classes/database_alter_schema.php
common/database/classes/database_alter_sequence.php
common/database/classes/database_alter_server.php
common/database/classes/database_alter_statistics.php
common/database/classes/database_alter_subscription.php
common/database/classes/database_alter_system.php
common/database/classes/database_alter_table.php
common/database/classes/database_alter_tablespace.php
common/database/classes/database_alter_text_search_configuration.php
common/database/classes/database_alter_text_search_dictionary.php
common/database/classes/database_alter_text_search_parser.php
common/database/classes/database_alter_text_search_template.php
common/database/classes/database_alter_trigger.php
common/database/classes/database_alter_type.php
common/database/classes/database_alter_user.php
common/database/classes/database_alter_view.php
common/database/classes/database_analyze.php
common/database/classes/database_begin.php
common/database/classes/database_member_object.php
common/database/classes/database_query.php
common/database/classes/database_string.php
common/database/enumerations/database_anaylze_option.php [new file with mode: 0644]
common/database/enumerations/database_set_column_default.php [new file with mode: 0644]
common/database/enumerations/database_transaction_action.php [new file with mode: 0644]
common/database/enumerations/database_transaction_mode.php [new file with mode: 0644]
common/database/enumerations/database_view_option.php [new file with mode: 0644]
common/database/traits/database_action.php
common/database/traits/database_action_add_column.php
common/database/traits/database_action_alter_column.php
common/database/traits/database_action_alter_column_options.php
common/database/traits/database_action_alter_column_reset.php
common/database/traits/database_action_alter_column_set.php
common/database/traits/database_action_cluster_on.php
common/database/traits/database_action_constraint.php
common/database/traits/database_action_disable_rule.php
common/database/traits/database_action_disable_trigger.php
common/database/traits/database_action_drop_column.php
common/database/traits/database_action_enable_rule.php
common/database/traits/database_action_enable_trigger.php
common/database/traits/database_action_mapping_for.php
common/database/traits/database_action_not_of.php
common/database/traits/database_action_of.php
common/database/traits/database_action_options.php
common/database/traits/database_action_replica_identity.php
common/database/traits/database_action_row_level_security.php
common/database/traits/database_action_set_logged.php
common/database/traits/database_action_set_tablespace.php
common/database/traits/database_action_without_cluster.php
common/database/traits/database_add_operator_family.php
common/database/traits/database_add_table.php
common/database/traits/database_add_user.php
common/database/traits/database_add_value.php
common/database/traits/database_alter_column.php [new file with mode: 0644]
common/database/traits/database_analyze_options.php [new file with mode: 0644]
common/database/traits/database_argument_type.php
common/database/traits/database_as_data_type.php
common/database/traits/database_attach_partition.php
common/database/traits/database_begin.php [new file with mode: 0644]
common/database/traits/database_cache.php
common/database/traits/database_cascade.php
common/database/traits/database_cluster_on.php
common/database/traits/database_column_names.php [new file with mode: 0644]
common/database/traits/database_column_reset.php
common/database/traits/database_column_set.php
common/database/traits/database_column_set_statistics.php
common/database/traits/database_column_set_storage.php
common/database/traits/database_connection.php
common/database/traits/database_constraint.php
common/database/traits/database_cycle.php
common/database/traits/database_depends_on_extension.php
common/database/traits/database_detach_partition.php
common/database/traits/database_disable.php
common/database/traits/database_disable_trigger.php
common/database/traits/database_drop_table.php
common/database/traits/database_enable.php
common/database/traits/database_enable_trigger.php
common/database/traits/database_for_role.php
common/database/traits/database_function_action.php
common/database/traits/database_grant.php
common/database/traits/database_grant_option_for.php
common/database/traits/database_group_by.php
common/database/traits/database_handler.php
common/database/traits/database_if_exists.php
common/database/traits/database_if_not_exists.php
common/database/traits/database_in_database.php
common/database/traits/database_in_schema.php
common/database/traits/database_increment_by.php
common/database/traits/database_inherit.php
common/database/traits/database_max_value.php
common/database/traits/database_min_value.php
common/database/traits/database_name.php
common/database/traits/database_no_wait.php
common/database/traits/database_oid.php
common/database/traits/database_on.php
common/database/traits/database_on_table.php
common/database/traits/database_operand_left.php
common/database/traits/database_operand_right.php
common/database/traits/database_options.php
common/database/traits/database_order_by.php
common/database/traits/database_owner_to.php
common/database/traits/database_procedural.php
common/database/traits/database_refresh_publication.php
common/database/traits/database_rename_attribute.php
common/database/traits/database_rename_column.php
common/database/traits/database_rename_constraint.php
common/database/traits/database_rename_to.php
common/database/traits/database_rename_value.php
common/database/traits/database_reset_configuration_parameter.php
common/database/traits/database_reset_storage_parameter.php
common/database/traits/database_reset_view_option.php [new file with mode: 0644]
common/database/traits/database_restart_with.php
common/database/traits/database_restrict.php
common/database/traits/database_role_specification.php
common/database/traits/database_server_name.php
common/database/traits/database_server_options.php
common/database/traits/database_set_configuration_parameter.php
common/database/traits/database_set_operator.php
common/database/traits/database_set_publication_name.php
common/database/traits/database_set_publication_parameter.php
common/database/traits/database_set_schema.php
common/database/traits/database_set_storage_parameter.php
common/database/traits/database_set_table.php
common/database/traits/database_set_tablespace.php
common/database/traits/database_set_view_option.php [new file with mode: 0644]
common/database/traits/database_set_with_oids.php
common/database/traits/database_set_without_cluster.php
common/database/traits/database_start_with.php
common/database/traits/database_table_name.php [new file with mode: 0644]
common/database/traits/database_to_role.php
common/database/traits/database_transaction_action.php [new file with mode: 0644]
common/database/traits/database_transaction_mode.php [new file with mode: 0644]
common/database/traits/database_type_action.php
common/database/traits/database_user_name.php
common/database/traits/database_using_expression.php
common/database/traits/database_using_index_method.php
common/database/traits/database_validator.php
common/database/traits/database_version.php
common/database/traits/database_wildcard.php
common/database/traits/database_with_check_expression.php
common/database/traits/database_with_dictionary.php
common/database/traits/database_with_grant_option.php
common/database/traits/database_with_publication_option.php
common/database/traits/database_with_refresh_option.php
common/database/traits/database_with_role_option.php
common/database/traits/database_with_storage_parameter.php

index e86ec958a23e56c217e42daf2d6e79d28f84c94d..9b38eff6b2d3d405388c3c51232c4236d8f7fb16 100644 (file)
@@ -36,7 +36,6 @@ class c_database_alter_aggregate extends c_database_query {
   protected $aggregate_signatures;
   protected $order_by_signatures;
 
-
   /**
    * Class constructor.
    */
@@ -89,7 +88,7 @@ class c_database_alter_aggregate extends c_database_query {
   }
 
   /**
-   * Set the aggregate signatures.
+   * Assign the settings.
    *
    * @param c_database_argument_aggregate_signature|null $aggregate_signature
    *   The aggregate signatures to use.
@@ -120,7 +119,7 @@ class c_database_alter_aggregate extends c_database_query {
   }
 
   /**
-   * Set the order by aggregate signatures.
+   * Assign the settings.
    *
    * @param c_database_argument_aggregate_signature_base|null $order_by_signature
    *   The order by aggregate signature to use.
@@ -277,7 +276,7 @@ class c_database_alter_aggregate extends c_database_query {
       if (isset($aggregate_signatures)) {
         $aggregate_signatures = ' (' . $aggregate_signatures;
         if (isset($order_by_signatures)) {
-          $aggregate_signatures = ' ' . c_database_string::ORDER_BY . ' ' . $order_by_signatures . '';
+          $aggregate_signatures = ' ' . c_database_string::ORDER . ' ' . c_database_string::BY . ' ' . $order_by_signatures . '';
         }
         $aggregate_signatures .= ')';
       }
index b47acea79b6ffb47a27560c97ee67a32fb5a6192..1f78114130b6a271a9140b0cef7a327c8dbc9c1d 100644 (file)
@@ -79,7 +79,7 @@ class c_database_alter_coalation extends c_database_query {
   }
 
   /**
-   * Set the refresh version.
+   * Assign the settings.
    *
    * @param bool|null $refresh_version
    *   Whether or not to use REFRESH VERSION in the query.
@@ -135,7 +135,7 @@ class c_database_alter_coalation extends c_database_query {
     $value = $this->p_do_build_name();
     if (is_bool($this->refresh_version)) {
       if ($this->refresh_version) {
-        $value .= c_database_string::REFRESH_VERSION;
+        $value .= c_database_string::REFRESH . ' ' . c_database_string::VERSION;
       }
     }
     else if (isset($this->rename_to)) {
index f4616d4cd77ee5dcc32e4645b9cd39187517a525..c1cd7c2c7a9ce0711a8e629c2718745efd29baa1 100644 (file)
@@ -28,7 +28,6 @@ class c_database_alter_conversion extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter conversion';
 
-
   /**
    * Class constructor.
    */
index 8d0520b7d04c3551a745a7971a0064b05702706e..cf4da6bb02b36f44d2c4e54c1ed562f2946d2634 100644 (file)
@@ -93,7 +93,7 @@ class c_database_alter_database extends c_database_query {
   }
 
   /**
-   * Set the option.
+   * Assign the settings.
    *
    * @param c_database_argument_database_option|null $option
    *   The database options to use.
index 28e8f64ee38ec954c28b76bd51926bdd4efb1b59..f86a96a9c81b2bd5a79bb759782d7ab85917f5c0 100644 (file)
@@ -41,7 +41,7 @@ class c_database_alter_domain extends c_database_query {
    */
   public function __construct() {
     parent::__construct();
-;
+
     $this->action     = NULL;
     $this->name       = NULL;
     $this->owner_to   = NULL;
@@ -249,14 +249,14 @@ class c_database_alter_domain extends c_database_query {
           $value .= ' ' . $this->constraint['name'];
 
           if ($this->property === e_database_property::NOT_VALID) {
-            $value .= ' ' . c_database_string::NOT_VALID;
+            $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::VALID;
           }
           break;
 
         case e_database_action_deprecated::DROP:
           $value .= c_database_string::DROP;
           if ($this->property === e_database_property::NOT_NULL) {
-            $value .= ' ' . c_database_string::NOT_NULL;
+            $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::NULL;
           }
           break;
 
@@ -266,9 +266,9 @@ class c_database_alter_domain extends c_database_query {
             return new c_base_return_false();
           }
 
-          $value .= c_database_string::DROP_CONSTRAINT;
+          $value .= c_database_string::DROP . ' ' . c_database_string::CONSTRAINT;
           if ($this->property === e_database_property::IF_EXISTS) {
-            $value .= ' ' . c_database_string::IF_EXISTS;
+            $value .= ' ' . c_database_string::IF . ' ' . c_database_string::EXISTS;
           }
 
           $value .= ' ' . $this->constraint['name'];
@@ -282,7 +282,7 @@ class c_database_alter_domain extends c_database_query {
           break;
 
         case e_database_action_deprecated::DROP_DEFAULT:
-          $value .= c_database_string::DROP_DEFAULT;
+          $value .= c_database_string::DROP . ' ' . c_database_string::DEFAULT;
           break;
 
         case e_database_action_deprecated::OWNER_TO:
@@ -300,7 +300,7 @@ class c_database_alter_domain extends c_database_query {
             return new c_base_return_false();
           }
 
-          $value .= c_database_string::RENAME_CONSTRAINT . ' ' . $this->constraint['name'] . ' ' . c_database_string::TO . ' ' . $this->constraint['name_new'];
+          $value .= c_database_string::RENAME . ' ' . c_database_string::CONSTRAINT . ' ' . $this->constraint['name'] . ' ' . c_database_string::TO . ' ' . $this->constraint['name_new'];
           break;
 
         case e_database_action_deprecated::RENAME_TO:
@@ -325,7 +325,7 @@ class c_database_alter_domain extends c_database_query {
             return new c_base_return_false();
           }
 
-          $value .= c_database_string::SET_DEFAULT . ' ' . $this->expression;
+          $value .= c_database_string::SET . ' ' . c_database_string::DEFAULT . ' ' . $this->expression;
           break;
 
         case e_database_action_deprecated::SET_SCHEMA:
@@ -343,7 +343,7 @@ class c_database_alter_domain extends c_database_query {
             return new c_base_return_false();
           }
 
-          $value .= c_database_string::VALIDATE_CONSTRAINT . ' ' . $this->constraint['name'];
+          $value .= c_database_string::VALIDATE . ' ' . c_database_string::CONSTRAINT . ' ' . $this->constraint['name'];
           break;
 
         default:
index 98f4f383236e33091730530d39f40946d0e6eb02..41d8c14b8175d906e74a80e6eb782ac0fa24bd9c 100644 (file)
@@ -29,7 +29,6 @@ class c_database_alter_coalation extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter event trigger';
 
-
   /**
    * Class constructor.
    */
index 248c4997c2d27fccf79827108e31cfcce8e0840f..e9d19b3d96d93b39b941a75200f81c20dea2438e 100644 (file)
@@ -29,7 +29,6 @@ class c_database_alter_extension extends c_database_query {
 
   protected $member_object;
 
-
   /**
    * Class constructor.
    */
index b6cd718adfee48c1275b400ea8177dc7b74a67e9..de3fc4da60532ba81f69818ab8f7508a3d570080 100644 (file)
@@ -32,7 +32,6 @@ class c_database_alter_foreign_data_wrapper extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter foreign data wrapper';
 
-
   /**
    * Class constructor.
    */
index 838757687a2afcaefdee6254558ce1bed4fd84b8..662482f8c7c44c71d3e48ca365ca37e7efbac04f 100644 (file)
@@ -60,7 +60,6 @@ class c_database_alter_foreign_table extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter foreign table';
 
-
   /**
    * Class constructor.
    */
index a3adb003351b9c63988cbbef03154b543b0da238..e09cb2e61d6b68efb0438116724bfba55608ac16 100644 (file)
@@ -28,7 +28,6 @@ class c_database_alter_group extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter group';
 
-
   /**
    * Class constructor.
    */
index a35930e3629e9910404d8e3c5538c2adee316f55..ff3a0be90928f98283ffd6bdac5a55f9b281d77f 100644 (file)
@@ -39,7 +39,6 @@ class c_database_alter_index extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter index';
 
-
   /**
    * Class constructor.
    */
index addd716dfe0636966ce384f8841a537f1a4eeb27..983d63c2c3ec0507103b669966124169f214e7a4 100644 (file)
@@ -29,7 +29,6 @@ class c_database_alter_language extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter language';
 
-
   /**
    * Class constructor.
    */
index 65a8a28e6bfbafee44e82c7fb609d01c35bb041e..d5e44d1d1601b65bf325a7f477bbef5c67d9cdf7 100644 (file)
@@ -24,7 +24,6 @@ class c_database_alter_large_object extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter large object';
 
-
   /**
    * Class constructor.
    */
index 52b91f8ba3fbab49ec13033f5f8ff5fe8f765687..a65e12e6b7a6bab0766c9148eb63fa5bec606c87 100644 (file)
@@ -57,7 +57,6 @@ class c_database_alter_materialized_view extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter materialized view';
 
-
   /**
    * Class constructor.
    */
index 04245b01023f2b75efab0b1eebc859b911f4a0a3..56f722f2554658a679194786320b8a653b288a2d 100644 (file)
@@ -33,7 +33,6 @@ class c_database_alter_operator extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter operator';
 
-
   /**
    * Class constructor.
    */
index b94a2df5232bf85f6fccd8c9e77638531e368198..f219a5dc3322ff4eb9045965985ecd91e21a7ea1 100644 (file)
@@ -31,7 +31,6 @@ class c_database_alter_operator_class extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter operator class';
 
-
   /**
    * Class constructor.
    */
index 34e965c0f79e825cc7cd796b4eb2a56931dfc1a0..6e8d54e57b1a7760bc6d35bf4a8ee829af78c45d 100644 (file)
@@ -33,7 +33,6 @@ class c_database_alter_operator_family extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter operator family';
 
-
   /**
    * Class constructor.
    */
index 4977ed5046251f3438c43a9b3051645572efdf99..54ec8a8b3011afdbdd8cac7ef01cd0acbbbb9c7e 100644 (file)
@@ -33,7 +33,6 @@ class c_database_alter_policy extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter policy';
 
-
   /**
    * Class constructor.
    */
index 8ae5ba933c8f7c63101f60b90c74166c309b13b2..af44dd68f587cb43d22615d18e3af3ac79355091 100644 (file)
@@ -33,7 +33,6 @@ class c_database_alter_publication extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter publication';
 
-
   /**
    * Class constructor.
    */
index ab8430a3349356719ae18d7b3ca697c5eff3aaea..3a62f8c47edd892d8fb34d729ee46b1ea927ddc4 100644 (file)
@@ -35,7 +35,6 @@ class c_database_alter_role extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter role';
 
-
   /**
    * Class constructor.
    */
index be9d92b1e01f26ca34b658e20913352a01aeb17d..cc6c4b8cc84507545ee1163ebf8d4e7c3e42f765 100644 (file)
@@ -27,7 +27,6 @@ class c_database_alter_rule extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter rule';
 
-
   /**
    * Class constructor.
    */
index 12cd8f4cdb16edade6b455f7fbabd64cd610db39..23c2fb0dc62ca1fc29a82da5af1aa6367b7c222e 100644 (file)
@@ -27,7 +27,6 @@ class c_database_alter_schema extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter schema';
 
-
   /**
    * Class constructor.
    */
index d5218289f62e49225f98738b2355d312836c51e3..d9c25a0c996dd7e9329d5c6c10cd1d4651cf3306 100644 (file)
@@ -49,7 +49,6 @@ class c_database_alter_sequence extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter sequence';
 
-
   /**
    * Class constructor.
    */
index 8a015cc3320ec7e243d15e760e653a61b7bf66b1..2bb304a06ca91a9a0ae684acbfa2f17f94a809ce 100644 (file)
@@ -31,7 +31,6 @@ class c_database_alter_coalation extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter server';
 
-
   /**
    * Class constructor.
    */
index 66bf971bd67cee0fb95972dc6f1f24848596a53d..9e0d44569e60963973b2883bd434fbe36cb3883a 100644 (file)
@@ -27,7 +27,6 @@ class c_database_alter_coalation extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter statistics';
 
-
   /**
    * Class constructor.
    */
index 37f9cef8813d273cebd85f3771fd5f5ce381c075..06e56e9735f7661cb1576500ee52510f8b9c385c 100644 (file)
@@ -45,7 +45,6 @@ class c_database_alter_subscription extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter subsciption';
 
-
   /**
    * Class constructor.
    */
index 7258d8079621c72d8b406418a80eff7b4a1c6a62..df10f4448b2fa9781b232ec246de89eb965922be 100644 (file)
@@ -25,7 +25,6 @@ class c_database_alter_system extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter system';
 
-
   /**
    * Class constructor.
    */
index 9161458d613538adbc3ffa0035d0425d5425d4b0..aae5c13f5e4c928296fb145c4c38f51430752f0a 100644 (file)
@@ -90,7 +90,6 @@ class c_database_alter_table extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter table';
 
-
   /**
    * Class constructor.
    */
index 240bf354646b8b5c3e3dc73076484386b6dce0e4..32a65bd0fa14099fb3d7ba029b87440f1168e5e2 100644 (file)
@@ -31,7 +31,6 @@ class c_database_alter_coalation extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter tablespace';
 
-
   /**
    * Class constructor.
    */
index d08a8960db987c1e979385d91b09619f7567ad98..1effb8a06489d93c9f0ddd51d4bda566cb9b6496 100644 (file)
@@ -35,7 +35,6 @@ class c_database_alter_text_search_configuration extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter text search configuration';
 
-
   /**
    * Class constructor.
    */
index cf37e696f5fdff93c4f3d5af512af06594f6656b..94325cb8f7346aeb6a9730815ef1d73c2732847f 100644 (file)
@@ -31,7 +31,6 @@ class c_database_alter_text_search_dictionary extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter text search dictionary';
 
-
   /**
    * Class constructor.
    */
index a639363c1a6390ef28171ba246e1e90903dbaf25..bee0143833a770f12b82206ca1ba0c528875e6d8 100644 (file)
@@ -26,7 +26,6 @@ class c_database_alter_text_search_parser extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter text search parser';
 
-
   /**
    * Class constructor.
    */
index 91fc618c3e9c29472678b5393db144b7f304468b..7f97010e1b636788790b9ffa1950820b6a65eec5 100644 (file)
@@ -27,7 +27,6 @@ class c_database_alter_text_search_template extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter text search template';
 
-
   /**
    * Class constructor.
    */
index b087072e51e9bc0382500170f33a2b4c37b61c1f..ae97fd9b139f69e3bb7d7982b3e839e45fb6c69d 100644 (file)
@@ -27,7 +27,6 @@ class c_database_alter_trigger extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter trigger';
 
-
   /**
    * Class constructor.
    */
index 32fe198f7b1eb016032a21629dc789b77a9ae4ab..cc2ad0b7ee693bbb9edb4dc86112f28326b05c9a 100644 (file)
@@ -36,7 +36,6 @@ class c_database_alter_type extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter type';
 
-
   /**
    * Class constructor.
    */
index 17359dbfeea0f9329613829645dbd75f7210d87c..9b980e08876425495e5cb24ace0a70c38342283d 100644 (file)
@@ -34,7 +34,6 @@ class c_database_alter_user extends c_database_query {
 
   protected const p_QUERY_COMMAND = 'alter user';
 
-
   /**
    * Class constructor.
    */
index bf3857e4bf78d6f794f6cfd5183282524c688a2c..e22992a1e413e6302ac1420152a46b9be7258462 100644 (file)
@@ -10,27 +10,61 @@ require_once('common/base/classes/base_return.php');
 
 require_once('common/database/classes/database_query.php');
 
+require_once('common/database/traits/database_alter_column.php');
+require_once('common/database/traits/database_if_exists.php');
+require_once('common/database/traits/database_name.php');
+require_once('common/database/traits/database_owner_to.php');
+require_once('common/database/traits/database_rename_to.php');
+require_once('common/database/traits/database_reset_view_option.php');
+require_once('common/database/traits/database_set_schema.php');
+require_once('common/database/traits/database_set_view_option.php');
 
 /**
- * The class for building and returning a Postgresql ALTER COALATION query string.
+ * The class for building and returning a Postgresql ALTER VIEW query string.
  *
- * @see: https://www.postgresql.org/docs/current/static/sql-alteraggregate.html
+ * @see: https://www.postgresql.org/docs/current/static/sql-alterview.html
  */
-class c_database_alter_coalation extends c_database_query {
-  protected const p_QUERY_COMMAND = 'alter coalation';
+class c_database_alter_view extends c_database_query {
+  use t_database_alter_column;
+  use t_database_if_exists;
+  use t_database_name;
+  use t_database_owner_to;
+  use t_database_rename_to;
+  use t_database_reset_view_option;
+  use t_database_set_schema;
+  use t_database_set_view_option;
 
+  protected const p_QUERY_COMMAND = 'alter view';
 
   /**
    * Class constructor.
    */
   public function __construct() {
     parent::__construct();
+
+    $this->alter_column      = NULL;
+    $this->if_exists         = NULL;
+    $this->name              = NULL;
+    $this->owner_to          = NULL;
+    $this->rename_to         = NULL;
+    $this->reset_view_option = NULL;
+    $this->set_schema        = NULL;
+    $this->set_view_option   = NULL;
   }
 
   /**
    * Class destructor.
    */
   public function __destruct() {
+    unset($this->alter_column);
+    unset($this->if_exists);
+    unset($this->name);
+    unset($this->owner_to);
+    unset($this->rename_to);
+    unset($this->reset_view_option);
+    unset($this->set_schema);
+    unset($this->set_view_option);
+
     parent::__destruct();
   }
 
@@ -65,6 +99,33 @@ class c_database_alter_coalation extends c_database_query {
 
     $value = $this->p_do_build_name();
 
+    if (isset($this->if_exists)) {
+      $value = $this->p_do_build_if_exists() . ' ' . $value;
+    }
+
+    if (isset($this->alter_column)) {
+      $value .= ' ' . $this->p_do_build_alter_column();
+    }
+    else if (isset($this->owner_to)) {
+      $value .= ' ' . $this->p_do_build_owner_to();
+    }
+    else if (isset($this->rename_to)) {
+      $value .= ' ' . $this->p_do_build_rename_to();
+    }
+    else if (isset($this->set_schema)) {
+      $value .= ' ' . $this->p_do_build_set_schema();
+    }
+    else if (isset($this->set_view_option)) {
+      $value .= ' ' . $this->p_do_build_set_view_option();
+    }
+    else if (isset($this->reset_view_option)) {
+      $value .= ' ' . $this->p_do_build_reset_view_option();
+    }
+    else {
+      unset($value);
+      return new c_base_return_false();
+    }
+
     $this->value = static::p_QUERY_COMMAND;
     $this->value .= ' ' . $value;
     unset($value);
index bf3857e4bf78d6f794f6cfd5183282524c688a2c..30b9450a2010ffbb4f14c97e6cd3c5111a9e31ca 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
  * @file
- * Provides a class for specific Postgesql query: ALTER COALATION.
+ * Provides a class for specific Postgesql query: ANALYZE.
  */
 namespace n_koopa;
 
@@ -10,27 +10,41 @@ require_once('common/base/classes/base_return.php');
 
 require_once('common/database/classes/database_query.php');
 
+require_once('common/database/traits/database_analyze_options.php');
+require_once('common/database/traits/database_column_names.php');
+require_once('common/database/traits/database_table_name.php');
 
 /**
- * The class for building and returning a Postgresql ALTER COALATION query string.
+ * The class for building and returning a Postgresql ANALYZE query string.
  *
- * @see: https://www.postgresql.org/docs/current/static/sql-alteraggregate.html
+ * @see: https://www.postgresql.org/docs/current/static/sql-analyze.html
  */
-class c_database_alter_coalation extends c_database_query {
-  protected const p_QUERY_COMMAND = 'alter coalation';
+class c_database_analyze extends c_database_query {
+  use t_database_analyze_options;
+  use t_database_column_names;
+  use t_database_table_name;
 
+  protected const p_QUERY_COMMAND = 'analyze';
 
   /**
    * Class constructor.
    */
   public function __construct() {
     parent::__construct();
+
+    unset($this->analyze_options);
+    unset($this->column_names);
+    unset($this->table_name);
   }
 
   /**
    * Class destructor.
    */
   public function __destruct() {
+    $this->analyze_options = NULL;
+    $this->column_names    = NULL;
+    $this->table_name      = NULL;
+
     parent::__destruct();
   }
 
@@ -59,11 +73,19 @@ class c_database_alter_coalation extends c_database_query {
    * Implements do_build().
    */
   public function do_build() {
-    if (is_null($this->name)) {
+    if (is_null($this->table_name)) {
       return new c_base_return_false();
     }
 
-    $value = $this->p_do_build_name();
+    $value = $this->p_do_build_table_name();
+
+    if (!is_null($this->analyze_options)) {
+      $value = '(' . $this->p_do_build_analyze_options() . ') ' . $value;
+    }
+
+    if (!is_null($this->column_names)) {
+      $value .= ' (' . $this->p_do_build_column_names() . ')';
+    }
 
     $this->value = static::p_QUERY_COMMAND;
     $this->value .= ' ' . $value;
index bf3857e4bf78d6f794f6cfd5183282524c688a2c..f449b85476c68c7292bcac255b544d35c4bea94b 100644 (file)
@@ -10,27 +10,37 @@ require_once('common/base/classes/base_return.php');
 
 require_once('common/database/classes/database_query.php');
 
+require_once('common/database/traits/database_transaction_action.php');
+require_once('common/database/traits/database_transaction_mode.php');
 
 /**
- * The class for building and returning a Postgresql ALTER COALATION query string.
+ * The class for building and returning a Postgresql BEGIN query string.
  *
- * @see: https://www.postgresql.org/docs/current/static/sql-alteraggregate.html
+ * @see: https://www.postgresql.org/docs/current/static/sql-begin.html
  */
-class c_database_alter_coalation extends c_database_query {
-  protected const p_QUERY_COMMAND = 'alter coalation';
+class c_database_begin extends c_database_query {
+  use t_database_transaction_action;
+  use t_database_transaction_mode;
 
+  protected const p_QUERY_COMMAND = 'begin';
 
   /**
    * Class constructor.
    */
   public function __construct() {
     parent::__construct();
+
+    $this->transaction_action = NULL;
+    $this->transaction_mode   = NULL;
   }
 
   /**
    * Class destructor.
    */
   public function __destruct() {
+    unset($this->transaction_action);
+    unset($this->transaction_mode);
+
     parent::__destruct();
   }
 
@@ -59,11 +69,20 @@ class c_database_alter_coalation extends c_database_query {
    * Implements do_build().
    */
   public function do_build() {
-    if (is_null($this->name)) {
-      return new c_base_return_false();
+    $value = NULL;
+
+    if (isset($this->transaction_action)) {
+      $value = $this->p_do_build_transaction_action();
     }
 
-    $value = $this->p_do_build_name();
+    if (isset($this->transaction_mode)) {
+      if (is_null($value)) {
+        $value = $this->p_do_build_transaction_mode();
+      }
+      else {
+        $value = ' ' . $this->p_do_build_transaction_mode();
+      }
+    }
 
     $this->value = static::p_QUERY_COMMAND;
     $this->value .= ' ' . $value;
index b045f8b91aaafb1ba3a78930a8efb7fcb3ce8b79..333d7134ce874cc9c009104cee6d30aa362f76ea 100644 (file)
@@ -82,7 +82,7 @@ class c_database_member_object extends c_database_query {
     $value = NULL;
     switch($this->action) {
       case e_database_method_object::ACCESS_METHOD:
-        $value = c_database_string::ACCESS_METHOD . ' ' . $this->p_do_build_name();
+        $value = c_database_string::ACCESS . ' ' . c_database_string::METHOD . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::AGGREGATE:
         $value = c_database_string::AGGREGATE . ' ' . $this->p_do_build_name();
@@ -116,13 +116,13 @@ class c_database_member_object extends c_database_query {
         $value = c_database_string::DOMAIN . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::EVENT_TRIGGER:
-        $value = c_database_string::EVENT_TRIGGER . ' ' . $this->p_do_build_name();
+        $value = c_database_string::EVENT . ' ' . c_database_string::TRIGGER . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::FOREIGN_DATA_WRAPPER:
-        $value = c_database_string::FOREIGN_DATA_WRAPPER . ' ' . $this->p_do_build_name();
+        $value = c_database_string::FOREIGN . ' ' . c_database_string::DATA . ' ' . c_database_string::WRAPPER . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::FOREIGN_TABLE:
-        $value = c_database_string::FOREIGN_TABLE . ' ' . $this->p_do_build_name();
+        $value = c_database_string::FOREIGN . ' ' . c_database_string::TABLE . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::FUNCTION:
         $value = c_database_string::FUNCTION . ' ' . $this->p_do_build_name();
@@ -137,7 +137,7 @@ class c_database_member_object extends c_database_query {
         }*/
         break;
       case e_database_method_object::MATERIALIZED_VIEW:
-        $value = c_database_string::MATERIALIZED_VIEW . ' ' . $this->p_do_build_name();
+        $value = c_database_string::MATERIALIZED . ' ' . c_database_string::VIEW . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::OPERATOR:
         $value = c_database_string::OPERATOR . ' ' . $this->p_do_build_name();
@@ -150,7 +150,7 @@ class c_database_member_object extends c_database_query {
         }
         break;
       case e_database_method_object::OPERATOR_CLASS:
-        $value = c_database_string::OPERATOR_CLASS . ' ' . $this->p_do_build_name();
+        $value = c_database_string::OPERATOR . ' ' . c_database_string::CLASS_ . ' ' . $this->p_do_build_name();
         if (is_string($this->action_parameter)) {
           $value .= ' ' . c_database_string::USING . ' ' . $this->action_parameter;
         }
@@ -160,7 +160,7 @@ class c_database_member_object extends c_database_query {
         }
         break;
       case e_database_method_object::OPERATOR_FAMILY:
-        $value = c_database_string::OPERATOR_FAMILY . ' ' . $this->p_do_build_name();
+        $value = c_database_string::OPERATOR . ' ' . c_database_string::FAMILY . ' ' . $this->p_do_build_name();
         if (is_string($this->action_parameter)) {
           $value .= ' ' . c_database_string::USING . ' ' . $this->action_parameter;
         }
@@ -188,19 +188,19 @@ class c_database_member_object extends c_database_query {
         $value = c_database_string::TABLE . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::TEXT_SEARCH_CONFIGURATION:
-        $value = c_database_string::TEXT_SEARCH_CONFIGURATION . ' ' . $this->p_do_build_name();
+        $value = c_database_string::TEXT . ' ' . c_database_string::SEARCH . ' ' . c_database_string::CONFIGURATION . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::TEXT_SEARCH_DICTIONARY:
-        $value = c_database_string::TEXT_SEARCH_DICTIONARY . ' ' . $this->p_do_build_name();
+        $value = c_database_string::TEXT . ' ' . c_database_string::SEARCH . ' ' . c_database_string::DICTIONARY . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::TEXT_SEARCH_PARSER:
-        $value = c_database_string::TEXT_SEARCH_PARSER . ' ' . $this->p_do_build_name();
+        $value = c_database_string::TEXT . ' ' . c_database_string::SEARCH . ' ' . c_database_string::PARSER . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::TEXT_SEARCH_TEMPLATE:
-        $value = c_database_string::TEXT_SEARCH_TEMPLATE . ' ' . $this->p_do_build_name();
+        $value = c_database_string::TEXT . ' ' . c_database_string::SEARCH . ' ' . c_database_string::TEMPLATE . ' ' . $this->p_do_build_name();
         break;
       case e_database_method_object::TRANSFORM_FOR:
-        $value = c_database_string::TRANSFORM_FOR . ' ' . $this->p_do_build_name();
+        $value = c_database_string::TRANSFORM . ' ' . c_database_string::FOR . ' ' . $this->p_do_build_name();
         if (is_string($this->action_parameter)) {
           $value .= ' ' . c_database_string::LANGUAGE . ' ' . $this->action_parameter;
         }
index ddc7c964dc49c574beed4914c20012ad7856b1d1..32995d6f31e8cb348391681a2c17318a92e6f479 100644 (file)
@@ -368,7 +368,7 @@ class c_database_argument_query extends c_base_return_string implements i_databa
   }
 
   /**
-   * Set the SQL query.
+   * Assign the settings.
    *
    * @param c_database_query|null $query
    *   A fully configured query.
@@ -500,7 +500,7 @@ class c_database_argument_expression extends c_base_return_string implements i_d
   }
 
   /**
-   * Set the SQL expression.
+   * Assign the settings.
    *
    * Expression are usually fields but also be other expressions.
    * Expressions may even be SQL queries.
@@ -529,7 +529,7 @@ class c_database_argument_expression extends c_base_return_string implements i_d
   }
 
   /**
-   * Set the SQL expression alias.
+   * Assign the settings.
    *
    * @param string|null $alias
    *   An optional alias to assign.
@@ -671,7 +671,7 @@ class c_database_argument_expression_column extends c_database_argument_expressi
   }
 
   /**
-   * Set the SQL expression column.
+   * Assign the settings.
    *
    * @param string|null $column
    *   Set to NULL to remove the assigned expression column.
@@ -814,7 +814,7 @@ class c_database_argument_aggregate_signature_base extends c_base_return_string
   }
 
   /**
-   * Set the SQL argument mode.
+   * Assign the settings.
    *
    * @param int|null $argument_mode
    *   The argument mode to assign.
@@ -840,7 +840,7 @@ class c_database_argument_aggregate_signature_base extends c_base_return_string
   }
 
   /**
-   * Set the SQL argument name.
+   * Assign the settings.
    *
    * @param string|null $argument_name
    *   The argument name to assign.
@@ -866,7 +866,7 @@ class c_database_argument_aggregate_signature_base extends c_base_return_string
   }
 
   /**
-   * Set the SQL argument type.
+   * Assign the settings.
    *
    * @param string|null $argument_type
    *   The argument type to assign.
@@ -1040,7 +1040,7 @@ class c_database_argument_aggregate_signature extends c_database_argument_aggreg
   }
 
   /**
-   * Set the SQL argument all.
+   * Assign the settings.
    *
    * This represents whether or not a wildcard is used to represent all fields.
    *
@@ -1186,7 +1186,7 @@ class c_database_argument_database_option extends c_base_return_string implement
   }
 
   /**
-   * Set the SQL argument allow connection.
+   * Assign the settings.
    *
    * @param bool|null $allow_connection
    *   Set to TRUE to enable allow connection.
@@ -1213,7 +1213,7 @@ class c_database_argument_database_option extends c_base_return_string implement
   }
 
   /**
-   * Set the SQL argument connection limit.
+   * Assign the settings.
    *
    * @param int|null $connection_limit
    *   A connection limit integer.
@@ -1240,7 +1240,7 @@ class c_database_argument_database_option extends c_base_return_string implement
   }
 
   /**
-   * Set the SQL argument is template.
+   * Assign the settings.
    *
    * @param bool|null $is_template
    *   Set to TRUE to enable is template.
@@ -1435,7 +1435,7 @@ class c_database_argument_role_name extends c_base_return_string implements i_da
   }
 
   /**
-   * Set the SQL argument mode.
+   * Assign the settings.
    *
    * @param int|null $argument_mode
    *   The argument mode to assign.
@@ -1461,7 +1461,7 @@ class c_database_argument_role_name extends c_base_return_string implements i_da
   }
 
   /**
-   * Set the SQL argument name.
+   * Assign the settings.
    *
    * @param string|null $argument_name
    *   The argument name to assign.
index 2cd652d99c7ef1669245d2932d43b565bb44f166..b56fb0a48a4c74e22b4bd26a34becad136858edd 100644 (file)
@@ -11,22 +11,18 @@ namespace n_koopa;
  * A collection of strings used for generating SQL.
  */
 class c_database_string {
-  public const ACCESS_METHOD                         = 'access method';
+  public const ACCESS                                = 'access';
   public const ADD                                   = 'add';
-  public const ADD_ATTRIBUTE                         = 'add attribute';
-  public const ADD_COLUMN                            = 'add column';
-  public const ADD_TABLE                             = 'add table';
-  public const ADD_VALUE                             = 'add value';
   public const AFTER                                 = 'after';
   public const AGGREGATE                             = 'aggregate';
   public const ALL                                   = 'all';
-  public const ALLOW_CONNECTIONS                     = 'allow_connections';
+  public const ALLOW                                 = 'allow';
   public const ALTER                                 = 'alter';
-  public const ALTER_ATTRIBUTE                       = 'alter attribute';
-  public const ALTER_CONSTRAINT                      = 'alter constraint';
+  public const ALWAYS                                = 'always';
   public const AS                                    = 'as';
   public const ASCEND                                = 'asc';
-  public const ATTACH_PARTITION                      = 'attach partition';
+  public const ATTACH                                = 'attach';
+  public const ATTRIBUTE                             = 'attribute';
   public const AUTOSUMMARIZE                         = 'autosummarize';
   public const AUTOVACUUM_ANALYZE_SCALE_FACTOR       = 'autovacuum_analyze_scale_factor';
   public const AUTOVACUUM_ANALYZE_THRESHOLD          = 'autovacuum_analyze_threshold';
@@ -41,19 +37,28 @@ class c_database_string {
   public const AUTOVACUUM_SCALE_FACTOR               = 'autovacuum_scale_factor';
   public const AUTOVACUUM_VACUUM_THRESHOLD           = 'autovacuum_vacuum_threshold';
   public const BEFORE                                = 'before';
+  public const BEGIN                                 = 'begin';
   public const BUFFERING                             = 'buffering';
+  public const BY                                    = 'by';
   public const BYPASSRLS                             = 'bypassrls';
   public const CACHE                                 = 'cache';
-  public const CALLED_ON_NULL_INPUT                  = 'called on null input';
+  public const CALLED                                = 'called';
   public const CASCADE                               = 'cascade';
   public const CAST                                  = 'cast';
-  public const CLUSTER_ON                            = 'cluster on';
+  public const CHECK                                 = 'check';
+  public const CHECK_OPTION                          = 'check_option';
+  public const CLASS_                                = 'class';
+  public const CLUSTER                               = 'cluster';
   public const COLLATE                               = 'collate';
   public const COLLATION                             = 'collation';
   public const COLUMN                                = 'column';
+  public const COMMIT                                = 'commit';
+  public const COMMITTED                             = 'committed';
+  public const CONFIGURATION                         = 'configuration';
   public const CONNECT                               = 'connect';
   public const CONNECTION                            = 'connection';
-  public const CONNECTION_LIMIT                      = 'connection limit';
+  public const CONNECTIONS                           = 'connections';
+  public const CONSTRAINT                            = 'constraint';
   public const CONVERSION                            = 'conversion';
   public const COPY_DATA                             = 'copy_data';
   public const COST                                  = 'cost';
@@ -61,76 +66,70 @@ class c_database_string {
   public const CREATEDB                              = 'createdb';
   public const CREATEROLE                            = 'createrole';
   public const CREATE_SLOT                           = 'create_slot';
-  public const CURRENT_USER                          = 'current user';
+  public const CURRENT                               = 'current';
   public const CYCLE                                 = 'cycle';
+  public const DATA                                  = 'data';
+  public const DATABASE                              = 'database';
   public const DEFAULT                               = 'default';
   public const DEFERRABLE                            = 'deferrable';
+  public const DEFERRED                              = 'deferred';
+  public const DEFINER                               = 'definer';
   public const DELETE                                = 'delete';
-  public const DEPENDS_ON_EXTENSION                  = 'depends on extension';
+  public const DEPENDS                               = 'depends';
   public const DESCEND                               = 'desc';
+  public const DICTIONARY                            = 'dictionary';
   public const DISABLE                               = 'disable';
-  public const DISABLE_RULE                          = 'disable rule';
-  public const DISABLE_TRIGGER                       = 'disable trigger';
   public const DOMAIN                                = 'domain';
   public const DROP                                  = 'drop';
-  public const DROP_ATTRIBUTE                        = 'drop attribute';
-  public const DROP_CONSTRAINT                       = 'drop constraint';
-  public const DROP_DEFAULT                          = 'drop default';
-  public const DROP_MAPPING                          = 'drop mapping';
-  public const DROP_TABLE                            = 'drop table';
   public const ENABLE                                = 'enable';
   public const ENABLED                               = 'enabled';
-  public const ENABLE_ALWAYS_RULE                    = 'enable always rule';
-  public const ENABLE_ALWAYS_TRIGGER                 = 'enable always trigger';
-  public const ENABLE_REPLICA_RULE                   = 'enable replica rule';
-  public const ENABLE_REPLICA_TRIGGER                = 'enable replica trigger';
-  public const ENABLE_RULE                           = 'enable rule';
-  public const ENABLE_TRIGGER                        = 'enable trigger';
-  public const EVENT_TRIGGER                         = 'event trigger';
+  public const ENCRYPTED                             = 'encypted';
+  public const EVENT                                 = 'event';
   public const EXECUTE                               = 'execute';
+  public const EXISTS                                = 'exists';
   public const EXTENDED                              = 'extended';
+  public const EXTENSION                             = 'extension';
   public const EXTERNAL                              = 'external';
   public const FALSE                                 = 'false';
+  public const FAMILY                                = 'family';
   public const FASTUPDATE                            = 'fastupdate';
   public const FILLFACTOR                            = 'fillfactor';
   public const FOR                                   = 'for';
-  public const FOREIGN_DATA_WRAPPER                  = 'foreign data wrapper';
-  public const FOREIGN_TABLE                         = 'foreign table';
-  public const FOR_ORDER_BY                          = 'for order by';
-  public const FOR_ROLE                              = 'for role';
-  public const FOR_SEARCH                            = 'for search';
-  public const FOR_VALUES                            = 'for values';
-  public const FROM_CURRENT                          = 'from current';
+  public const FOREIGN                               = 'foreign';
+  public const FROM                                  = 'from';
   public const FULL                                  = 'full';
   public const FUNCTION                              = 'function';
+  public const FUNCTIONS                             = 'functons';
   public const GRANT                                 = 'grant';
-  public const GRANT_OPTION_FOR                      = 'grant option for';
   public const GROUP                                 = 'group';
-  public const GROUP_BY                              = 'group by';
   public const GIN_PENDING_LIST_LIMIT                = 'gin_pending_list_limit';
   public const HANDLER                               = 'handler';
-  public const IF_EXISTS                             = 'if exists';
-  public const IF_NOT_EXISTS                         = 'if not exists';
+  public const IDENTITY                              = 'identity';
+  public const IF                                    = 'if';
+  public const IMMEDIATE                             = 'immediate';
   public const IMMUTABLE                             = 'immutable';
   public const IN                                    = 'in';
-  public const IN_DATABASE                           = 'in database';
+  public const INDEX                                 = 'index';
   public const INOUT                                 = 'inout';
-  public const IN_SCHEMA                             = 'in schema';
+  public const INPUT                                 = 'input';
+  public const INVOKER                               = 'invoker';
   public const INHERIT                               = 'inherit';
-  public const INITIALLY_DEFERRED                    = 'initially deferred';
-  public const INITIALLY_IMMEDIATE                   = 'initially immediate';
+  public const INITIALLY                             = 'initially';
   public const INSERT                                = 'insert';
+  public const ISOLATION                             = 'isolation';
   public const IS_TEMPLATE                           = 'is_template';
   public const LANGUAGE                              = 'language';
   public const LEAKPROOF                             = 'leakproof';
+  public const LEVEL                                 = 'level';
+  public const LIMIT                                 = 'limit';
+  public const LOGGED                                 = 'logged';
   public const LOGIN                                 = 'login';
   public const LOG_AUTOVACUUM_MIN_DURATION           = 'log_autovacuum_min_duration';
   public const MAIN                                  = 'main';
   public const MAPPING                               = 'mapping';
-  public const MAPPING_FOR                           = 'mapping for';
-  public const MAPPING_REPLACE                       = 'mapping replace';
-  public const MATERIALIZED_VIEW                     = 'materialized view';
+  public const MATERIALIZED                          = 'materialized';
   public const MAXVALUE                              = 'maxvalue';
+  public const METHOD                                = 'method';
   public const MINVALUE                              = 'minvalue';
   public const N_DISTINCT                            = 'n_distinct';
   public const N_DISTINCT_INHERITED                  = 'n_distinct_inherited';
@@ -143,101 +142,88 @@ class c_database_string {
   public const NOREPLICATION                         = 'noreplication';
   public const NOSUPERUSER                           = 'nosuperuser';
   public const NOTHING                               = 'nothing';
-  public const NOWAIT                               = 'nowait';
-  public const NO_HANDLER                            = 'no handler';
-  public const NO_INHERIT                            = 'no inherit';
-  public const NO_VALIDATOR                          = 'no validator';
-  public const NOT_DEFERRABLE                        = 'not deferrable';
-  public const NOT_LEAKPROOF                         = 'not leakproof';
-  public const NOT_OF                                = 'not of';
-  public const NOT_NULL                              = 'not null';
-  public const NOT_VALID                             = 'not valid';
-  public const ON_FUNCTIONS                          = 'on functons';
-  public const ON_SCHEMAS                            = 'on schemas';
-  public const ON_SEQUENCES                          = 'on sequences';
-  public const ON_TABLES_TO                          = 'on tables to';
-  public const ON_TYPES                              = 'on types';
+  public const NOWAIT                                = 'nowait';
+  public const NOT                                   = 'not';
+  public const NULL                                  = 'null';
+  public const OF                                    = 'of';
+  public const OIDS                                  = 'oids';
+  public const ON                                    = 'on';
   public const ONLY                                  = 'only';
   public const OPERATOR                              = 'operator';
-  public const OPERATOR_CLASS                        = 'operator class';
-  public const OPERATOR_FAMILY                       = 'operator family';
+  public const OPTION                                = 'option';
   public const OPTIONS                               = 'options';
-  public const ORDER_BY                              = 'order by';
+  public const ORDER                                 = 'order';
   public const OUT                                   = 'out';
-  public const OWNED_BY                              = 'owned by';
-  public const OWNER_TO                              = 'owner to';
+  public const OWNED                                 = 'owned';
   public const PAGES_PER_RANGE                       = 'pages_per_range';
   public const PARALLEL                              = 'parallel';
   public const PARALLEL_WORKERS                      = 'parallel_workers';
+  public const PARSER                                = 'parser';
+  public const PARTITION                             = 'partition';
   public const PASSWORD                              = 'password';
-  public const PASSWORD_ENCRYPTED                    = 'encypted password';
   public const PLAIN                                 = 'plain';
   public const PROCEDURAL                            = 'procedural';
   public const PUBLIC                                = 'public';
+  public const PUBLICATION                           = 'publication';
   public const PUBLISH                               = 'publish';
+  public const READ                                  = 'read';
   public const REFERENCES                            = 'references';
   public const REFRESH                               = 'refresh';
-  public const REFRESH_PUBLICATION                   = 'refresh publication';
-  public const REFRESH_VERSION                       = 'refresh version';
-  public const RENAME_ATTRIBUTE                      = 'rename attribute';
-  public const RENAME_COLUMN                         = 'rename column';
-  public const RENAME_CONSTRAINT                     = 'rename constraint';
-  public const RENAME_TO                             = 'rename to';
-  public const REPLICA_IDENTITY                      = 'replica identity';
+  public const RENAME                                = 'rename';
+  public const REPEATABLE                            = 'repeatable';
+  public const REPLACE                               = 'replace';
+  public const REPLICA                               = 'replica';
   public const REPLICATION                           = 'replication';
   public const RESET                                 = 'reset';
-  public const RESET_ALL                             = 'reset all';
-  public const RESET_PUBLICATION                     = 'reset publication';
-  public const RESTART_WITH                          = 'restart with';
+  public const RESTART                               = 'restart';
   public const RESTRICT                              = 'restrict';
   public const RESTRICTED                            = 'restricted';
-  public const RETURNS_NULL_ON_NULL_INPUT            = 'returns null on null input';
+  public const RETURNS                               = 'returns';
   public const REVOKE                                = 'revoke';
   public const ROLE                                  = 'role';
+  public const ROLLBACK                              = 'rollback';
+  public const ROW                                   = 'row';
   public const ROWS                                  = 'rows';
-  public const ROW_LEVEL_SECURITY                    = 'row level security';
+  public const RULE                                  = 'rule';
   public const SAFE                                  = 'safe';
   public const SCHEMA                                = 'schema';
-  public const SECURITY_DEFINER                      = 'security definer';
-  public const SECURITY_INVOKER                      = 'security invoker';
+  public const SCHEMAS                               = 'schemas';
+  public const SEARCH                                = 'search';
+  public const SECURITY                              = 'security';
+  public const SECURITY_BARRIER                      = 'security_barrier';
   public const SELECT                                = 'select';
   public const SEQUENCE                              = 'sequence';
+  public const SEQUENCES                             = 'sequences';
+  public const SERIALIZABLE                          = 'serializable';
   public const SERVER                                = 'server';
-  public const SESSION_USER                          = 'session user';
+  public const SESSION                               = 'session';
   public const SET                                   = 'set';
-  public const SET_DATA                              = 'set data';
-  public const SET_DATA_TYPE                         = 'set data type';
-  public const SET_DEFAULT                           = 'set default';
-  public const SET_LOGGED                            = 'set logged';
-  public const SET_PUBLICATION                       = 'set publication';
-  public const SET_SCHEMA                            = 'set schema';
-  public const SET_STATISTICS                        = 'set statistics';
-  public const SET_STORAGE                           = 'set storage';
-  public const SET_TABLE                             = 'set table';
-  public const SET_TABLESPACE                        = 'set tablespace';
-  public const SET_UNLOGGED                          = 'set unlogged';
-  public const SET_WITH_OIDS                         = 'set with oids';
-  public const SET_WITHOUT_CLUSTER                   = 'set without cluster';
-  public const SET_WITHOUT_OIDS                      = 'set without oids';
   public const SLOT_NAME                             = 'slot_name';
+  public const SNAPSHOT                              = 'snapshot';
   public const STABLE                                = 'stable';
-  public const START_WITH                            = 'start with';
+  public const START                                 = 'start';
+  public const STATISTICS                            = 'statistics';
+  public const STORAGE                               = 'storage';
   public const STRICT                                = 'strict';
   public const SUPERUSER                             = 'superuser';
   public const SYNCHRONOUS_COMMIT                    = 'synchronous_commit';
   public const TABLE                                 = 'table';
-  public const TEXT_SEARCH_CONFIGURATION             = 'text search configuration';
-  public const TEXT_SEARCH_DICTIONARY                = 'text search dictionary';
-  public const TEXT_SEARCH_PARSER                    = 'text search parser';
-  public const TEXT_SEARCH_TEMPLATE                  = 'text search template';
-  public const TRANSFORM_FOR                         = 'transform for';
+  public const TABLES                                = 'tables';
+  public const TABLESPACE                            = 'tablespace';
+  public const TEMPLATE                              = 'template';
+  public const TEXT                                  = 'text';
+  public const TRANSACTION                           = 'transaction';
+  public const TRANSFORM                             = 'transform';
   public const TRIGGER                               = 'trigger';
   public const TRUE                                  = 'true';
   public const TRUNCATE                              = 'truncate';
   public const TYPE                                  = 'type';
+  public const TYPES                                 = 'types';
   public const TO                                    = 'to';
-  public const TO_DEFAULT                            = 'to default';
+  public const UNCOMMITTED                           = 'uncommitted';
+  public const UNLOGGED                              = 'unlogged';
   public const UNSAFE                                = 'unsafe';
+  public const UNTIL                                 = 'until';
   public const UPDATE                                = 'update';
   public const USAGE                                 = 'usage';
   public const USER                                  = 'user';
@@ -245,17 +231,17 @@ class c_database_string {
   public const USER_CURRENT                          = 'current_user';
   public const USER_SESSION                          = 'session_user';
   public const USING                                 = 'using';
-  public const USING_INDEX                           = 'using index';
+  public const VALID                                 = 'valid';
+  public const VALIDATE                              = 'validate';
   public const VALIDATOR                             = 'validator';
-  public const VALIDATE_CONSTRAINT                   = 'validate constraint';
-  public const VALID_UNTIL                           = 'valid until';
+  public const VALUE                                 = 'value';
+  public const VALUES                                = 'values';
   public const VARIADIC                              = 'variadic';
   public const VERSION                               = 'version';
   public const VOLATILE                              = 'volatile';
   public const VIEW                                  = 'view';
+  public const WRAPPER                               = 'wrapper';
   public const WITH                                  = 'with';
-  public const WITH_DICTIONARY                       = 'with dictionary';
-  public const WITHOUT_CLUSTER                       = 'without cluster';
-  public const WITH_CHECK                            = 'with check';
-  public const WITH_GRANT_OPTION                     = 'with grant option';
+  public const WITHOUT                               = 'without';
+  public const WRITE                                 = 'write';
 }
diff --git a/common/database/enumerations/database_anaylze_option.php b/common/database/enumerations/database_anaylze_option.php
new file mode 100644 (file)
index 0000000..1ef834b
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+/**
+ * @file
+ * Provides enumeration classes for managing codes used for generating specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+/**
+ * Codes associated with database analyze options.
+ */
+class e_database_analyze_option {
+  public const NONE    = 0;
+  public const VERBOSE = 1;
+}
diff --git a/common/database/enumerations/database_set_column_default.php b/common/database/enumerations/database_set_column_default.php
new file mode 100644 (file)
index 0000000..f49c8da
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * @file
+ * Provides enumeration classes for managing codes used for generating specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+/**
+ * Codes associated with SET/DROP DEFAULT for columns and related queries.
+ */
+class e_database_set_column_default {
+  public const NONE = 0;
+  public const DROP = 1;
+  public const SET  = 2;
+}
diff --git a/common/database/enumerations/database_transaction_action.php b/common/database/enumerations/database_transaction_action.php
new file mode 100644 (file)
index 0000000..c454f63
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * @file
+ * Provides enumeration classes for managing codes used for generating specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+/**
+ * Codes associated with postgresql transaction action information.
+ */
+class e_database_transaction_action {
+  public const NONE        = 0;
+  public const TRANSACTION = 1;
+  public const WORK        = 2;
+}
diff --git a/common/database/enumerations/database_transaction_mode.php b/common/database/enumerations/database_transaction_mode.php
new file mode 100644 (file)
index 0000000..c17b9f1
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * @file
+ * Provides enumeration classes for managing codes used for generating specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+/**
+ * Codes associated with postgresql transaction mode information.
+ */
+class e_database_transaction_mode {
+  public const NONE                             = 0;
+  public const DEFERRABLE                       = 1;
+  public const ISOLATION_LEVEL_REPEATABLE_READ  = 2;
+  public const ISOLATION_LEVEL_READ_COMMITTED   = 3;
+  public const ISOLATION_LEVEL_READ_UNCOMMITTED = 4;
+  public const ISOLATION_LEVEL_SERIALIZABLE     = 5;
+  public const NOT_DEFERRABLE                   = 6;
+  public const READ_WRITE                       = 7;
+  public const READ_ONLY                        = 8;
+}
diff --git a/common/database/enumerations/database_view_option.php b/common/database/enumerations/database_view_option.php
new file mode 100644 (file)
index 0000000..9ab315f
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * @file
+ * Provides enumeration classes for managing codes used for generating specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+/**
+ * Codes associated with postgresql view option information.
+ */
+class e_database_view_option {
+  public const NONE             = 0;
+  public const CHECK_OPTION     = 1;
+  public const SECURITY_BARRIER = 2;
+}
index 54f086a5c901eb87b4d5ea67bce83f3101ce9f5d..00cedf0eb1cd69f032ce1b2ad27b50f8d85e90fa 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action {
   protected $action;
 
   /**
-   * Set the settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The type action name.
index fc2cb7a7bb47387fae0fe66dcca16111365b53e0..026d4172eaeea47000b202e07a0004cf6c480157 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_action_add_column {
   protected $action_add_column;
 
   /**
-   * Set the action ADD COLUMN settings.
+   * Assign the settings.
    *
    * @param string|null $column_name
    *   The column name to use.
@@ -160,7 +160,7 @@ trait t_database_action_add_column {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_add_column() {
-    $value = c_database_string::ADD_COLUMN . ' ' . $this->action_add_column['column_name'] . ' ' . $this->action_add_column['data_type'];
+    $value = c_database_string::ADD . ' ' . c_database_string::COLUMN . ' ' . $this->action_add_column['column_name'] . ' ' . $this->action_add_column['data_type'];
     if (!is_null($this->action_add_column['collate'])) {
       $value .= ' ' . $this->action_add_column['collate'];
     }
index 19aa2ac84e51b5e21461ab683f5db137a48469fc..62a87da02c9977742ddfc1d449366f8f66c55401 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_alter_column {
   protected $action_alter_column;
 
   /**
-   * Set the action ALTER COLUMN settings.
+   * Assign the settings.
    *
    * @param string|null $column_name
    *   The column name to use.
@@ -172,29 +172,29 @@ trait t_database_action_alter_column {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_alter_column() {
-    $value = c_database_string::ALTER_COLUMN . ' ' . $this->action_alter_column['column_name'];
+    $value = c_database_string::ALTER . ' ' . c_database_string::COLUMN . ' ' . $this->action_alter_column['column_name'];
 
     switch ($this->action_alter_column['type']) {
       case e_database_alter_column::DROP:
         $value .= ' ' . c_database_string::DROP;
         if ($this->action_alter_column['value']) {
-          $value .= ' ' . c_database_string::NOT_NULL;
+          $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::NULL;
         }
         break;
 
       case e_database_alter_column::SET:
         $value .= ' ' . c_database_string::SET;
         if ($this->action_alter_column['value']) {
-          $value .= ' ' . c_database_string::NOT_NULL;
+          $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::NULL;
         }
         break;
 
       case e_database_alter_column::DROP_DEFAULT:
-        $value .= ' ' . c_database_string::DROP_DEFAULT;
+        $value .= ' ' . c_database_string::DROP . ' ' . c_database_string::DEFAULT;
         break;
 
       case e_database_alter_column::SET_DATA:
-        $value .= ' ' . c_database_string::SET_DATA;
+        $value .= ' ' . c_database_string::SET . ' ' . c_database_string::DATA;
         $value .= ' ' . c_database_string::TYPE;
         $value .= ' ' . strval($this->action_alter_column['value']);
         if (isset($this->action_alter_column['value2'])) {
@@ -204,7 +204,7 @@ trait t_database_action_alter_column {
         break;
 
       case e_database_alter_column::SET_DEFAULT:
-        $value .= ' ' . c_database_string::SET_DEFAULT;
+        $value .= ' ' . c_database_string::SET . ' ' . c_database_string::DEFAULT;
         $value .= ' ' . strval($this->action_alter_column['value']);
         break;
 
@@ -214,7 +214,7 @@ trait t_database_action_alter_column {
         break;
 
       case e_database_alter_column::SET_STORAGE:
-        $value .= ' ' . c_database_string::SET_STORAGE;
+        $value .= ' ' . c_database_string::SET . ' ' . c_database_string::STORAGE;
         if ($this->action_alter_column['value'] === e_database_set_storage::EXTENDED) {
           $value .= ' ' . c_database_string::EXTENDED;
         }
index 600398d7ae8c0cfc802be4b179dab11d2c883ab9..1f71449e04ed6367b4d7bc6992f3dfe0e7505758 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_alter_column_options {
   protected $action_alter_column_options;
 
   /**
-   * Set the OPTIONS settings.
+   * Assign the settings.
    *
    * @param string|null $column_name
    *   The column name to use.
@@ -133,7 +133,7 @@ trait t_database_action_alter_column_options {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_alter_column_options() {
-    $value = c_database_string::ALTER_COLUMN . ' ' . $this->action_alter_column_options['column_name'] . ' ' . c_database_string::OPTIONS;
+    $value = c_database_string::ALTER . ' ' . c_database_string::COLUMN . ' ' . $this->action_alter_column_options['column_name'] . ' ' . c_database_string::OPTIONS;
 
     $values = [];
     foreach ($this->action_alter_column_options['values'] as $set) {
index 48fb46abd84d2f9b59396189ef6e45cf9ac6e2c5..311d1a5f0adc39dd23bf3978893272b6545f9d58 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_alter_column_reset {
   protected $action_alter_column_reset;
 
   /**
-   * Set the RESET attribute option settings.
+   * Assign the settings.
    *
    * @param string|null $column_name
    *   The column name to use.
@@ -100,7 +100,7 @@ trait t_database_action_alter_column_reset {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_alter_column_reset() {
-    $value = c_database_string::ALTER_COLUMN . ' ' . $this->action_alter_column_reset['column_name'] . ' ' . c_database_string::RESET;
+    $value = c_database_string::ALTER . ' ' . c_database_string::COLUMN . ' ' . $this->action_alter_column_reset['column_name'] . ' ' . c_database_string::RESET;
 
     $values = [];
     foreach ($this->action_alter_column_reset['values'] as $reset) {
index 40725c87af4be59387de83dca0bb13dd11c10f69..8cfbdd2b24838529e4f5e62e79f22d1e1114e028 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_alter_column_set {
   protected $action_alter_column_set;
 
   /**
-   * Set the SET attribute option settings.
+   * Assign the settings.
    *
    * @param string|null $column_name
    *   The column name to use.
@@ -117,7 +117,7 @@ trait t_database_action_alter_column_set {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_alter_column_set() {
-    $value = c_database_string::ALTER_COLUMN . ' ' . $this->action_alter_column_set['column_name'] . ' ' . c_database_string::SET;
+    $value = c_database_string::ALTER . ' ' . c_database_string::COLUMN . ' ' . $this->action_alter_column_set['column_name'] . ' ' . c_database_string::SET;
 
     $values = [];
     foreach ($this->action_alter_column_set['values'] as $set) {
index 3082f255b74fd103f69afafe8e78d7c0d382ff06..c3127d0cc4800cf161d020f01877b7f048d7d840 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_cluster_on {
   protected $action_cluster_on;
 
   /**
-   * Set the action CLUSTER ON settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The index name to use.
@@ -82,6 +82,6 @@ trait t_database_action_cluster_on {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_cluster_on() {
-    return c_database_string::CLUSTER_ON . ' ' . $this->action_cluster_on;
+    return c_database_string::CLUSTER . ' ' . c_database_string::ON . ' ' . $this->action_cluster_on;
   }
 }
index 501181e4fd266bbc1c44ba3ea02263b0a0adfdc5..30ae2ff38d0ad089eead4bbbe31ea0fe5e8fa744 100644 (file)
@@ -23,7 +23,7 @@ trait t_database_action_constraint {
   protected $action_constraint;
 
   /**
-   * Set the ADD/ALTER/VALIDATE/DROP action CONSTRAINT settings.
+   * Assign the settings.
    *
    * @param string|null $action_constraint_name
    *   The name to use.
@@ -161,33 +161,33 @@ trait t_database_action_constraint {
       $value = c_database_string::ADD . ' ' . $this->action_constraint['name'];
 
       if ($this->action_constraint['value']) {
-        $value .= ' ' . c_database_string::NOT_VALID;
+        $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::VALID;
       }
     }
     else if ($this->action_constraint['type'] === e_database_constraint::ALTER) {
-      $value = c_database_string::ALTER_CONSTRAINT . ' ' . $this->action_constraint['name'];
+      $value = c_database_string::ALTER . ' ' . c_database_string::CONSTRAINT . ' ' . $this->action_constraint['name'];
 
       if ($this->action_constraint['value'] === e_database_constraint_mode::DEFERRABLE) {
         $value .= ' ' . c_database_string::DEFERRABLE;
       }
       else if ($this->action_constraint['value'] === e_database_constraint_mode::INITIALLY_DEFERRED) {
-        $value .= ' ' . c_database_string::INITIALLY_DEFERRED;
+        $value .= ' ' . c_database_string::INITIALLY . ' ' . c_database_string::DEFERRED;
       }
       else if ($this->action_constraint['value'] === e_database_constraint_mode::INITIALLY_IMMEDIATE) {
-        $value .= ' ' . c_database_string::INITIALLY_IMMEDIATE;
+        $value .= ' ' . c_database_string::INITIALLY . ' ' . c_database_string::IMMEDIATE;
       }
       else if ($this->action_constraint['value'] === e_database_constraint_mode::NOT_DEFERRABLE) {
-        $value .= ' ' . c_database_string::NOT_DEFERRABLE;
+        $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::DEFERRABLE;
       }
     }
     else if ($this->action_constraint['type'] === e_database_constraint::DROP) {
-      $value = c_database_string::DROP_CONSTRAINT . ' ' . $this->action_constraint['name'];
+      $value = c_database_string::DROP . ' ' . c_database_string::CONSTRAINT . ' ' . $this->action_constraint['name'];
     }
     else if ($this->action_constraint['type'] === e_database_constraint::VALIDATE) {
       $value = c_database_string::VALIDATE_CONSTAINT;
 
       if ($this->action_constraint['value']) {
-        $value .= ' ' . c_database_string::NOT_VALID;
+        $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::VALID;
       }
 
       $value .=' ' . $this->action_constraint['name'];
index 7dedad236836905cd8f31cca8a30442f394e069e..f97a5d5a0f68c75689fc72abca13520b5b95755e 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_disable_rule {
   protected $action_disable_rule;
 
   /**
-   * Set the action DISABLE RULE value.
+   * Assign the settings.
    *
    * @param string|null $name
    *   A string representing the rule name.
@@ -84,6 +84,6 @@ trait t_database_action_disable_rule {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_disable_rule() {
-    return c_database_string::DISABLE_RULE . ' ' . $this->action_disable_rule;
+    return c_database_string::DISABLE . ' ' . c_database_string::RULE . ' ' . $this->action_disable_rule;
   }
 }
index 6e91e0e656f7e4807d7134135a83fd91ce7068e5..402455c8589a9a22309cea545a7e8eb52db7111a 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_disable_trigger {
   protected $action_disable_trigger;
 
   /**
-   * Set the action DISABLE TRIGGER value.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer representing the type of the trigger.
@@ -109,7 +109,7 @@ trait t_database_action_disable_trigger {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_disable_trigger() {
-    $value = c_database_string::DISABLE_TRIGGER;
+    $value = c_database_string::DISABLE . ' ' . c_database_string::TRIGGER;
 
     if ($this->action_disable_trigger['type'] === e_database_trigger::NAME) {
       if (is_string($this->action_disable_trigger['name'])) {
index 195d7176657d3384a62f79e46591c6958352a340..8d0635375a5d4448cf423c895367d4cfd09a674d 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_drop_column {
   protected $action_drop_column;
 
   /**
-   * Set the action DROP COLUMN settings.
+   * Assign the settings.
    *
    * @param string|null $column_name
    *   The column name to use.
index ee9f121af655dc02d036f4abb43b089462d78c76..d5f1c43a11fb60275542bad03a9d4f4df3b36dd6 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_enable_rule {
   protected $action_enable_rule;
 
   /**
-   * Set the action ENABLE RULE value.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer representing the type of the rule.
@@ -114,23 +114,23 @@ trait t_database_action_enable_rule {
     if ($this->action_enable_rule['type'] === e_database_rule::ALWAYS || $this->action_enable_rule['type'] === e_database_rule::REPLICA) {
       if (is_string($this->action_enable_rule['name'])) {
         if ($this->action_enable_rule['type'] === e_database_rule::ALWAYS) {
-          $value = c_database_string::ENABLE_ALWAYS_RULE . ' ' . $this->action_enable_rule['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::ALWAYS . ' ' . c_database_string::RULE . ' ' . $this->action_enable_rule['name'];
         }
         else if ($this->action_enable_rule['type'] === e_database_rule::REPLICA) {
-          $value = c_database_string::ENABLE_REPLICA_RULE . ' ' . $this->action_enable_rule['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::REPLICA . ' ' . c_database_string::RULE . ' ' . $this->action_enable_rule['name'];
         }
       }
     }
     else if ($this->action_enable_rule['type'] === e_database_rule::NAME) {
       if (is_string($this->action_enable_rule['name'])) {
-          $value = c_database_string::ENABLE_RULE . ' ' . $this->action_enable_rule['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::RULE . ' ' . $this->action_enable_rule['name'];
       }
     }
     else if ($this->action_enable_rule['type'] === e_database_rule::ALL) {
-      $value = c_database_string::ENABLE_RULE . ' ' . c_database_string::ALL;
+      $value = c_database_string::ENABLE . ' ' . c_database_string::RULE . ' ' . c_database_string::ALL;
     }
     else if ($this->action_enable_rule['type'] === e_database_rule::USER) {
-      $value = c_database_string::ENABLE_RULE . ' ' . c_database_string::USER;
+      $value = c_database_string::ENABLE . ' ' . c_database_string::RULE . ' ' . c_database_string::USER;
     }
 
     return $value;
index f779ea777e0888791cf32df574521b582717ce71..711019d160be9442f551441e287d39663d958e3e 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_enable_trigger {
   protected $action_enable_trigger;
 
   /**
-   * Set the action ENABLE TRIGGER value.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer representing the type of the trigger.
@@ -114,23 +114,23 @@ trait t_database_action_enable_trigger {
     if ($this->action_enable_trigger['type'] === e_database_trigger::ALWAYS || $this->action_enable_trigger['type'] === e_database_trigger::REPLICA) {
       if (is_string($this->action_enable_trigger['name'])) {
         if ($this->action_enable_trigger['type'] === e_database_trigger::ALWAYS) {
-          $value = c_database_string::ENABLE_ALWAYS_TRIGGER . ' ' . $this->action_enable_trigger['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::ALWAYS . ' ' . c_database_string::TRIGGER . ' ' . $this->action_enable_trigger['name'];
         }
         else if ($this->action_enable_trigger['type'] === e_database_trigger::REPLICA) {
-          $value = c_database_string::ENABLE_REPLICA_TRIGGER . ' ' . $this->action_enable_trigger['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::REPLICA . ' ' . c_database_string::TRIGGER . ' ' . $this->action_enable_trigger['name'];
         }
       }
     }
     else if ($this->action_enable_trigger['type'] === e_database_trigger::NAME) {
       if (is_string($this->action_enable_trigger['name'])) {
-          $value = c_database_string::ENABLE_TRIGGER . ' ' . $this->action_enable_trigger['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::TRIGGER . ' ' . $this->action_enable_trigger['name'];
       }
     }
     else if ($this->action_enable_trigger['type'] === e_database_trigger::ALL) {
-      $value = c_database_string::ENABLE_TRIGGER . ' ' . c_database_string::ALL;
+      $value = c_database_string::ENABLE . ' ' . c_database_string::TRIGGER . ' ' . c_database_string::ALL;
     }
     else if ($this->action_enable_trigger['type'] === e_database_trigger::USER) {
-      $value = c_database_string::ENABLE_TRIGGER . ' ' . c_database_string::USER;
+      $value = c_database_string::ENABLE . ' ' . c_database_string::TRIGGER . ' ' . c_database_string::USER;
     }
 
     return $value;
index a8384bc66c2c4e66b09cfd66f80fc62087fd4144..46ed7c344574f28f746b007a7d159799fd171663 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_mapping_for {
   protected $mapping_for;
 
   /**
-   * Set the MAPPING FOR settings.
+   * Assign the settings.
    *
    * Set all parameters to NULL to reset data to NULL.
    *
@@ -125,16 +125,16 @@ trait t_database_mapping_for {
     $value = NULL;
 
     if ($this->mapping_for['type'] === e_database_mapping_for::ADD) {
-      $value = c_database_string::ADD . ' ' . c_database_string::MAPPING_FOR;
+      $value = c_database_string::ADD . ' ' . c_database_string::MAPPING . ' ' . c_database_string::FOR;
     }
     else if ($this->mapping_for['type'] === e_database_mapping_for::ALTER) {
-      $value = c_database_string::ALTER . ' ' . c_database_string::MAPPING_FOR;
+      $value = c_database_string::ALTER . ' ' . c_database_string::MAPPING . ' ' . c_database_string::FOR;
     }
     else if ($this->mapping_for['type'] === e_database_mapping_for::DROP) {
-      $value = c_database_string::DROP_MAPPING;
+      $value = c_database_string::DROP . ' ' . c_database_string::MAPPING;
 
       if ($this->mapping_for['if_exists']) {
-        $value .= ' ' . c_database_string::IF_EXISTS;
+        $value .= ' ' . c_database_string::IF . ' ' . c_database_string::EXISTS;
       }
 
       $value .= ' ' . c_database_string::FOR;
index 1fa489b718a9dc677b1a9e97dc4ffccbb2055d75..f6f287598f7f9b1895e3b1bbcc4dc9f8822986e3 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_not_of {
   protected $action_not_of;
 
   /**
-   * Set the action NOT OF settings.
+   * Assign the settings.
    *
    * @param bool|null $not_of
    *   Set to TRUE to enable.
@@ -76,6 +76,6 @@ trait t_database_action_not_of {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_not_of() {
-    return $this->action_not_of ? c_database_string::NOT_OF : NULL;
+    return $this->action_not_of ? c_database_string::NOT . ' ' . c_database_string::OF : NULL;
   }
 }
index 9270153d6fde93c8adbabf7b900227c5addf6152..52a2885af673e87e5c073be5700eca699abdaabe 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_of {
   protected $action_of;
 
   /**
-   * Set the action OF settings.
+   * Assign the settings.
    *
    * @param string|null $type_name
    *   The of type name to set to.
index 953fc0d4bcd2193fc6a3fe385567282624062d85..9c96a3e3576631b9c2e3beb84aaf77049b562c57 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_options {
   protected $action_options;
 
   /**
-   * Set the in action_options.
+   * Assign the settings.
    *
    * @param string|null $type
    *   The option type to use.
index bf9db22a6fb1afded676bc0eb6bde090103c4d96..50d125ea4fcfdd8ff2fc33faf1e1c0672fbfa096 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_replica_identity {
   protected $action_replica_identity;
 
   /**
-   * Set the REPLICA IDENTITY attribute option settings.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer of e_database_replica_identity to use.
@@ -104,7 +104,7 @@ trait t_database_action_replica_identity {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_replica_identity() {
-    $value = c_database_string::REPLICA_IDENTITY;
+    $value = c_database_string::REPLICA . ' ' . c_database_string::IDENTITY;
 
     if ($this->action_replica_identity['type'] === e_database_replica_identity::DEFAULT) {
       $value .= ' ' . c_database_string::DEFAULT;
@@ -116,7 +116,7 @@ trait t_database_action_replica_identity {
       $value .= ' ' . c_database_string::NOTHING;
     }
     else if ($this->action_replica_identity['type'] === e_database_replica_identity::USING_INDEX) {
-      $value .= ' ' . c_database_string::USING_INDEX;
+      $value .= ' ' . c_database_string::USING . ' ' . c_database_string::INDEX;
       $value .= ' ' . $this->action_replica_identity['name'];
     }
 
index eeaa348b0f3b28fbcb0455ffac8f8b3ef3055976..674d9213684a92d8bf1b25a4d070ef33841fe565 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_action_row_level_security {
   protected $action_row_level_security;
 
   /**
-   * Set the ROW LEVEL SECURITY attribute option settings.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer of e_database_row_level_security to use.
@@ -90,7 +90,7 @@ trait t_database_action_row_level_security {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_row_level_security() {
-    $value = c_database_string::REPLICA_IDENTITY;
+    $value = c_database_string::REPLICA . ' ' . c_database_string::IDENTITY;
 
     if ($this->action_row_level_security['type'] === e_database_row_level_security::DISABLE) {
       $value .= ' ' . c_database_string::DISABLE;
@@ -105,7 +105,7 @@ trait t_database_action_row_level_security {
       $value .= ' ' . c_database_string::NO_FORCE;
     }
 
-    $value .= ' ' . c_database_string::ROW_LEVEL_SECURITY;
+    $value .= ' ' . c_database_string::ROW . ' ' . c_database_string::LEVEL . ' ' . c_database_string::SECURITY;
     return $value;
   }
 }
index 4cc695630e3328e36f8adc2228be3924663e994d..e51233a0ba0d427d0ce6c8a1c43dd4343b493833 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_action_set_logged {
   protected $action_set_logged;
 
   /**
-   * Set the action SET LOGGED / SET UNLOGGED settings.
+   * Assign the settings.
    *
    * @param bool|null $logged
    *   Set to TRUE for logged.
@@ -75,9 +75,9 @@ trait t_database_action_set_logged {
    */
   protected function p_do_build_action_set_logged() {
     if ($this->action_set_logged) {
-      return c_database_string::SET_LOGGED;
+      return c_database_string::SET . ' ' . c_database_string::LOGGED;
     }
 
-    return c_database_string::SET_UNLOGGED;
+    return c_database_string::SET . ' ' . c_database_string::UNLOGGED;
   }
 }
index cbb425b9af6344fea3d1f2761fa695773e8dd667..d56fec48bce2db7c1488835c43886e8a42b57d6b 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_set_tablespace {
   protected $action_set_tablespace;
 
   /**
-   * Set the action SET TABLESPACE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The tablespace name to set to.
@@ -82,6 +82,6 @@ trait t_database_action_set_tablespace {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_set_tablespace() {
-    return c_database_string::SET_TABLESPACE . ' ' . $this->action_set_tablespace;
+    return c_database_string::SET . ' ' . c_database_string::TABLESPACE . ' ' . $this->action_set_tablespace;
   }
 }
index 590fa47bed693688cb04073c543716f3a858e8b4..b6d81c12294fed0d0045ca1c9cb1d606e4e85940 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_action_without_cluster {
   protected $action_without_cluster;
 
   /**
-   * Set the WITHOUT CLUSTER value.
+   * Assign the settings.
    *
    * @param bool|null $without_cluster
    *   Set to TRUE for WITHOUT CLUSTER.
@@ -76,6 +76,6 @@ trait t_database_action_without_cluster {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_action_without_cluster() {
-    return $this->action_without_cluster ? c_database_string::WITHOUT_CLUSTER : NULL;
+    return $this->action_without_cluster ? c_database_string::WITHOUT . ' ' . c_database_string::CLUSTER : NULL;
   }
 }
index f73ca7813a2790170aeabc13cf7191a845651e51..59c2010e2dd4453e6788de41183471fdca637aa2 100644 (file)
@@ -22,7 +22,7 @@ trait t_database_add_operator_family {
   protected $add_operator_family;
 
   /**
-   * Set the add user or drop user.
+   * Assign the settings.
    *
    * @param bool|null $add
    *   Set to TRUE for ADD OPERATOR.
@@ -248,13 +248,13 @@ trait t_database_add_operator_family {
 
       if ($add_operator_family['add'] && $add_operator_family['type'] === e_database_operator_family::OPERATOR) {
         if ($add_operator_family['for_type'] === e_database_operator_for::FOR_ORDER_BY) {
-          $value .= ' ' . c_database_string::FOR_ORDER_BY;
+          $value .= ' ' . c_database_string::FOR . ' ' . c_database_string::ORDER . ' ' . c_database_string::BY;
           if (isset($add_operator_family['sort_family_name'])) {
             $value .= ' ' . $add_operator_family['sort_family_name'];
           }
         }
         else if ($add_operator_family['for_type'] === e_database_operator_for::FOR_SEARCH) {
-          $value .= ' ' . c_database_string::FOR_SEARCH;
+          $value .= ' ' . c_database_string::FOR . ' ' . c_database_string::SEARCH;
         }
       }
 
index 2574a7bfe5e2c337dd54626066cef4e3fde7c286..e6458a8ee4fd8118b782ad2306fa6fc0873748d1 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_add_table {
   protected $add_table;
 
   /**
-   * Set the ADD TABLE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The table name.
@@ -106,7 +106,7 @@ trait t_database_add_table {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_add_table() {
-    $value = c_database_string::ADD_TABLE;
+    $value = c_database_string::ADD . ' ' . c_database_string::TABLE;
 
     if ($this->add_table['only']) {
       $value .= ' ' . c_database_string::ONLY;
index c92d24339e716815dfe6d897d7895405b9f681a0..2e5c9eb591ea48a9f0dd1d0a30cff8c1c112cda6 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_add_user {
   protected $add_user;
 
   /**
-   * Set the add user or drop user.
+   * Assign the settings.
    *
    * @param string|int|bool|null $name
    *   The user name (role name) to use.
index fd4ed3ad48482bbfd79ddaad8dd0641a04e4dcb1..76f42ea59c5070bb9c87f44119db3083cc1aefda 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_add_value {
   protected $add_value;
 
   /**
-   * Set the SET WITH OIDS value.
+   * Assign the settings.
    *
    * @param string|null $new_enum_value
    *   The enum value to use.
@@ -130,12 +130,12 @@ trait t_database_add_value {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_add_value() {
-    $value = c_database_string::ADD_VALUE;
+    $value = c_database_string::ADD . ' ' . c_database_string::VALUE;
     // @todo: confirm/deny whether or not the placeholder will be auto-quoted by PDO.
     $value .= ' \'' . $this->add_value['new_enum_value'] . '\'';
 
     if ($this->add_value['if_not_exists']) {
-      $value .= ' ' . c_database_string::IF_NOT_EXISTS;
+      $value .= ' ' . c_database_string::IF . ' ' . c_database_string::NOT . ' ' . c_database_string::EXISTS;
     }
 
     if (is_int($this->add_value['position'])) {
diff --git a/common/database/traits/database_alter_column.php b/common/database/traits/database_alter_column.php
new file mode 100644 (file)
index 0000000..ae41c86
--- /dev/null
@@ -0,0 +1,134 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/classes/database_string.php');
+
+require_once('common/database/enumerations/database_set_column_default.php');
+
+/**
+ * Provide the sql SET DEFAULT / DROP DEFAULT functionality.
+ */
+trait t_database_alter_column {
+  protected $alter_column;
+
+  /**
+   * Assign the settings.
+   *
+   * @param string|null $name
+   *   The column name to set to.
+   *   Set to NULL to disable.
+   * @param int|null $type
+   *   (optional) The e_database_set_column_default to assign.
+   *   Required when $name is not NULL.
+   * @param string|null $expression
+   *   (optional) The expression to use.
+   *   This may be required or ignored depending on $type.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_alter_column($name, $type = NULL, $expression = NULL) {
+    if (is_null($name)) {
+      $this->alter_column = NULL;
+      return new c_base_return_true();
+    }
+
+    if (!is_string($name)) {
+      $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'name', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+      return c_base_return_error::s_false($error);
+    }
+
+    switch ($type) {
+      case e_database_set_column_default::DROP:
+        $placeholder_expression = NULL;
+        break;
+
+      case e_database_set_column_default::SET:
+        if (!is_string($expression)) {
+          $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'expression', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+          return c_base_return_error::s_false($error);
+        }
+
+        $placeholder_expression = $this->add_placeholder($expression);
+        if ($placeholder_expression->has_error()) {
+          return c_base_return_error::s_false($placeholder_expression->get_error());
+        }
+
+        break;
+
+      default:
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'type', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+    }
+
+    $placeholder_name = $this->add_placeholder($name);
+    if ($placeholder_name->has_error()) {
+      unset($placeholder_expression);
+      return c_base_return_error::s_false($placeholder_name->get_error());
+    }
+
+    $this->alter_column = [
+      'name' => $placeholder_name,
+      'type' => $type,
+      'expression' => $placeholder_expression,
+    ];
+    unset($placeholder_name);
+    unset($placeholder_expression);
+
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned tablespace name to set to.
+   *
+   * @return c_base_return_array|c_base_return_null
+   *   An array of settings.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_alter_column() {
+    if (is_null($this->alter_column)) {
+      return new c_base_return_null();
+    }
+
+    if (is_array($this->alter_column)) {
+      return c_base_return_array::s_new($this->alter_column);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'alter_column', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_alter_column() {
+    $value = c_database_string::ALTER . ' ' . c_database_string::COLUMN . ' ' . $this->alter_column['name'];
+
+    if ($this->alter_column['type'] === e_database_set_column_default::DROP) {
+      $value .= ' ' . c_database_string::DROP . ' ' . c_database_string::DEFAULT;
+    }
+    else if ($this->alter_column['type'] === e_database_set_column_default::SET) {
+      $value .= ' ' . c_database_string::SET_DEFAULT;
+      $value .= ' ' . $this->alter_column['expression'];
+    }
+
+    return $value;
+  }
+}
diff --git a/common/database/traits/database_analyze_options.php b/common/database/traits/database_analyze_options.php
new file mode 100644 (file)
index 0000000..4830a36
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/classes/database_string.php');
+
+require_once('common/database/enumerations/database_analyze_option.php');
+
+/**
+ * Provide the sql ANALYZE options functionality.
+ */
+trait t_database_analyze_options {
+  protected $analyze_options;
+
+  /**
+   * Assign the settings.
+   *
+   * @param int|null $attribute_option
+   *   The attribute option code to assign.
+   *   Should be one of: e_database_analyze_option.
+   *   When both this and $name are NULL, then column reset is disabled.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_analyze_options($option) {
+    if (is_null($option)) {
+      $this->analyze_options = NULL;
+      return new c_base_return_true();
+    }
+
+    switch ($option) {
+      case e_database_analyze_option::VERBOSE:
+        break;
+      case NULL:
+        break;
+      default:
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'option', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+    }
+
+    if (!is_array($this->analyze_options)) {
+      $this->analyze_options = [];
+    }
+
+    $this->analyze_options[] = $option;
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return c_base_return_array|c_base_return_null
+   *   An array of codes representing the argument_type on success.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_analyze_options() {
+    if (is_null($this->analyze_options)) {
+      return new c_base_return_null();
+    }
+
+    if (is_array($this->analyze_options)) {
+      return c_base_return_array::s_new($this->analyze_options);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'analyze_options', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_analyze_options() {
+    $values = [];
+    foreach ($this->analyze_options as $analyze_option) {
+      if ($analyze_option === e_database_attribute_option::VERBOSE) {
+        $values[] = c_database_string::VERBOSE;
+      }
+    }
+    unset($analyze_option);
+
+    return implode(', ', $values);
+  }
+}
index 6444d6daf4b9100f490106ce13bc9ffd1d805de5..b771efad042ec4f1e21d537060d8c0335eb48b15 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_argument_type {
   protected $argument_type;
 
   /**
-   * Set the argument type settings.
+   * Assign the settings.
    *
    * @param string|null $argument_type
    *   The argument type to assign.
index c418da1935220f1c006017f003d6de7bd06f29bc..5d95d1c776fa552a67b831cca8d083b49017b0e8 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_as_data_type {
   protected $as_data_type;
 
   /**
-   * Set the AS data type settings.
+   * Assign the settings.
    *
    * @param string|null $type
    *   The data type to use.
index b4645bcc97151a20652215533d10e495d281dc3b..0f01811b6a77d81be71203d807a41359c2c77901 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_attach_partition {
   protected $attach_partition;
 
   /**
-   * Set the ATTACH PARTITION settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The partition name to use.
@@ -99,6 +99,6 @@ trait t_database_attach_partition {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_attach_partition() {
-    return c_database_string::ATTACH_PARTITION . ' ' . $this->attach_partition['name'] . ' ' . c_database_string::FOR_VALUES . ' ' . $this->attach_partition['bound_spec'];
+    return c_database_string::ATTACH . ' ' . c_database_string::PARTITION . ' ' . $this->attach_partition['name'] . ' ' . c_database_string::FOR . ' ' . c_database_string::VALUES . ' ' . $this->attach_partition['bound_spec'];
   }
 }
diff --git a/common/database/traits/database_begin.php b/common/database/traits/database_begin.php
new file mode 100644 (file)
index 0000000..c9fe7a5
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/classes/database_string.php');
+
+require_once('common/database/enumerations/database_transaction_action.php');
+
+/**
+ * Provide the sql BEGIN functionality.
+ */
+trait t_database_begin {
+  protected $begin;
+
+  /**
+   * Assign the settings.
+   *
+   * @param int|null $begin
+   *   The begin code from e_database_transaction_action.
+   *   Set to NULL to disable.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_begin($begin) {
+    if (is_null($begin)) {
+      $this->begin = NULL;
+      return new c_base_return_true();
+    }
+
+    switch ($begin) {
+      case e_database_transaction_action::TRANSACTION:
+      case e_database_transaction_action::WORK:
+        break;
+
+      default:
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'begin', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+    }
+
+    $this->begin = $begin;
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return c_base_return_int|c_base_return_null
+   *   A e_database_transaction_action on success.
+   *   NULL is returned if not set (begin is not to be used).
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_begin() {
+    if (is_null($this->begin)) {
+      return new c_base_return_null();
+    }
+
+    if (is_int($this->begin)) {
+      return c_base_return_int::s_new($this->begin);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'begin', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_begin() {
+    $value = NULL;
+    if ($this->begin === e_database_transaction_action::TRANSACTION) {
+      $value = c_database_string::TRANSACTION;
+    }
+    else if ($this->begin === e_database_transaction_action::WORK) {
+      $value = c_database_string::WORK;
+    }
+
+    return $value;
+  }
+}
index c2d8a7c8b74aa7527067d0ab0a78ca1b55b7d707..08178bbadf9538228a9c64a5632acec8c9c82614 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_cache {
   protected $cache;
 
   /**
-   * Set the CACHE settings.
+   * Assign the settings.
    *
    * @param int|null $sequence
    *   The cache sequence number to use.
index cb49b5572c39fd134f19d063048c0bd218ffdc90..e972ac51bb81382f693c4308071f477f240eb3a0 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_cascade {
   protected $cascade;
 
   /**
-   * Set the HANDLER settings.
+   * Assign the settings.
    *
    * @param int|null $cascade
    *   The integer representing cascade/no-cascade.
index 190d95da7f5849b128a6a08582907f76fd5bb0e9..264b9633b3a6a188130f821f049459c2b1fda8e2 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_cluster_on {
   protected $cluster_on;
 
   /**
-   * Set the CLUSTER ON settings.
+   * Assign the settings.
    *
    * @param string|null $index_name
    *   The index name to use.
@@ -80,6 +80,6 @@ trait t_database_cluster_on {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_cluster_on() {
-    return c_database_string::CLUSTER_ON . ' ' . strval($this->cluster_on);
+    return c_database_string::CLUSTER . ' ' . c_database_string::ON . ' ' . $this->cluster_on;
   }
 }
diff --git a/common/database/traits/database_column_names.php b/common/database/traits/database_column_names.php
new file mode 100644 (file)
index 0000000..f9e724f
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/classes/database_string.php');
+
+require_once('common/database/interfaces/database_query_placeholder.php');
+
+/**
+ * Provide the sql GROUP BY functionality.
+ */
+trait t_database_column_names {
+  protected $column_names;
+
+  /**
+   * Assign the settings.
+   *
+   * @param string|null $name
+   *   The column name to use.
+   *   Set to NULL to disable.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_column_names($name) {
+    if (is_null($name)) {
+      $this->column_names = NULL;
+      return new c_base_return_true();
+    }
+
+    if (!is_string($name)) {
+      $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'name', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+      return c_base_return_error::s_false($error);
+    }
+
+    if (!is_array($this->column_names)) {
+      $this->column_names = [];
+    }
+
+    $placeholder = $this->add_placeholder($name);
+    if ($placeholder->has_error()) {
+      return c_base_return_error::s_false($placeholder->get_error());
+    }
+
+    $this->column_names[] = $placeholder;
+    unset($placeholder);
+
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return c_base_return_array|c_base_return_null
+   *   An array of group by values or NULL if not defined.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_column_names() {
+    if (is_null($this->column_names)) {
+      return new c_base_return_null();
+    }
+
+    if (is_array($this->column_names)) {
+      return c_base_return_array::s_new($this->column_names);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'column_names', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_column_names() {
+    return implode(', ', $this->column_names);
+  }
+}
index 2167fd340f04c8cec6bed64b77053cd94adb67d5..6ca0abd18fa3c7c021fff911988c9f44e41797ba 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_column_reset {
   protected $column_reset;
 
   /**
-   * Set the COLUMN_RESET (attribute_option ...) settings.
+   * Assign the settings.
    *
    * @param int|null $attribute_option
    *   The attribute option code to assign.
@@ -83,7 +83,7 @@ trait t_database_column_reset {
   }
 
   /**
-   * Get the currently assigned COLUMN_RESET attribute option.
+   * Get the currently assigned settings.
    *
    * @return c_base_return_array|c_base_return_null
    *   An array of codes representing the argument_type on success.
index 915d1bc21dc0a3dbb34989a4de03961406eea7f0..093ab905056192e7bdc13b8adca54cd26310e4e2 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_column_set {
   protected $column_set;
 
   /**
-   * Set the SET index (attribute_option ...) settings.
+   * Assign the settings.
    *
    * @param int|null $attribute_option
    *   The attribute option code to assign.
@@ -92,7 +92,7 @@ trait t_database_column_set {
   }
 
   /**
-   * Get the currently assigned COLUMN .. SET index attribute option.
+   * Get the currently assigned settings.
    *
    * @return c_base_return_array|c_base_return_null
    *   An array containing the set index attribute option settings.
index 870fa57ac20fb8ec85e64f3f9511e174b484bf8d..8ce830b47940ccc31ac342880a5988b69ef6e4d4 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_column_set_statistics {
   protected $column_set_statistics;
 
   /**
-   * Set the COLUMN .. SET STATISTICS settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The column name.
@@ -93,6 +93,6 @@ trait t_database_column_set_statistics {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_column_set_statistics() {
-    return c_database_string::COLUMN . ' ' . $this->column_set_statistics['name'] . ' ' . c_database_string::SET_STATISTICS . ' ' . $this->column_set_statistics['value'];
+    return c_database_string::COLUMN . ' ' . $this->column_set_statistics['name'] . ' ' . c_database_string::SET . ' ' . c_database_string::STATISTICS . ' ' . $this->column_set_statistics['value'];
   }
 }
index 3c4e3ea160465b1ab5ffed8b64cf71ac7fca9130..f388f619c2e241d5c5f7a0f1f389199025de7693 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_column_set_storage {
   protected $column_set_storage;
 
   /**
-   * Set the COLUMN .. SET STORAGE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The column name.
index 06c44de855b9fb002d61fa24d4749a7ac41b3dd4..ae3c769b4a745b7e538c5bd6bc03347554a07848 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_connection {
   protected $connection;
 
   /**
-   * Set the CONNECTION settings.
+   * Assign the settings.
    *
    * @param string|null $value
    *   The connection information to use.
index 911d54505fe404e38e91bc7673e518f666a40bf5..fb8e7fdcd5077ef95ca645cb53c27cce56f0854c 100644 (file)
@@ -22,7 +22,7 @@ trait t_database_constraint {
   protected $constraint;
 
   /**
-   * Set the ADD/VALIDATE/DROP CONSTRAINT settings.
+   * Assign the settings.
    *
    * @param string|null $constraint_name
    *   The name to use.
@@ -143,17 +143,17 @@ trait t_database_constraint {
       $value = c_database_string::ADD . ' ' . $this->constraint['name']->get_name();
 
       if ($this->constraint['exists_or_invalid']) {
-        $value .= ' ' . c_database_string::NOT_VALID;
+        $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::VALID;
       }
     }
     else if ($this->constraint['type'] === e_database_constraint::DROP) {
-      $value = c_database_string::DROP_CONSTRAINT . ' ' . $this->constraint['name'];
+      $value = c_database_string::DROP . ' ' . c_database_string::CONSTRAINT . ' ' . $this->constraint['name'];
     }
     else if ($this->constraint['type'] === e_database_constraint::VALIDATE) {
       $value = c_database_string::VALIDATE_CONSTAINT;
 
       if ($this->constraint['exists_or_invalid']) {
-        $value .= ' ' . c_database_string::NOT_VALID;
+        $value .= ' ' . c_database_string::NOT . ' ' . c_database_string::VALID;
       }
 
       $value .=' ' . $this->constraint['name'];
index ccb7921dc6fb429da712fd8cccadebccf544b89c..3bfc7d925fc267b694d601c8ccf4abdbfa180304 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_cycle {
   protected $cycle;
 
   /**
-   * Set the CYCLE settings.
+   * Assign the settings.
    *
    * @param bool|null $cycle
    *   Set to TRUE for CYCLE.
index ffc7d388229b044ea55bb6061e5d999ec23c8b53..32e71aef4727b23c0556d4c19ba5a9c09584edc4 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_depends_on_extension {
   protected $depends_on_extension;
 
   /**
-   * Set the RENAME TO settings.
+   * Assign the settings.
    *
    * @param string|null $depends_on_extension
    *   The name to rename to.
@@ -75,6 +75,6 @@ trait t_database_depends_on_extension {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_depends_on_extension() {
-    return c_database_string::DEPENDS_ON_EXTENSION . ' ' . $this->depends_on_extension;
+    return c_database_string::DEPENDS . ' ' . c_database_string::ON . ' ' . c_database_string::EXTENSION . ' ' . $this->depends_on_extension;
   }
 }
index 13572a0f7a691c284e1c0a5a6654aa1b852e4240..753fa7170cce6a68546cb75314bcff5bb60d3324 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_detach_partition {
   protected $detach_partition;
 
   /**
-   * Set the ATTACH PARTITION settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The partition name to use.
@@ -99,6 +99,6 @@ trait t_database_detach_partition {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_detach_partition() {
-    return c_database_string::ATTACH_PARTITION . ' ' . $this->detach_partition['name'] . ' ' . c_database_string::FOR_VALUES . ' ' . $this->detach_partition['bound_spec'];
+    return c_database_string::ATTACH . ' ' . c_database_string::PARTITION . ' ' . $this->detach_partition['name'] . ' ' . c_database_string::FOR . ' ' . c_database_string::VALUES . ' ' . $this->detach_partition['bound_spec'];
   }
 }
index 22972860ead1b129286c63da868d914ba99f8895..6890d66732814d511107c8186009b348ea48d76d 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_disable {
   protected $disable;
 
   /**
-   * Set the DISABLE settings.
+   * Assign the settings.
    *
    * @param bool|null $disable
    *   Set to TRUE for DISABLE.
index 8c35bf42a0a1e6fe22c89f26a130ae074a2e8d55..74e39d437160121409baf13c0d89f933b6ce06ec 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_disable_trigger {
   protected $disable_trigger;
 
   /**
-   * Set the DISABLE TRIGGER value.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer representing the type of the trigger.
@@ -109,7 +109,7 @@ trait t_database_disable_trigger {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_disable_trigger() {
-    $value = c_database_string::DISABLE_TRIGGER;
+    $value = c_database_string::DISABLE . ' ' . c_database_string::TRIGGER;
 
     if ($this->disable_trigger['type'] === e_database_trigger::NAME) {
       if (is_string($this->disable_trigger['name'])) {
index d79d380e7fb7b0d7d03dd492004d98694a6cf523..21643318d6357cefb3f83bc1ae3111189791b22f 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_drop_value {
   protected $drop_value;
 
   /**
-   * Set the DROP TABLE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The table name.
@@ -106,7 +106,7 @@ trait t_database_drop_value {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_drop_value() {
-    $value = c_database_string::DROP_TABLE;
+    $value = c_database_string::DROP . ' ' . c_database_string::TABLE;
 
     if ($this->drop_value['only']) {
       $value .= ' ' . c_database_string::ONLY;
index 131b2a5cb5673f061078aad532bdbb9556b9271c..d3d3b4b454ebcacc4b70f7beab93ff1520de2a78 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_enable {
   protected $enable;
 
   /**
-   * Set the ENABLE settings.
+   * Assign the settings.
    *
    * @param bool|null $enable
    *   Set to TRUE for ENABLE.
index 90e838f75bfcd8134e501c5874b12f362dcfe895..5a20f11abe6db0bc656cf1b9f8db47caf60894f9 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_enable_trigger {
   protected $enable_trigger;
 
   /**
-   * Set the ENABLE TRIGGER value.
+   * Assign the settings.
    *
    * @param int|null $type
    *   An integer representing the type of the trigger.
@@ -114,23 +114,23 @@ trait t_database_enable_trigger {
     if ($this->enable_trigger['type'] === e_database_trigger::ALWAYS || $this->enable_trigger['type'] === e_database_trigger::REPLICA) {
       if (is_string($this->enable_trigger['name'])) {
         if ($this->enable_trigger['type'] === e_database_trigger::ALWAYS) {
-          $value = c_database_string::ENABLE_ALWAYS_TRIGGER . ' ' . $this->enable_trigger['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::ALWAYS . ' ' . c_database_string::TRIGGER . ' ' . $this->enable_trigger['name'];
         }
         else if ($this->enable_trigger['type'] === e_database_trigger::REPLICA) {
-          $value = c_database_string::ENABLE_REPLICA_TRIGGER . ' ' . $this->enable_trigger['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::REPLICA . ' ' . c_database_string::TRIGGER . ' ' . $this->enable_trigger['name'];
         }
       }
     }
     else if ($this->enable_trigger['type'] === e_database_trigger::NAME) {
       if (is_string($this->enable_trigger['name'])) {
-          $value = c_database_string::ENABLE_TRIGGER . ' ' . $this->enable_trigger['name'];
+          $value = c_database_string::ENABLE . ' ' . c_database_string::TRIGGER . ' ' . $this->enable_trigger['name'];
       }
     }
     else if ($this->enable_trigger['type'] === e_database_trigger::ALL) {
-      $value = c_database_string::ENABLE_TRIGGER . ' ' . c_database_string::ALL;
+      $value = c_database_string::ENABLE . ' ' . c_database_string::TRIGGER . ' ' . c_database_string::ALL;
     }
     else if ($this->enable_trigger['type'] === e_database_trigger::USER) {
-      $value = c_database_string::ENABLE_TRIGGER . ' ' . c_database_string::USER;
+      $value = c_database_string::ENABLE . ' ' . c_database_string::TRIGGER . ' ' . c_database_string::USER;
     }
 
     return $value;
index 058000fbf16cc20e00f2be04a354cdf4bce2195b..6ebc3a7043f30e7b376a95bb0bf09c64b5af43df 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_for_role {
   protected $for_role;
 
   /**
-   * Set the FOR ROLE value.
+   * Assign the settings.
    *
    * @param string|null $for_role
    *   Append a role name to the list.
@@ -85,6 +85,6 @@ trait t_database_for_role {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_for_role() {
-    return c_database_string::FOR_ROLE . ' ' . implode(', ', $this->for_role);
+    return c_database_string::FOR . ' ' . c_database_string::ROLE . ' ' . implode(', ', $this->for_role);
   }
 }
index 61af3a46ea74133380ec53956c07230b0b6de14b..e408722a73d3b8331b5600ac9342ee5deb00407d 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_function_action {
   protected $function_action;
 
   /**
-   * Set the argument type settings.
+   * Assign the settings.
    *
    * @param int|null $function_action
    *   The function action code to assign.
@@ -175,7 +175,7 @@ trait t_database_function_action {
     $values = [];
     foreach ($this->function_action as $function_action) {
       if ($function_action['type'] === e_database_function_action::CALLED_ON_NULL_INPUT) {
-        $values[] = c_database_string::CALLED_ON_NULL_INPUT;
+        $values[] = c_database_string::CALLED . ' ' . c_database_string::ON . ' ' . c_database_string::NULL . ' ' . c_database_string::INPUT;
       }
       else if ($function_action['type'] === e_database_function_action::COST) {
         $values[] = c_database_string::COST . ' ' . $function_action['parameter_1'];
@@ -187,7 +187,7 @@ trait t_database_function_action {
         $values[] = c_database_string::LEAKPROOF;
       }
       else if ($function_action['type'] === e_database_function_action::NOT_LEAKPROOF) {
-        $values[] = c_database_string::NOT_LEAKPROOF;
+        $values[] = c_database_string::NOT . ' ' . c_database_string::LEAKPROOF;
       }
       else if ($function_action['type'] === e_database_function_action::PARALLEL_RESTRICTED) {
         $values[] = c_database_string::PARALLEL_RESTRICTED;
@@ -202,19 +202,19 @@ trait t_database_function_action {
         $values[] = c_database_string::RESET;
       }
       else if ($function_action['type'] === e_database_function_action::RESET_ALL) {
-        $values[] = c_database_string::RESET_ALL;
+        $values[] = c_database_string::RESET . ' ' . c_database_string::ALL;
       }
       else if ($function_action['type'] === e_database_function_action::RETURNS_NULL_ON_NULL_INPUT) {
-        $values[] = c_database_string::RETURNS_NULL_ON_NULL_INPUT;
+        $values[] = c_database_string::RETURNS . ' ' . c_database_string::NULL . ' ' . c_database_string::ON . ' ' . c_database_string::NULL . ' ' . c_database_string::INPUT;
       }
       else if ($function_action['type'] === e_database_function_action::ROWS) {
         $values[] = c_database_string::ROWS . ' ' . $function_action['parameter_1'];
       }
       else if ($function_action['type'] === e_database_function_action::SECURITY_DEFINER) {
-        $values[] = c_database_string::SECURITY_DEFINER;
+        $values[] = c_database_string::SECURITY . ' ' . c_database_string::DEFINER;
       }
       else if ($function_action['type'] === e_database_function_action::SECURITY_INVOKER) {
-        $values[] = c_database_string::SECURITY_INVOKER;
+        $values[] = c_database_string::SECURITY . ' ' . c_database_string::INVOKER;
       }
       else if ($function_action['type'] === e_database_function_action::SET_EQUAL) {
         $value = is_null($function_action['parameter_2']) ? c_database_string::DEFAULT : $function_action['parameter_2'];
@@ -222,7 +222,7 @@ trait t_database_function_action {
         unset($value);
       }
       else if ($function_action['type'] === e_database_function_action::SET_FROM) {
-        $values[] = c_database_string::SET . ' ' . $function_action['parameter_1'] . ' ' . c_database_string::FROM_CURRENT;
+        $values[] = c_database_string::SET . ' ' . $function_action['parameter_1'] . ' ' . c_database_string::FROM . ' ' . c_database_string::CURRENT;
         unset($value);
       }
       else if ($function_action['type'] === e_database_function_action::SET_TO) {
index c863e2f2d2928804df08a00c67b57ec03c38c797..8cbd1ccb60ed807497905ac68e1a11f44302f0a2 100644 (file)
@@ -22,7 +22,7 @@ trait t_database_grant {
   protected $grant;
 
   /**
-   * Set the GRANT settings.
+   * Assign the settings.
    *
    * @param int|null $grant
    *   The grant/revoke code to assign.
index ed8a935eff8d5c60b80c35851a4fc91d73ad89a9..c85e38f85f4b8a0734ade5d84fc80c105d2782b4 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_grant_option_for {
   protected $grant_option_for;
 
   /**
-   * Set the GANT OPTION FOR value.
+   * Assign the settings.
    *
    * @param bool|null $grant_option_for
    *   Set to TRUE for GANT OPTION FOR.
@@ -76,6 +76,6 @@ trait t_database_grant_option_for {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_grant_option_for() {
-    return $this->grant_option_for ? c_database_string::GRANT_OPTION_FOR : NULL;
+    return $this->grant_option_for ? c_database_string::GRANT . ' ' . c_database_string::OPTION . ' ' . c_database_string::FOR : NULL;
   }
 }
index 862c541ab1c8568d429308a052df8ddd86366cdc..ac0866fc22b9da5e91c7d1192d0744bcafaca72c 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_group_by {
   protected $group_by;
 
   /**
-   * Set the GROUP BY settings.
+   * Assign the settings.
    *
    * @param string|null $group_by
    *   The name to group by.
@@ -87,6 +87,6 @@ trait t_database_group_by {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_group_by() {
-    return c_database_string::GROUP_BY . implode(', ', $this->group_by);
+    return c_database_string::GROUP . ' ' . c_database_string::BY . implode(', ', $this->group_by);
   }
 }
index 89a0db010dff0c9773bbacd989ee74614f5b355f..4d4f35056370194e2a23d02eeb1b9000b6ce17b3 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_handler {
   protected $handler;
 
   /**
-   * Set the HANDLER settings.
+   * Assign the settings.
    *
    * @param int|null $handler
    *   The integer representing handler/no-handler.
@@ -108,7 +108,7 @@ trait t_database_handler {
       }
     }
     else if ($this->handler['type'] === e_database_handler::NO_HANDLER) {
-      $value .= c_database_string::NO_HANDLER;
+      $value .= c_database_string::NO . ' ' . c_database_string::HANDLER;
     }
 
     return $value;
index 01f2dd88235ea0deb4c52df0d3b4258f455f1e1b..59e76ec020eb7aa20849b0dadad9b276040c4c1b 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_if_exists {
   protected $if_exists;
 
   /**
-   * Set the IF EXISTS value.
+   * Assign the settings.
    *
    * @param bool|null $if_exists
    *   Set to TRUE for 'IF EXISTS'.
index cad634536007a4872985f67905fdac29d3cc7622..a1de853223b0532236feb9e297f5a810263258f3 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_if_not_exists {
   protected $if_not_exists;
 
   /**
-   * Set the IF NOT EXISTS value.
+   * Assign the settings.
    *
    * @param bool|null $if_not_exists
    *   Set to TRUE for 'IF NOT EXISTS'.
index 8129fb316632b374e9e46433b8176664fb1a3d02..6e677d544516efab991e4e727311f09c8d2d26f8 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_in_database {
   protected $in_database;
 
   /**
-   * Set the IN DATABASE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The database name to use.
@@ -80,6 +80,6 @@ trait t_database_in_database {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_in_database() {
-    return c_database_string::IN_DATABASE . ' ' . $this->in_database;
+    return c_database_string::IN . ' ' . c_database_string::DATABASE . ' ' . $this->in_database;
   }
 }
index 574c824cb85077d0fcadec2e9a42905eb60438fa..b27cde02a82fb1d91a67fdff3fbadb9d0fb91aee 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_in_schema {
   protected $in_schema;
 
   /**
-   * Set the in schema, schema names.
+   * Assign the settings.
    *
    * @param string|null $schema_name
    *   The schema name to use.
@@ -86,6 +86,6 @@ trait t_database_in_schema {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_in_schema() {
-    return c_database_string::IN_SCHEMA . ' ' . implode(', ', $this->in_schema);
+    return c_database_string::IN . ' ' . c_database_string::SCHEMA . ' ' . implode(', ', $this->in_schema);
   }
 }
index 7dc754d6be1f782a86a77e540516a38352cd8bb0..224f028f307b859c874cbea1e4e7b010bdd980f9 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_increment_by {
   protected $increment_by;
 
   /**
-   * Set the INCREMENT BY settings.
+   * Assign the settings.
    *
    * @param int|null $by
    *   A positive or negative number to increment by.
index 3a0f5bfa30c2e6ffe30fecb47df687b30f76b2e6..2dace600feeccc5399fa5a27adb395abc3eb3669 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_inherit {
   protected $inherit;
 
   /**
-   * Set the INHERIT settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The table name to inherit from.
@@ -88,7 +88,7 @@ trait t_database_inherit {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_inherit() {
-    $value = $this->inherit['inherit'] ? c_database_string::INHERIT : c_database_string::NO_INHERIT;
+    $value = $this->inherit['inherit'] ? c_database_string::INHERIT : c_database_string::NO . ' ' . c_database_string::INHERIT;
     $value .= ' ' . $this->inherit['name'];
     return $value;
   }
index 2b7360bde1f519e4c09131fff20dd2dcaae6ec55..31edd0ce86cda3240dfda910cbf759f0eecf0637 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_max_value {
   protected $max_value;
 
   /**
-   * Set the MAXVALUE data type settings.
+   * Assign the settings.
    *
    * @param int|false|null $value
    *   A number representing the max value.
index 6b4194b0066dff23f5f35d1301299f2ceac82aa2..e7663ad5b8848753c4ed18a646e9eef3360ef787 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_min_value {
   protected $min_value;
 
   /**
-   * Set the MINVALUE data type settings.
+   * Assign the settings.
    *
    * @param int|false|null $value
    *   A number representing the min value.
index 6295191c1872749431fd9ffd32f2fb8f9754bcc5..563bd55c0f86049bc9c1df81fa25e726d8bf7899 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_name {
   protected $name;
 
   /**
-   * Set the NAME settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The name to use.
index 8be5ac3db5af447f97ca91385a95e667cc9fffc4..e7bdbb81978a99689b120211d9ca2fa9f7cef89d 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_no_wait {
   protected $no_wait;
 
   /**
-   * Set the NOWAIT value.
+   * Assign the settings.
    *
    * @param bool|null $no_wait
    *   Set to TRUE for NOWAIT.
index 09cca75aa4d8d6bb50e540484f9ccb8ce8b47b6a..3b4247391c5e883851a5c62708c4275a4b4847bb 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_oid {
   protected $oid;
 
   /**
-   * Set the OID settings.
+   * Assign the settings.
    *
    * @param string|null $oid
    *   The oid to use.
index 94e8a269bfbb761179ea08dde2aaffe8783c4a11..5f5c9810dbeb7adc6d907841fc7a4a85a8bb396c 100644 (file)
@@ -84,19 +84,19 @@ trait t_database_on {
     $value = NULL;
     switch($this->on) {
       case e_database_on::TABLES_TO:
-        $value .= c_database_string::ON_TABLES_TO;
+        $value .= c_database_string::ON . ' ' . c_database_string::TABLES . ' ' . c_database_string::TO;
         break;
       case e_database_on::SEQUENCES:
-        $value .= c_database_string::ON_SEQUENCES;
+        $value .= c_database_string::ON . ' ' . c_database_string::SEQUENCES;
         break;
       case e_database_on::FUNCTIONS:
-        $value .= c_database_string::ON_FUNCTIONS;
+        $value .= c_database_string::ON . ' ' . c_database_string::FUNCTIONS;
         break;
       case e_database_on::TYPES:
-        $value .= c_database_string::ON_TYPES;
+        $value .= c_database_string::ON . ' ' . c_database_string::TYPES;
         break;
       case e_database_on::SCHEMAS:
-        $value .= c_database_string::ON_SCHEMAS;
+        $value .= c_database_string::ON . ' ' . c_database_string::SCHEMAS;
         break;
     }
 
index 62f63a17895952184d033f020c0bd9996a6c5a27..d09d6066375a14e5ee4367d7f5e0ec29c227e25b 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_on_table {
   protected $on_table;
 
   /**
-   * Set the ON TABLE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The table name to use.
index 9a16244abe6d986f24fe620c56356ff267ec92b4..de4d5a8efd8cbcdc279f339ea6f4fba92fcaa83d 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_operand_left {
   protected $operand_left;
 
   /**
-   * Set the (left) operand settings.
+   * Assign the settings.
    *
    * @param int|string|null $type
    *   The operand to assign.
index be83e0bb66ed7679d116089725fe81ecec25b072..10a0fbaf5d84c861351a180741b56098448e0e41 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_operand_right {
   protected $operand_right;
 
   /**
-   * Set the (right) operand settings.
+   * Assign the settings.
    *
    * @param int|string|null $type
    *   The operand to assign.
index 185b67b53203d83c1a713a775766303e595d3230..325474938a12b9710c4ff2e5d9dc9fb7988b24fd 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_options {
   protected $options;
 
   /**
-   * Set the in options.
+   * Assign the settings.
    *
    * @param string|null $type
    *   The option type to use.
index 59e124198c74aa61edce627838be8f8fb490ea19..d3ae63a29a3864861dbda46f49669e53088ab0db 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_order_by {
   protected $order_by;
 
   /**
-   * Set the GROUP BY settings.
+   * Assign the settings.
    *
    * @param string|null $order_by
    *   The name to group by.
@@ -85,6 +85,6 @@ trait t_database_order_by {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_order_by() {
-    return c_database_string::ORDER_BY . ' ' . implode(', ', $this->order_by);
+    return c_database_string::ORDER . ' ' . c_database_string::BY . ' ' . implode(', ', $this->order_by);
   }
 }
index bc064b75148d97a888814849becdc131bfec716f..d72f2f9431dd55c8c2b12185b4814227c0b4aea7 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_owner_to {
   protected $owner_to;
 
   /**
-   * Set the OWNER TO settings.
+   * Assign the settings.
    *
    * @param int|null $owner_to
    *   The owner type to assign.
@@ -117,6 +117,6 @@ trait t_database_owner_to {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_owner_to() {
-    return c_database_string::OWNER_TO . ' ' . $this->owner_to['value'];
+    return c_database_string::OWNER . ' ' . c_database_string::TO . ' ' . $this->owner_to['value'];
   }
 }
index 293af919a58e0a12fce6da29503f8171f5d7ea10..887133ae34180f08c737a0a40a08c57cf4af86e7 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_procedural {
   protected $procedural;
 
   /**
-   * Set the PROCEDURAL value.
+   * Assign the settings.
    *
    * @param bool|null $procedural
    *   Set to TRUE for PROCEDURAL.
index 08e227b60e75a7f71c1e21d8f99321d786c5c592..56b049fa3c0fd2e3fc4fd7bf4614c4bad397d105 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_refresh_publication {
   protected $refresh_publication;
 
   /**
-   * Set the REFRESH PUBLICATION settings.
+   * Assign the settings.
    *
    * @param bool|null $refresh
    *   Set to TRUE to use REFRESH PUBLICATION.
@@ -71,7 +71,7 @@ trait t_database_refresh_publication {
    */
   protected function p_do_build_refresh_publication() {
     if ($this->refresh_publication) {
-      return c_database_string::REFRESH_PUBLICATION;
+      return c_database_string::REFRESH . ' ' . c_database_string::PUBLICATION;
     }
 
     return NULL;
index c7f6268e020ee9294d446e7febfad4a8ac4d6ca0..14e9df77564e06e12de76c2a096dec011d08f191 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_rename_attribute {
   protected $rename_attribute;
 
   /**
-   * Set the RENAME ATTRIBUTE settings.
+   * Assign the settings.
    *
    * @param string|null $from
    *   The name to rename from.
index aaea751c9263d8092313c89c6afe2fee4450bf43..15b2349d7b17a1fa921c2987532a2cfea4005ea7 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_rename_column {
   protected $rename_column;
 
   /**
-   * Set the RENAME COLUMN settings.
+   * Assign the settings.
    *
    * @param string|null $from_name
    *   The column name to rename from.
@@ -99,6 +99,6 @@ trait t_database_rename_column {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_rename_column() {
-    return c_database_string::RENAME_COLUMN . ' ' . $this->rename_column['from'] . ' ' . c_database_string::TO . ' ' . $this->rename_column['to'];
+    return c_database_string::RENAME . ' ' . c_database_string::COLUMN . ' ' . $this->rename_column['from'] . ' ' . c_database_string::TO . ' ' . $this->rename_column['to'];
   }
 }
index fa844ae2ea3a859839b1371e02e38fc2b09bc699..8985f19bb760bf00f649abe964ea735b09db988e 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_rename_constraint {
   protected $rename_constraint;
 
   /**
-   * Set the RENAME CONSTRAINT settings.
+   * Assign the settings.
    *
    * @param string|null $from_name
    *   The constraint name to rename from.
@@ -99,6 +99,6 @@ trait t_database_rename_constraint {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_rename_constraint() {
-    return c_database_string::RENAME_CONSTRAINT . ' ' . $this->rename_constraint['from'] . ' ' . c_database_string::TO . ' ' . $this->rename_constraint['to'];
+    return c_database_string::RENAME . ' ' . c_database_string::CONSTRAINT . ' ' . $this->rename_constraint['from'] . ' ' . c_database_string::TO . ' ' . $this->rename_constraint['to'];
   }
 }
index 6bcd4032d6ba276e033253504b2cbed9fce2bb86..87985b7549b160769335ba400cc6ee435912a714 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_rename_to {
   protected $rename_to;
 
   /**
-   * Set the RENAME TO settings.
+   * Assign the settings.
    *
    * @param string|null $rename_to
    *   The name to rename to.
@@ -82,6 +82,6 @@ trait t_database_rename_to {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_rename_to() {
-    return c_database_string::RENAME_TO . ' ' . $this->rename_to;
+    return c_database_string::RENAME . ' ' . c_database_string::TO . ' ' . $this->rename_to;
   }
 }
index dacd220d9160200737afa75414493a3076de9a1f..bf8c11e436f0d481960c7be7cc8e23d350b90316 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_rename_value {
   protected $rename_value;
 
   /**
-   * Set the RENAME VALUE settings.
+   * Assign the settings.
    *
    * @param string|null $from
    *   The name to rename from.
index cf399c7890abe3ad7d53b47a389937c8e8685fa7..c70ecbcf0d9b502093a433c3bbb9065d5e541236 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_reset_configuration_parameter {
   protected $reset_configuration_parameter;
 
   /**
-   * Set the RESET configuration_parameter settings.
+   * Assign the settings.
    *
    * @param int|null $type
    *   The reset code to assign.
index 24feadab20c4b2b0e58a3fab09b961f7c8459e01..58ea0915d73a6a3b78482f09ec6a9293162e1376 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_reset_storage_parameter {
   protected $reset_storage_parameter;
 
   /**
-   * Set the RESET (storage_parameter ...) settings.
+   * Assign the settings.
    *
    * @param int|null $storage_parameter
    *   The index storage_parameter code to assign.
diff --git a/common/database/traits/database_reset_view_option.php b/common/database/traits/database_reset_view_option.php
new file mode 100644 (file)
index 0000000..a133eb6
--- /dev/null
@@ -0,0 +1,103 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/enumerations/database_view_option.php');
+
+require_once('common/database/classes/database_string.php');
+
+/**
+ * Provide the sql RESET view option functionality.
+ */
+trait t_database_reset_view_option {
+  protected $reset_view_option;
+
+  /**
+   * Assign the settings.
+   *
+   * @param int|null $type
+   *   The view option type, one of e_database_view_option.
+   *   Set to NULL to disable.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_reset_view_option($type) {
+    if (is_null($type)) {
+      $this->reset_view_option = NULL;
+      return new c_base_return_true();
+    }
+
+    switch ($type) {
+      case e_database_view_option::CHECK_OPTION:
+      case e_database_view_option::SECURITY_BARRIER:
+        break;
+      default:
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'value', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+    }
+
+    if (!is_array($this->reset_view_option)) {
+      $this->reset_view_option = [];
+    }
+
+    $this->reset_view_option[] = [
+      'type' => $type,
+    ];
+
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned set configuration parameter settings.
+   *
+   * @return c_base_return_array|c_base_return_null
+   *   An array containing the settings.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_reset_view_option() {
+    if (is_null($this->reset_view_option)) {
+      return new c_base_return_null();
+    }
+
+    if (is_array($this->reset_view_option)) {
+      return c_base_return_array::s_new($this->reset_view_option);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'reset_view_option', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_reset_view_option() {
+    $values = [];
+    foreach ($this->reset_view_option as $value) {
+      if ($value['type'] === e_database_view_option::CHECK_OPTION) {
+        $values[] = c_database_string::CHECK_OPTION;
+      }
+      else if ($value['type'] === e_database_view_option::SECURITY_BARRIER) {
+        $values[] = c_database_string::SECURITY_BARRIER;
+      }
+    }
+
+    return c_database_string::RESET . ' (' . implode(', ', $values) . ')';
+  }
+}
index 06b8dd9d6420f32ac2ee8d14ee15c1459f7d1dc4..de5d40237610b2f58401e7dc6e40b3541467ed9a 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_restart_with {
   protected $restart_with;
 
   /**
-   * Set the RESTART WITH settings.
+   * Assign the settings.
    *
    * @param int|null $value
    *   A number representing the start with value.
@@ -78,6 +78,6 @@ trait t_database_restart_with {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_restart_with() {
-    return c_database_string::RESTART_WITH . ' ' . $this->restart_with;
+    return c_database_string::RESTART . ' ' . c_database_string::WITH . ' ' . $this->restart_with;
   }
 }
index 6b43eaa35a92f1ae5715252806449ad12f1463ed..e5aa7b116b4ce011ca416c7e2ea32cbba0cd552d 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_restrict {
   protected $restrict;
 
   /**
-   * Set the RESTRICT value.
+   * Assign the settings.
    *
    * @param bool|null $restrict
    *   Set to TRUE for RESTRICT.
index 79a782c6e7c87363a07567572603c2aa10061cb1..9224b0be14204b3619b0354bce7ad21b101ae5af 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_role_specification {
   protected $role_specification;
 
   /**
-   * Set the role specification.
+   * Assign the settings.
    *
    * @param int|string|null $name
    *   A string representing the role name to use.
index 44da055568110becb12c91261ccdc64a15f61b8c..1019c75c249075a6464f0668c583f2547ae9d5c1 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_server_name {
   protected $server_name;
 
   /**
-   * Set the SERVER settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The server name to use.
index 01d9f3234a724161f60cb4db958102610171e127..c4d3256b03d323509fc98045feba30df1b51782b 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_server_options {
   protected $server_options;
 
   /**
-   * Set the OPTIONS (...) settings.
+   * Assign the settings.
    *
    * @param int|null $option
    *   The server option code to assign.
index 520597bdf793c562de9a447c4dbad9bcc9eeea7b..d93e6455a17b6c32f5590d4bfce65145e46a1ebd 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_set_configuration_parameter {
   protected $set_configuration_parameter;
 
   /**
-   * Set the SET configuation parameter settings.
+   * Assign the settings.
    *
    * @param int|null $type
    *   The SET code to assign.
@@ -152,10 +152,10 @@ trait t_database_set_configuration_parameter {
       }
     }
     else if ($this->set_configuration_parameter['type'] == e_database_set::FROM_CURRENT) {
-      $value = c_database_string::SET . ' ' . $this->set_configuration_parameter['parameter'] . ' = ' . c_database_string::FROM_CURRENT;
+      $value = c_database_string::SET . ' ' . $this->set_configuration_parameter['parameter'] . ' = ' . c_database_string::FROM . ' ' . c_database_string::CURRENT;
     }
     else if ($this->set_configuration_parameter['type'] == e_database_set::TO_DEFAULT) {
-      $value = c_database_string::SET . ' ' . $this->set_configuration_parameter['parameter'] . ' ' . c_database_string::TO_DEFAULT;
+      $value = c_database_string::SET . ' ' . $this->set_configuration_parameter['parameter'] . ' ' . c_database_string::TO . ' ' . c_database_string::DEFAULT;
     }
 
     return $value;
index 60af5a0c98696463f286fb5c8c7251a8b3a26c2c..562e393cfbf437708d38d7d737d2bbaa327d9e2f 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_set_operator {
   protected $set_operator;
 
   /**
-   * Set the (operator) SET settings.
+   * Assign the settings.
    *
    * @param int|null $parameter
    *   The SET code to assign.
index 06f993de28f7c10bb900556acea44b9ca50c8195..8f16a832d51182d098a3af2c8c50e81dd976195b 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_set_publication_name {
   protected $set_publication_name;
 
   /**
-   * Set the SET PUBLICATION (name ...) settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The publication name.
@@ -79,6 +79,6 @@ trait t_database_set_publication_name {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_set_publication_name() {
-    return c_database_string::SET_PUBLICATION . ' ' . implode(', ', $this->set_publication_name);
+    return c_database_string::SET . ' ' . c_database_string::PUBLICATION . ' ' . implode(', ', $this->set_publication_name);
   }
 }
index 040efe0796a07b0cc57676c10a650f6369aad4f0..89bab5c10a964bd1daac7f7469bb470a3a2fdfe2 100644 (file)
@@ -22,7 +22,7 @@ trait t_database_set_publication_parameter {
   protected $set_publication_parameter;
 
   /**
-   * Set the SET (publication_parameter ...) settings.
+   * Assign the settings.
    *
    * @param int|null $parameter
    *   The publication parameter code to assign.
index 3fffb66c0c1d5a5e2e0582b8855d0ceb9596dbda..0824fc1f3658b4a636ff86708a03a5ed88520623 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_set_schema {
   protected $set_schema;
 
   /**
-   * Set the SET SCHEMA settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The schema name.
@@ -82,6 +82,6 @@ trait t_database_set_schema {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_set_schema() {
-    return c_database_string::SET_SCHEMA . ' ' . $this->set_schema;
+    return c_database_string::SET . ' ' . c_database_string::SCHEMA . ' ' . $this->set_schema;
   }
 }
index 48e002a48e46b463493ba81e5c083586132e2875..232dae9b0d720c84fd9c2baac55a636f15afdec3 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_set_storage_parameter {
   protected $set_storage_parameter;
 
   /**
-   * Set the SET index (storage_parameter ...) settings.
+   * Assign the settings.
    *
    * @param int|null $parameter
    *   The storage parameter code to assign.
index 89f761b60c44aea734600433a26e1eee12fb9956..33d63eb402411ebe027c1ac2fa7c347438643080 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_set_table {
   protected $set_table;
 
   /**
-   * Set the SET TABLE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The table name.
@@ -106,7 +106,7 @@ trait t_database_set_table {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_set_table() {
-    $value = c_database_string::SET_TABLE;
+    $value = c_database_string::SET . ' ' . c_database_string::TABLE;
 
     if ($this->set_table['only']) {
       $value .= ' ' . c_database_string::ONLY;
index 81dfc44e99390bbf1a9062e2f197a8ee396d3d93..c18504569a0a6438d42bc70a2022ae999adb4b87 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_set_tablespace {
   protected $set_tablespace;
 
   /**
-   * Set the SET TABLESPACE settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The tablespace name to set to.
@@ -82,6 +82,6 @@ trait t_database_set_tablespace {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_set_tablespace() {
-    return c_database_string::SET_TABLESPACE . ' ' . $this->set_tablespace;
+    return c_database_string::SET . ' ' . c_database_string::TABLESPACE . ' ' . $this->set_tablespace;
   }
 }
diff --git a/common/database/traits/database_set_view_option.php b/common/database/traits/database_set_view_option.php
new file mode 100644 (file)
index 0000000..303bab3
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/enumerations/database_view_option.php');
+
+require_once('common/database/classes/database_string.php');
+
+/**
+ * Provide the sql SET view option functionality.
+ */
+trait t_database_set_view_option {
+  protected $set_view_option;
+
+  /**
+   * Assign the settings.
+   *
+   * @param int|null $type
+   *   The view option type, one of e_database_view_option.
+   *   Set to NULL to disable.
+   * @param string|bool|null $value
+   *   (optional) The value to assign, if applicable.
+   *   The $type defines the data type of this.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_set_view_option($type, $value = NULL) {
+    if (is_null($type)) {
+      $this->set_view_option = NULL;
+      return new c_base_return_true();
+    }
+
+    if ($type === e_database_view_option::CHECK_OPTION) {
+      if (!is_string($value)) {
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'value', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+      }
+      $placeholder_value = $this->add_placeholder($parameter);
+      if ($placeholder_value->has_error()) {
+        return c_base_return_error::s_false($placeholder_value->get_error());
+      }
+    }
+    else if ($type === e_database_view_option::SECURITY_BARRIER) {
+      if (!is_bool($value)) {
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'value', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+      }
+
+      $placeholder_value = $bool;
+    }
+    else {
+      $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'type', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+      return c_base_return_error::s_false($error);
+    }
+
+    $set_view_option = [
+      'type' => $type,
+      'value' => $placeholder_value,
+    ];
+    unset($placeholder_value);
+
+    if (!is_array($this->set_view_option)) {
+      $this->set_view_option = [];
+    }
+
+    $this->set_view_option[] = $set_view_option;
+    unset($set_view_option);
+
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return c_base_return_array|c_base_return_null
+   *   An array containing the settings.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_set_view_option() {
+    if (is_null($this->set_view_option)) {
+      return new c_base_return_null();
+    }
+
+    if (is_array($this->set_view_option)) {
+      return c_base_return_array::s_new($this->set_view_option);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'set_view_option', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_set_view_option() {
+    $values = [];
+    foreach ($this->set_view_option as $value) {
+      if ($value['type'] === e_database_view_option::CHECK_OPTION) {
+        $values[] = c_database_string::CHECK_OPTION .' = ' . $value['value'];
+      }
+      else if ($value['type'] === e_database_view_option::SECURITY_BARRIER) {
+        $values[] = c_database_string::SECURITY_BARRIER;
+      }
+    }
+
+    return c_database_string::SET . ' (' . implode(', ', $values) . ')';
+  }
+}
index 4b6efd299ff403cd4f4fa46221a7901aef9f4078..a0b057d8bf7b8e208da0477bc4a0437207a681d5 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_set_with_oids {
   protected $set_with_oids;
 
   /**
-   * Set the SET WITH OIDS value.
+   * Assign the settings.
    *
    * @param bool|null $set_with_oids
    *   Set to TRUE for SET WITH OIDS.
@@ -46,7 +46,7 @@ trait t_database_set_with_oids {
   }
 
   /**
-   * Get the currently assigned set with oids status.
+   * Get the currently assigned settings.
    *
    * @return c_base_return_bool|c_base_return_null
    *   TRUE for SET WITH OIDS or FALSE for SET WITHOUT OIDS on success.
@@ -76,6 +76,6 @@ trait t_database_set_with_oids {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_set_with_oids() {
-    return $this->set_with_oids ? c_database_string::SET_WITH_OIDS : c_database_string::SET_WITHOUT_OIDS;
+    return $this->set_with_oids ? c_database_string::SET . ' ' . c_database_string::WITH . ' ' . c_database_string::OIDS : c_database_string::SET . ' ' . c_database_string::WITHOUT . ' ' . c_database_string::OIDS;
   }
 }
index 170cf763431d63a847d4d175bf8707fe1fabfe24..0a796e6b3cd6a280aca70d8d20c60ec30b61bcce 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_set_without_cluster {
   protected $set_without_cluster;
 
   /**
-   * Set the SET WITHOUT CLUSTER value.
+   * Assign the settings.
    *
    * @param bool|null $set_without_cluster
    *   Set to TRUE for SET WITHOUT CLUSTER.
@@ -46,7 +46,7 @@ trait t_database_set_without_cluster {
   }
 
   /**
-   * Get the currently assigned with grant option value.
+   * Get the currently assigned settings.
    *
    * @return c_base_return_bool|c_base_return_null
    *   TRUE for SET WITHOUT CLUSTER on success.
@@ -76,6 +76,6 @@ trait t_database_set_without_cluster {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_set_without_cluster() {
-    return $this->set_without_cluster ? c_database_string::SET_WITHOUT_CLUSTER : NULL;
+    return $this->set_without_cluster ? c_database_string::SET . ' ' . c_database_string::WITHOUT . ' ' . c_database_string::CLUSTER : NULL;
   }
 }
index 6f36e9afe261ffc1fff2a34eaf82adeef54affc2..ae6eef9d5f98febbb084f7cd51244c8b9e406ac2 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_start_with {
   protected $start_with;
 
   /**
-   * Set the START WITH settings.
+   * Assign the settings.
    *
    * @param int|null $value
    *   A number representing the start with value.
@@ -43,7 +43,7 @@ trait t_database_start_with {
   }
 
   /**
-   * Get the currently assigned start with value.
+   * Get the currently assigned settings.
    *
    * @return c_base_return_string|c_base_return_null
    *   A number representing the start with value.
@@ -73,6 +73,6 @@ trait t_database_start_with {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_start_with() {
-    return c_database_string::START_WITH . ' ' . $this->start_with;
+    return c_database_string::START . ' ' . c_database_string::WITH . ' ' . $this->start_with;
   }
 }
diff --git a/common/database/traits/database_table_name.php b/common/database/traits/database_table_name.php
new file mode 100644 (file)
index 0000000..d7a4f42
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+/**
+ * Provide the sql table name functionality.
+ */
+trait t_database_table_name {
+  protected $table_name;
+
+  /**
+   * Assign the settings.
+   *
+   * @param string|null $name
+   *   The table name to use.
+   *   Set to NULL to disable.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_table_name($name) {
+    if (is_null($name)) {
+      $this->table_name = NULL;
+      return new c_base_return_true();
+    }
+
+    if (is_string($name)) {
+      $placeholder = $this->add_placeholder($name);
+      if ($placeholder->has_error()) {
+        return c_base_return_error::s_false($placeholder->get_error());
+      }
+
+      $this->table_name = $placeholder;
+      unset($placeholder);
+
+      return new c_base_return_true();
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'name', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+    return c_base_return_error::s_false($error);
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return i_database_query_placeholder|c_base_return_null
+   *   A name query placeholder on success.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_table_name() {
+    if (is_null($this->table_name)) {
+      return new c_base_return_null();
+    }
+
+    if (isset($this->table_name)) {
+      return clone($this->table_name);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'table_name', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_table_name() {
+    return strval($this->table_name);
+  }
+}
index 6ef74995230decc7b650405af9f166dc81c4c255..338dcf6a2c89ead91bc4df61d72d82ac360acd5d 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_to_role {
   protected $to_role;
 
   /**
-   * Set the in schema, to roles.
+   * Assign the settings.
    *
    * @param int|null $role_type
    *   The role type to use.
@@ -74,7 +74,7 @@ trait t_database_to_role {
   }
 
   /**
-   * Get the in schema, to roles.
+   * Get the currently assigned settings.
    *
    * @return c_base_return_array|c_base_return_null
    *   An array of to role arrays or NULL if not defined.
diff --git a/common/database/traits/database_transaction_action.php b/common/database/traits/database_transaction_action.php
new file mode 100644 (file)
index 0000000..4f536c6
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/enumerations/database_transaction_action.php');
+
+require_once('common/database/classes/database_string.php');
+
+/**
+ * Provide the sql transaction action functionality.
+ */
+trait t_database_transaction_action {
+  protected $transaction_action;
+
+  /**
+   * Assign the settings.
+   *
+   * @param int|null $action
+   *   The action, one of e_database_transaction_action.
+   *   Set to NULL to disable.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_transaction_action($action) {
+    if (is_null($action)) {
+      $this->transaction_action = NULL;
+      return new c_base_return_true();
+    }
+
+    switch ($action) {
+      case e_database_transaction_action::TRANSACTION:
+      case e_database_transaction_action::WORK:
+        break;
+
+      default:
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'action', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+    }
+
+    $this->transaction_action = $action;
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return c_base_return_int|c_base_return_null
+   *   A code representing the setting.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_transaction_action() {
+    if (is_null($this->transaction_action)) {
+      return new c_base_return_null();
+    }
+
+    if (is_int($this->transaction_action)) {
+      return c_base_return_int::s_new($this->transaction_action);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'transaction_action', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_transaction_action() {
+    $value = NULL;
+
+    if ($this->transaction_action === e_database_transaction_action::TRANSACTION) {
+      $value = c_database_string::TRANSACTION;
+    }
+    else if ($this->transaction_action === e_database_transaction_action::WORK) {
+      $value = c_database_string::WORK;
+    }
+
+    return $value;
+  }
+}
diff --git a/common/database/traits/database_transaction_mode.php b/common/database/traits/database_transaction_mode.php
new file mode 100644 (file)
index 0000000..bf5d9c8
--- /dev/null
@@ -0,0 +1,119 @@
+<?php
+/**
+ * @file
+ * Provides traits for specific Postgesql Queries.
+ *
+ * @see: https://www.postgresql.org/docs/current/static/sql-commands.html
+ */
+namespace n_koopa;
+
+require_once('common/base/classes/base_error.php');
+require_once('common/base/classes/base_return.php');
+
+require_once('common/database/enumerations/database_transaction_mode.php');
+
+require_once('common/database/classes/database_string.php');
+
+/**
+ * Provide the sql transaction action functionality.
+ */
+trait t_database_transaction_mode {
+  protected $transaction_mode;
+
+  /**
+   * Assign the settings.
+   *
+   * @param int|null $mode
+   *   The mode, one of e_database_transaction_mode.
+   *   Set to NULL to disable.
+   *
+   * @return c_base_return_status
+   *   TRUE on success, FALSE otherwise.
+   *   FALSE with the error bit set is returned on error.
+   */
+  public function set_transaction_mode($mode) {
+    if (is_null($action)) {
+      $this->transaction_mode = NULL;
+      return new c_base_return_true();
+    }
+
+    switch ($action) {
+      case e_database_transaction_mode::DEFERRABLE:
+      case e_database_transaction_mode::ISOLATION_LEVEL_REPEATABLE_READ:
+      case e_database_transaction_mode::ISOLATION_LEVEL_READ_COMMITTED:
+      case e_database_transaction_mode::ISOLATION_LEVEL_READ_UNCOMMITTED:
+      case e_database_transaction_mode::ISOLATION_LEVEL_SERIALIZABLE:
+      case e_database_transaction_mode::NOT_DEFERRABLE:
+      case e_database_transaction_mode::READ_WRITE:
+      case e_database_transaction_mode::READ_ONLY:
+        break;
+
+      default:
+        $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'action', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
+        return c_base_return_error::s_false($error);
+    }
+
+    $this->transaction_mode = $action;
+    return new c_base_return_true();
+  }
+
+  /**
+   * Get the currently assigned settings.
+   *
+   * @return c_base_return_int|c_base_return_null
+   *   A code representing the setting.
+   *   NULL is returned if not set.
+   *   NULL with the error bit set is returned on error.
+   */
+  public function get_transaction_mode() {
+    if (is_null($this->transaction_mode)) {
+      return new c_base_return_null();
+    }
+
+    if (is_int($this->transaction_mode)) {
+      return c_base_return_int::s_new($this->transaction_mode);
+    }
+
+    $error = c_base_error::s_log(NULL, ['arguments' => [':{variable_name}' => 'transaction_mode', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_VARIABLE);
+    return c_base_return_error::s_null($error);
+  }
+
+  /**
+   * Perform the common build process for this trait.
+   *
+   * As an internal trait method, the caller is expected to perform any appropriate validation.
+   *
+   * @return string|null
+   *   A string is returned.
+   *   NULL is returned if there is nothing to process or there is an error.
+   */
+  protected function p_do_build_transaction_mode() {
+    $value = NULL;
+
+    if ($this->transaction_mode === e_database_transaction_mode::DEFERRABLE) {
+      $value = c_database_string::DEFERRABLE;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::ISOLATION_LEVEL_REPEATABLE_READ) {
+      $value = c_database_string::ISOLATION . ' ' . c_database_string::LEVEL . ' ' . c_database_string::REPEATABLE . ' ' . c_database_string::READ;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::ISOLATION_LEVEL_READ_COMMITTED) {
+      $value = c_database_string::ISOLATION . ' ' . c_database_string::LEVEL . ' ' . c_database_string::READ . ' ' . c_database_string::COMMITTED;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::ISOLATION_LEVEL_READ_UNCOMMITTED) {
+      $value = c_database_string::ISOLATION . ' ' . c_database_string::LEVEL . ' ' . c_database_string::READ . ' ' . c_database_string::UNCOMMITTED;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::ISOLATION_LEVEL_SERIALIZABLE) {
+      $value = c_database_string::ISOLATION . ' ' . c_database_string::LEVEL . ' ' . c_database_string::SERIALIZABLE;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::NOT_DEFERRABLE) {
+      $value = c_database_string::NOT . ' ' . c_database_string::DEFERRABLE;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::READ_WRITE) {
+      $value = c_database_string::READ . ' ' . c_database_string::WRITE;
+    }
+    else if ($this->transaction_mode === e_database_transaction_mode::READ_ONLY) {
+      $value = c_database_string::READ . ' ' . c_database_string::ONLY;
+    }
+    return $value;
+  }
+}
index ed2a4c9edc7184db5e694060493aeaa32957a8d8..9d025d9e7d6193931870886d61ce2a225afc30ac 100644 (file)
@@ -22,7 +22,7 @@ trait t_database_type_action {
   protected $type_action;
 
   /**
-   * Set the settings.
+   * Assign the settings.
    *
    * @param int|null $attribute
    *   The attribute type to use from e_database_attribute_action.
@@ -174,7 +174,7 @@ trait t_database_type_action {
     $value = NULL;
 
     if ($this->type_action['attribute'] === e_database_attribute_action::ADD) {
-      $value = c_database_string::ADD_ATTRIBUTE;
+      $value = c_database_string::ADD . ' ' . c_database_string::ATTRIBUTE;
       $value .= ' ' . $this->type_action['name'];
       $value .= ' ' . $this->type_action['data_type'];
 
@@ -184,9 +184,9 @@ trait t_database_type_action {
       }
     }
     else if ($this->type_action['attribute'] === e_database_attribute_action::ALTER) {
-      $value = c_database_string::ALTER_ATTRIBUTE;
+      $value = c_database_string::ALTER . ' ' . c_database_string::ATTRIBUTE;
       $value .= ' ' . $this->type_action['name'];
-      $value .= ' ' . c_database_string::SET_DATA_TYPE;
+      $value .= ' ' . c_database_string::SET . ' ' . c_database_string::DATA . ' ' . c_database_string::TYPE;
       $value .= ' ' . $this->type_action['data_type'];
 
       if (isset($this->type_action['collation'])) {
@@ -195,9 +195,9 @@ trait t_database_type_action {
       }
     }
     else if ($this->type_action['attribute'] === e_database_attribute_action::DROP) {
-      $value = c_database_string::DROP_ATTRIBUTE;
+      $value = c_database_string::DROP . ' ' . c_database_string::ATTRIBUTE;
       if ($this->type_action['if_exists']) {
-        $value .= ' ' . c_database_string::IF_EXISTS;
+        $value .= ' ' . c_database_string::IF . ' ' . c_database_string::EXISTS;
       }
 
       $value .= ' ' . $this->type_action['name'];
index 936e87ace935ae49f8e57351157698975c9ebccd..8aabd1b34c7ac6e0557ec6ea48d7d156a65d5a77 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_user_name {
   protected $user_name;
 
   /**
-   * Set the user name.
+   * Assign the settings.
    *
    * @param int|null $type
    *   The user name type to use, from e_database_user.
@@ -104,13 +104,13 @@ trait t_database_user_name {
     $value = NULL;
 
     if ($this->user_name['type'] === e_database_user::CURRENT) {
-      $value = c_database_string::CURRENT_USER;
+      $value = c_database_string::CURRENT . ' ' . c_database_string::USER;
     }
     else if ($this->user_name['type'] === e_database_user::PUBLIC) {
       $value = c_database_string::PUBLIC;
     }
     else if ($this->user_name['type'] === e_database_user::SESSION) {
-      $value = c_database_string::SESSION_USER;
+      $value = c_database_string::SESSION . ' ' . c_database_string::USER;
     }
     else if ($this->user_name['type'] === e_database_user::NAME) {
       $value = $this->user_name['name'];
index 4a389c2abb851236d98ec2cdcb5acf4ddfe8e5dd..2e28c9fc53a07a71120edb7c8badfe24bf01009f 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_using_expression {
   protected $using_expression;
 
   /**
-   * Set the USING expression settings.
+   * Assign the settings.
    *
    * @param string|null $sql_expression
    *   An SQL conditional expression.
index 1057b9c0b0ab6d582bf03bfb950e1de01e13f5c5..f22e1133f7cf75b60438bdaa0d10a15404f41826 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_using_index_method {
   protected $using_index_method;
 
   /**
-   * Set the USING settings.
+   * Assign the settings.
    *
    * @param string|null $using_index_method
    *   The using_index_method to use.
index 61a6c7f4d96aeed6ba19c9667281911fc503a0c3..77e9fe82cfeff0b62076aded370cd90bb8ac102d 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_validator {
   protected $validator;
 
   /**
-   * Set the VALIDATOR settings.
+   * Assign the settings.
    *
    * @param int|null $validator
    *   The integer representing validator/no-validator.
@@ -107,7 +107,7 @@ trait t_database_validator {
       }
     }
     else if ($this->validator['type'] == e_database_validator::NO_VALIDATOR) {
-      $value = c_database_string::NO_VALIDATOR;
+      $value = c_database_string::NO . ' ' . c_database_string::VALIDATOR;
     }
 
     return $value;
index 3f7d7ac5bc65f51d554df92ba5a4bc8254bdd246..8d0db6daa81a387a2c3d102726106acb8fc9dacd 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_version {
   protected $version;
 
   /**
-   * Set the VERSION settings.
+   * Assign the settings.
    *
    * @param string|null $version
    *   The version to use.
index 311351a771728a74730e62b9f690ca8d3fa0faeb..96be0f5f0c67f583f5508cbddd194c7cee62fa43 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_wildcard {
   protected $wildcard;
 
   /**
-   * Set the * value.
+   * Assign the settings.
    *
    * @param bool|null $wildcard
    *   Set to TRUE for '*'.
index 253197e0d6f6c0fb23b52ab3a35b533b1c39dc89..a83fbbf00ca74fa0dbcb86d748be61a492e45402 100644 (file)
@@ -17,7 +17,7 @@ trait t_database_with_check_expression {
   protected $with_check_expression;
 
   /**
-   * Set the WITH CHECK expression settings.
+   * Assign the settings.
    *
    * @param string|null $sql_expression
    *   An SQL conditional expression.
@@ -75,6 +75,6 @@ trait t_database_with_check_expression {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_with_check_expression() {
-    return c_database_string::WITH_CHECK . ' ' . $this->with_check_expression;
+    return c_database_string::WITH . ' ' . c_database_string::CHECK . ' ' . $this->with_check_expression;
   }
 }
index f4356ddb8878cfd9a2393398b949c5247b049f3d..2e1c722a69f2a4319f0ba6f846f8f54e64bd2719 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_with_dictionary {
   protected $with_dictionary;
 
   /**
-   * Set the WITH DICTIONARY settings.
+   * Assign the settings.
    *
    * @param string|null $name
    *   The dictionary name.
@@ -82,6 +82,6 @@ trait t_database_with_dictionary {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_with_dictionary() {
-    return c_database_string::WITH_DICTIONARY . ' ' . $this->with_dictionary;
+    return c_database_string::WITH . ' ' . c_database_string::DICTIONARY . ' ' . $this->with_dictionary;
   }
 }
index 100f1446167ca10b18e00a0096c3626798631eda..a9eb6c7cf931501596f0603d7c9591c965fd40bf 100644 (file)
@@ -19,7 +19,7 @@ trait t_database_with_grant_option {
   protected $with_grant_option;
 
   /**
-   * Set the WITH GRANT OPTION value.
+   * Assign the settings.
    *
    * @param bool|null $with_grant_option
    *   Set to TRUE for WITH GRANT OPTION.
@@ -76,6 +76,6 @@ trait t_database_with_grant_option {
    *   NULL is returned if there is nothing to process or there is an error.
    */
   protected function p_do_build_with_grant_option() {
-    return $this->with_grant_option ? c_database_string::WITH_GRANT_OPTION : NULL;
+    return $this->with_grant_option ? c_database_string::WITH . ' ' . c_database_string::GRANT . ' ' . c_database_string::OPTION : NULL;
   }
 }
index 34610fcf8eb378becdf9a66e6c19ee43aba17d13..1082907b1e068f9d257323c3413648dcdd99a1d2 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_with_publication_option {
   protected $with_publication_option;
 
   /**
-   * Set the WITH (publication_option ...) settings.
+   * Assign the settings.
    *
    * @param int|null $option
    *   The publication option code to assign.
index 48bc4022b03806a627112facd645e3081c04b069..20899e6cdfeb6b44726c9cc9f8a1fbbd7aa3a685 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_with_refresh_option {
   protected $with_refresh_option;
 
   /**
-   * Set the WITH (refresh_option ...) settings.
+   * Assign the settings.
    *
    * @param int|null $option
    *   The refresh option code to assign.
index 8ea1c079550e79db96c837bed4bbd7965f2189d0..caa0ad87a25f7aaa05244b97969e8d080ed80e3c 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_with_role_option {
   protected $with_role_option;
 
   /**
-   * Set the with role option.
+   * Assign the settings.
    *
    * @param int|null $type
    *   The option type from e_database_role_option.
@@ -186,16 +186,16 @@ trait t_database_with_role_option {
         $values[] = c_database_string::SUPERUSER;
       }
       else if ($role_option['type'] === e_database_role_option::CONNECTION_LIMIT) {
-        $values[] = c_database_string::CONNECTION_LIMIT . ' ' . $role_option['value'];
+        $values[] = c_database_string::CONNECTION . ' ' . c_database_string::LIMIT . ' ' . $role_option['value'];
       }
       else if ($role_option['type'] === e_database_role_option::PASSWORD) {
         $values[] = c_database_string::PASSWORD . ' ' . $role_option['value'];
       }
       else if ($role_option['type'] === e_database_role_option::PASSWORD_ENCRYPTED) {
-        $values[] = c_database_string::PASSWORD_ENCRYPTED . ' ' . $role_option['value'];
+        $values[] = c_database_string::PASSWORD . ' ' . c_database_string::ENCRYPTED . ' ' . $role_option['value'];
       }
       else if ($role_option['type'] === e_database_role_option::VALID_UNTIL) {
-        $values[] = c_database_string::VALID_UNTIL . ' ' . $role_option['value'];
+        $values[] = c_database_string::VALID . ' ' . c_database_string::UNTIL . ' ' . $role_option['value'];
       }
     }
     unset($role_option);
index e2eb5a9aa7841088afd8e207e7a94b1937260f79..dbd43ecdb28fa01e171a5616c16c15cd0a1b856f 100644 (file)
@@ -21,7 +21,7 @@ trait t_database_with_storage_parameter {
   protected $with_storage_parameter;
 
   /**
-   * Set the WITH index (storage_parameter ...) settings.
+   * Assign the settings.
    *
    * @param int|null $parameter
    *   The storage parameter code to assign.