Subversion Repositories oidplus

Rev

Rev 261 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. /*
  4.  * OIDplus 2.0
  5.  * Copyright 2020 Daniel Marschall, ViaThinkSoft
  6.  *
  7.  * Licensed under the Apache License, Version 2.0 (the "License");
  8.  * you may not use this file except in compliance with the License.
  9.  * You may obtain a copy of the License at
  10.  *
  11.  *     http://www.apache.org/licenses/LICENSE-2.0
  12.  *
  13.  * Unless required by applicable law or agreed to in writing, software
  14.  * distributed under the License is distributed on an "AS IS" BASIS,
  15.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16.  * See the License for the specific language governing permissions and
  17.  * limitations under the License.
  18.  */
  19.  
  20. // Note: You can override these values in your userdata/baseconfig/config.inc.php file
  21. //       Do NOT edit this file, because your changes would get overwritten
  22. //       by program updates!
  23.  
  24. // -----------------------------------------------------------------------------
  25.  
  26. /**
  27.   * LIMITS_MAX_OID_DEPTH
  28.   *
  29.   * Example:
  30.   *     OID 2.999.123.456 has a depth of 4.
  31.   *
  32.   * Default value:
  33.   *     30
  34.   *
  35.   * Which value is realistic?
  36.   *     In the oid-info.com database (April 2020), the greatest depth is 22.
  37.   *
  38.   * What would happen if you had OIDs with a higher arc size in your database?
  39.   *     MySQL and MSSQL: The arcs after that maximum depth would not be sorted.
  40.   *     PostgreSQL: No effects
  41.   *
  42.   * Note: This setting affects the performance of OIDplus, since it is used
  43.   *       for sorting in MySQL and MSSQL (not in PostgreSQL).
  44.   **/
  45. OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_DEPTH', 30);
  46.  
  47. // -----------------------------------------------------------------------------
  48.  
  49. /**
  50.   * LIMITS_MAX_ID_LENGTH
  51.   *
  52.   * Example:
  53.   *     OID 2.999.123.456 has a length of 13 characters in dot notation.
  54.   *     OIDplus adds the prefix "oid:" in front of every OID,
  55.   *     so the overal length of the ID would be 17.
  56.   *
  57.   * Default value:
  58.   *     255 digits (OIDs 251 digits)
  59.   *
  60.   * Which value is realistic?
  61.   *     In the oid-info.com database (April 2020), the OID with the greatest size is 65 characters (dot notation)
  62.   *
  63.   * Maximal value:
  64.   *     OIDs may only have a size of max 251 characters in dot notation.
  65.   *     Reason: The field defintion of *_objects.oid is defined as varchar(255),
  66.   *             and the OID will have the prefix 'oid:' (4 bytes).
  67.   *     You can increase the limit by changing the field definition in the database.
  68.   **/
  69. OIDplus::baseConfig()->setValue('LIMITS_MAX_ID_LENGTH', 255);
  70.  
  71. // -----------------------------------------------------------------------------
  72.  
  73. /**
  74.   * LIMITS_MAX_OID_ARC_SIZE
  75.   *
  76.   * Example:
  77.   *     OID 2.999.123.456 has a max arc size of 3 digits.
  78.   *
  79.   * Default value:
  80.   *     50 digits
  81.   *
  82.   * Minimal recommended value:
  83.   *     The arc size should not be smaller than 39, because UUIDs (inside OID 2.25)
  84.   *     have arcs up to 39 digits!
  85.   *     In the oid-info.com database (April 2020), indeed, the greatest value 39.
  86.   *
  87.   * Maximal value:
  88.   *     MySQL:
  89.   *             Max value: 65 (limit by the DBMS)
  90.   *             Reason: This is the limit of the "decimal" data type
  91.   *             What would happen if you had OIDs with a higher arc size in your database?
  92.   *                     The sorting will not work, because MySQL handles the cast like this:
  93.   *                     cast('1234' as decimal(3)) = 999
  94.   *     PostgreSQL:
  95.   *             Max value: 131072 (limit by the DBMS)
  96.   *             Reason: This is the limit for the "numeric" data type.
  97.   *             What would happen if you had OIDs with a higher arc size in your database?
  98.   *                     OIDplus will STOP WORKING, because the SQL queries will fail due to the failed cast.   
  99.   *     SQL Server:
  100.   *             Max value: 512 (limit in function getOidArc)
  101.   *             Reason: Since SQL Server does not support 128 bit integers (the limit of decimal is 38 digits),
  102.   *                     the function getOidArc() needs to pad each arc with zeros,
  103.   *                     returning a string that has to be sorted.
  104.   *                     The data type varchar(512) is the return value type of getOidArc().
  105.   *                     If you need more (which is unlikely), you can edit the definition of that function.
  106.   *             What would happen if you had OIDs with a higher arc size in your database?
  107.   *                     The sorting will not work, because SQL Server handles the cast like this:
  108.   *                     select cast('1234' as varchar(3)) = '123'
  109.   **/
  110. OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_ARC_SIZE', 50);
  111.  
  112. // -----------------------------------------------------------------------------
  113.  
  114. /**
  115.   * LIMITS_MAX_OID_ASN1_ID_LEN
  116.   *
  117.   * Default value:
  118.   *     255 characters
  119.   *
  120.   * Maximal value:
  121.   *     255, as defined in the database fields *_asn1id.name
  122.   *     You can change the database field definition if you really need more.
  123.   **/
  124. OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_ASN1_ID_LEN', 255);
  125.  
  126. // -----------------------------------------------------------------------------
  127.  
  128. /**
  129.   * LIMITS_MAX_OID_UNICODE_LABEL_LEN
  130.   *
  131.   * Default value:
  132.   *     255 bytes (UTF-8 encoded!)
  133.   *
  134.   * Maximal value:
  135.   *     255, as defined in the database fields *_iri.name
  136.   *     You can change the database field definition if you really need more.
  137.   **/
  138. OIDplus::baseConfig()->setValue('LIMITS_MAX_OID_UNICODE_LABEL_LEN', 255);
  139.  
  140. // -----------------------------------------------------------------------------
  141.