Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package orafce for openSUSE:Factory checked 
in at 2024-05-24 19:51:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/orafce (Old)
 and      /work/SRC/openSUSE:Factory/.orafce.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "orafce"

Fri May 24 19:51:43 2024 rev:18 rq:1176510 version:4.10.2+git0.8d10ace

Changes:
--------
--- /work/SRC/openSUSE:Factory/orafce/orafce.changes    2024-04-30 
17:27:48.567152091 +0200
+++ /work/SRC/openSUSE:Factory/.orafce.new.24587/orafce.changes 2024-05-24 
19:51:59.519377371 +0200
@@ -1,0 +2,12 @@
+Thu May 23 08:51:44 UTC 2024 - [email protected]
+
+- Update to version 4.10.2+git0.8d10ace:
+  * prepare for 4.10.2
+  * When load of orafce was triggered by using some orafce's function by 
nonprivileged user, then the check orafce_umask_check_hook fails and breaks 
loading of Orafce. This fix disable check in initialization time when 
orafce_umask is set to default value (so the check can be disabled).
+  * prepare for 4.10.1
+  * regress tests for issues #266 and #267
+  * fix obsolete (and broken) implementation of dbms_assert.qualified_sql_name
+  * fix not correct test of identifier validity in dbms_assert.simple_sql_name
+  * Add an alternative output for test dbms_random (Illumos)
+
+-------------------------------------------------------------------

Old:
----
  orafce-4.10.0+git0.cfdcdf2.obscpio

New:
----
  orafce-4.10.2+git0.8d10ace.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ orafce.spec ++++++
--- /var/tmp/diff_new_pack.eEHfcH/_old  2024-05-24 19:52:00.631418050 +0200
+++ /var/tmp/diff_new_pack.eEHfcH/_new  2024-05-24 19:52:00.635418197 +0200
@@ -20,7 +20,7 @@
 %define                realname orafce
 
 Name:           %{pgname}-orafce
-Version:        4.10.0+git0.cfdcdf2
+Version:        4.10.2+git0.8d10ace
 Release:        0
 Summary:        Implementation of some Oracle functions into PostgreSQL
 Group:          Productivity/Databases/Tools

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.eEHfcH/_old  2024-05-24 19:52:00.683419952 +0200
+++ /var/tmp/diff_new_pack.eEHfcH/_new  2024-05-24 19:52:00.687420099 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/orafce/orafce.git</param>
-              <param 
name="changesrevision">cfdcdf258f7dc3ca5586bdbe7e6f472b672cdbc5</param></service></servicedata>
+              <param 
name="changesrevision">8d10acec102616d9825d2f6e1b7c9f8b25dbc7cd</param></service></servicedata>
 (No newline at EOF)
 

++++++ orafce-4.10.0+git0.cfdcdf2.obscpio -> orafce-4.10.2+git0.8d10ace.obscpio 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/META.json 
new/orafce-4.10.2+git0.8d10ace/META.json
--- old/orafce-4.10.0+git0.cfdcdf2/META.json    2024-04-25 12:49:24.000000000 
+0200
+++ new/orafce-4.10.2+git0.8d10ace/META.json    2024-05-20 19:36:36.000000000 
+0200
@@ -2,7 +2,7 @@
    "name": "orafce",
    "abstract": "Oracle's compatibility functions and packages",
    "description": "This module allows use a well known Oracle's functions and 
packages inside PostgreSQL",
-   "version": "4.10.0",
+   "version": "4.10.2",
    "maintainer": [
       "Pavel Stehule <[email protected]>",
       "Takahiro Itagaki <[email protected]>"
@@ -25,7 +25,7 @@
      "orafce": {
        "file": "sql/orafce.sql",
        "docfile": "README.orafce",
-       "version": "4.10.0",
+       "version": "4.10.2",
        "abstract": "Oracle's compatibility functions and packages"
      }
    },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/assert.c 
new/orafce-4.10.2+git0.8d10ace/assert.c
--- old/orafce-4.10.0+git0.cfdcdf2/assert.c     2024-04-25 12:49:24.000000000 
+0200
+++ new/orafce-4.10.2+git0.8d10ace/assert.c     2024-05-20 19:36:36.000000000 
+0200
@@ -50,6 +50,38 @@
 static bool ParseIdentifierString(char *rawstring);
 
 /*
+ * Is character a valid identifier start?
+ * Must match scan.l's {ident_start} character class.
+ */
+static bool
+orafce_is_ident_start(unsigned char c)
+{
+       /* Underscores and ASCII letters are OK */
+       if (c == '_')
+               return true;
+       if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
+               return true;
+       /* Any high-bit-set character is OK (might be part of a multibyte char) 
*/
+       if (IS_HIGHBIT_SET(c))
+               return true;
+       return false;
+}
+
+/*
+ * Is character a valid identifier continuation?
+ * Must match scan.l's {ident_cont} character class.
+ */
+static bool
+orafce_is_ident_cont(unsigned char c)
+{
+       /* Can be digit or dollar sign ... */
+       if ((c >= '0' && c <= '9') || c == '$')
+               return true;
+       /* ... or an identifier start character */
+       return orafce_is_ident_start(c);
+}
+
+/*
  * Procedure ParseIdentifierString is based on SplitIdentifierString
  * from varlena.c. We need different behave of quote symbol evaluation.
  */
@@ -93,20 +125,16 @@
                }
                else
                {
-                       char       *curname;
-
                        /* Unquoted name --- extends to separator or whitespace 
*/
-                       curname = nextp;
-                       while (*nextp && *nextp != '.' &&
-                                  !isspace((unsigned char) *nextp))
+                       if (orafce_is_ident_start(*nextp))
                        {
-                               if (!isalnum(*nextp) && *nextp != '_')
-                                       return false;
                                nextp++;
-                       }
 
-                       if (curname == nextp)
-                               return false;   /* empty unquoted name not 
allowed */
+                               while (*nextp && orafce_is_ident_cont(*nextp))
+                                       nextp++;
+                       }
+                       else
+                               return false;
                }
 
                while (isspace((unsigned char) *nextp))
@@ -361,10 +389,20 @@
        }
        else
        {
-               /* Doesn't allow national characters in sql name :( */
-               for (; len-- > 0; cp++)
-                       if (!isalnum(*cp) && *cp != '_')
-                               return false;
+               if (orafce_is_ident_start(*cp))
+               {
+                       char       *last = cp + len - 1;
+
+                       cp += 1;
+
+                       while (cp < last)
+                       {
+                               if (!orafce_is_ident_cont(*cp++))
+                                       return false;
+                       }
+               }
+               else
+                       return false;
        }
 
        return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/orafce-4.10.0+git0.cfdcdf2/expected/dbms_random_4.out 
new/orafce-4.10.2+git0.8d10ace/expected/dbms_random_4.out
--- old/orafce-4.10.0+git0.cfdcdf2/expected/dbms_random_4.out   1970-01-01 
01:00:00.000000000 +0100
+++ new/orafce-4.10.2+git0.8d10ace/expected/dbms_random_4.out   2024-05-20 
19:36:36.000000000 +0200
@@ -0,0 +1,129 @@
+-- Tests for package DBMS_RANDOM
+SELECT dbms_random.initialize(8);
+ initialize 
+------------
+ 
+(1 row)
+
+SELECT dbms_random.normal()::numeric(10, 8);
+   normal    
+-------------
+ -1.22160768
+(1 row)
+
+SELECT dbms_random.normal()::numeric(10, 8);
+   normal   
+------------
+ 0.91471634
+(1 row)
+
+SELECT dbms_random.seed(8);
+ seed 
+------
+ 
+(1 row)
+
+SELECT dbms_random.random();
+ random 
+--------
+ -25498
+(1 row)
+
+SELECT dbms_random.seed('test');
+ seed 
+------
+ 
+(1 row)
+
+SELECT dbms_random.string('U',5);
+ string 
+--------
+ VPQID
+(1 row)
+
+SELECT dbms_random.string('P',2);
+ string 
+--------
+ *c
+(1 row)
+
+SELECT dbms_random.string('x',4);
+ string 
+--------
+ QY4P
+(1 row)
+
+SELECT dbms_random.string('a',2);
+ string 
+--------
+ gK
+(1 row)
+
+SELECT dbms_random.string('l',3);
+ string 
+--------
+ dyl
+(1 row)
+
+SELECT dbms_random.seed(5);
+ seed 
+------
+ 
+(1 row)
+
+SELECT dbms_random.value()::numeric(10, 8);
+   value    
+------------
+ 0.56930542
+(1 row)
+
+SELECT dbms_random.value(10,15)::numeric(10, 8);
+    value    
+-------------
+ 11.29043579
+(1 row)
+
+SELECT dbms_random.terminate();
+ terminate 
+-----------
+ 
+(1 row)
+
+SELECT dbms_random.string('u', 10);
+   string   
+------------
+ IZIUOSZPXQ
+(1 row)
+
+SELECT dbms_random.string('l', 10);
+   string   
+------------
+ sqinwaztpt
+(1 row)
+
+SELECT dbms_random.string('a', 10);
+   string   
+------------
+ qKQoQidmEl
+(1 row)
+
+SELECT dbms_random.string('x', 10);
+   string   
+------------
+ 6ZTOV69J73
+(1 row)
+
+SELECT dbms_random.string('p', 10);
+   string   
+------------
+ `f# tQP~r*
+(1 row)
+
+SELECT dbms_random.string('uu', 10); -- error
+ERROR:  this first parameter value is more than 1 characters long
+SELECT dbms_random.string('w', 10);
+   string   
+------------
+ GIDLUOCSZH
+(1 row)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/expected/files.out 
new/orafce-4.10.2+git0.8d10ace/expected/files.out
--- old/orafce-4.10.0+git0.cfdcdf2/expected/files.out   2024-04-25 
12:49:24.000000000 +0200
+++ new/orafce-4.10.2+git0.8d10ace/expected/files.out   2024-05-20 
19:36:36.000000000 +0200
@@ -211,7 +211,6 @@
 (1 row)
 
 SET ROLE TO DEFAULT;
-DROP ROLE test_role_files;
 DROP FUNCTION checkFlushFile(text);
 DELETE FROM utl_file.utl_file_dir;
 -- try to use named directory
@@ -254,3 +253,15 @@
 DROP FUNCTION gen_file(text);
 DROP FUNCTION read_file(text);
 DELETE FROM utl_file.utl_file_dir;
+-- reconnect
+\c
+SET ROLE TO test_role_files;
+-- use any function from orafce, should not to fail
+SELECT oracle.add_months('2024-05-20', 1);
+        add_months        
+--------------------------
+ Thu Jun 20 00:00:00 2024
+(1 row)
+
+SET ROLE TO DEFAULT;
+DROP ROLE test_role_files;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/expected/files_1.out 
new/orafce-4.10.2+git0.8d10ace/expected/files_1.out
--- old/orafce-4.10.0+git0.cfdcdf2/expected/files_1.out 2024-04-25 
12:49:24.000000000 +0200
+++ new/orafce-4.10.2+git0.8d10ace/expected/files_1.out 1970-01-01 
01:00:00.000000000 +0100
@@ -1,256 +0,0 @@
-SET client_min_messages = NOTICE;
-\set VERBOSITY terse
-\set ECHO all
-CREATE OR REPLACE FUNCTION gen_file(dir text) RETURNS void AS $$
-DECLARE
-  f utl_file.file_type;
-BEGIN
-  f := utl_file.fopen(dir, 'regress_orafce.txt', 'w');
-  PERFORM utl_file.put_line(f, 'ABC');
-  PERFORM utl_file.put_line(f, '123'::numeric);
-  PERFORM utl_file.put_line(f, '-----');
-  PERFORM utl_file.new_line(f);
-  PERFORM utl_file.put_line(f, '-----');
-  PERFORM utl_file.new_line(f, 0);
-  PERFORM utl_file.put_line(f, '-----');
-  PERFORM utl_file.new_line(f, 2);
-  PERFORM utl_file.put_line(f, '-----');
-  PERFORM utl_file.put(f, 'A');
-  PERFORM utl_file.put(f, 'B');
-  PERFORM utl_file.new_line(f);
-  PERFORM utl_file.putf(f, '[1=%s, 2=%s, 3=%s, 4=%s, 5=%s]', '1', '2', '3', 
'4', '5');
-  PERFORM utl_file.new_line(f);
-  PERFORM utl_file.put_line(f, '1234567890');
-  f := utl_file.fclose(f);
-END;
-$$ LANGUAGE plpgsql;
-/* Test functions utl_file.fflush(utl_file.file_type) and 
- * utl_file.get_nextline(utl_file.file_type)
- * This function tests the positive test case of fflush by reading from the 
- * file after flushing the contents to the file. 
- */
-CREATE OR REPLACE FUNCTION checkFlushFile(dir text) RETURNS void AS $$
-DECLARE
-  f utl_file.file_type;
-  f1 utl_file.file_type;
-  ret_val text;
-  i integer;
-BEGIN
-  f := utl_file.fopen(dir, 'regressflush_orafce.txt', 'a');
-  PERFORM utl_file.put_line(f, 'ABC');
-  PERFORM utl_file.new_line(f);
-  PERFORM utl_file.put_line(f, '123'::numeric);
-  PERFORM utl_file.new_line(f);
-  PERFORM utl_file.putf(f, '[1=%s, 2=%s, 3=%s, 4=%s, 5=%s]', '1', '2', '3', 
'4', '5');
-  PERFORM utl_file.fflush(f);
-  f1 := utl_file.fopen(dir, 'regressflush_orafce.txt', 'r');
-  ret_val=utl_file.get_nextline(f1);
-  i:=1;
-  WHILE ret_val IS NOT NULL LOOP
-    RAISE NOTICE '[%] >>%<<', i,ret_val;
-    ret_val := utl_file.get_nextline(f1);
-    i:=i+1;
-  END LOOP;
-  RAISE NOTICE '>>%<<', ret_val;
-  f1 := utl_file.fclose(f1);
-  f := utl_file.fclose(f);
-END;
-$$ LANGUAGE plpgsql;
-CREATE OR REPLACE FUNCTION read_file(dir text) RETURNS void AS $$
-DECLARE
-  f utl_file.file_type;
-BEGIN
-  f := utl_file.fopen(dir, 'regress_orafce.txt', 'r');
-  FOR i IN 1..11 LOOP
-    RAISE NOTICE '[%] >>%<<', i, utl_file.get_line(f);
-  END LOOP;
-  RAISE NOTICE '>>%<<', utl_file.get_line(f, 4);
-  RAISE NOTICE '>>%<<', utl_file.get_line(f, 4);
-  RAISE NOTICE '>>%<<', utl_file.get_line(f);
-  RAISE NOTICE '>>%<<', utl_file.get_line(f);
-  EXCEPTION
-    -- WHEN no_data_found THEN,  8.1 plpgsql doesn't know no_data_found
-    WHEN others THEN
-      RAISE NOTICE 'finish % ', sqlerrm;
-      RAISE NOTICE 'is_open = %', utl_file.is_open(f);
-      PERFORM utl_file.fclose_all();
-      RAISE NOTICE 'is_open = %', utl_file.is_open(f);
-  END;
-$$ LANGUAGE plpgsql;
-SELECT EXISTS(SELECT * FROM pg_catalog.pg_class where relname='utl_file_dir') 
AS exists;
- exists 
---------
- t
-(1 row)
-
-SELECT EXISTS(SELECT * FROM pg_catalog.pg_type where typname='file_type') AS 
exists;
- exists 
---------
- t
-(1 row)
-
--- Trying to access a file in path not registered
-SELECT utl_file.fopen(utl_file.tmpdir(),'sample.txt','r');
-ERROR:  UTL_FILE_INVALID_PATH
--- Trying to access file in a non-existent directory
-INSERT INTO utl_file.utl_file_dir(dir) VALUES('test_tmp_dir');
-SELECT utl_file.fopen('test_tmp_dir','file.txt.','w');
-ERROR:  UTL_FILE_INVALID_PATH
-DELETE FROM utl_file.utl_file_dir WHERE dir LIKE 'test_tmp_dir';
--- Add tmpdir() to utl_file_dir table
-INSERT INTO utl_file.utl_file_dir(dir) VALUES(utl_file.tmpdir());
-SELECT count(*) from utl_file.utl_file_dir where dir <> '';
- count 
--------
-     1
-(1 row)
-
--- Trying to access non-existent file
-SELECT utl_file.fopen(utl_file.tmpdir(),'non_existent_file.txt','r');
-ERROR:  UTL_FILE_INVALID_PATH
---Other test cases
---run this under unprivileged user
-CREATE ROLE test_role_files LOGIN;
-SET ROLE TO test_role_files;
--- should to fail, unpriviliged user cannot to change utl_file_dir
-INSERT INTO utl_file.utl_file_dir(dir) VALUES('test_tmp_dir');
-ERROR:  permission denied for relation utl_file_dir
-SELECT gen_file(utl_file.tmpdir());
- gen_file 
-----------
- 
-(1 row)
-
-SELECT fexists FROM utl_file.fgetattr(utl_file.tmpdir(), 'regress_orafce.txt');
- fexists 
----------
- t
-(1 row)
-
-SELECT utl_file.fcopy(utl_file.tmpdir(), 'regress_orafce.txt', 
utl_file.tmpdir(), 'regress_orafce2.txt');
- fcopy 
--------
- 
-(1 row)
-
-SELECT fexists FROM utl_file.fgetattr(utl_file.tmpdir(), 
'regress_orafce2.txt');
- fexists 
----------
- t
-(1 row)
-
-SELECT utl_file.frename(utl_file.tmpdir(), 'regress_orafce2.txt', 
utl_file.tmpdir(), 'regress_orafce.txt', true);
- frename 
----------
- 
-(1 row)
-
-SELECT fexists FROM utl_file.fgetattr(utl_file.tmpdir(), 'regress_orafce.txt');
- fexists 
----------
- t
-(1 row)
-
-SELECT fexists FROM utl_file.fgetattr(utl_file.tmpdir(), 
'regress_orafce2.txt');
- fexists 
----------
- f
-(1 row)
-
-SELECT read_file(utl_file.tmpdir());
-NOTICE:  [1] >>ABC<<
-NOTICE:  [2] >>123<<
-NOTICE:  [3] >>-----<<
-NOTICE:  [4] >><<
-NOTICE:  [5] >>-----<<
-NOTICE:  [6] >>-----<<
-NOTICE:  [7] >><<
-NOTICE:  [8] >><<
-NOTICE:  [9] >>-----<<
-NOTICE:  [10] >>AB<<
-NOTICE:  [11] >>[1=1, 2=2, 3=3, 4=4, 5=5]<<
-NOTICE:  >>1234<<
-NOTICE:  >>5678<<
-NOTICE:  >>90<<
-NOTICE:  finish no data found 
-NOTICE:  is_open = t
-NOTICE:  is_open = f
- read_file 
------------
- 
-(1 row)
-
-SELECT utl_file.fremove(utl_file.tmpdir(), 'regress_orafce.txt');
- fremove 
----------
- 
-(1 row)
-
-SELECT fexists FROM utl_file.fgetattr(utl_file.tmpdir(), 'regress_orafce.txt');
- fexists 
----------
- f
-(1 row)
-
-SELECT checkFlushFile(utl_file.tmpdir());
-NOTICE:  [1] >>ABC<<
-NOTICE:  [2] >><<
-NOTICE:  [3] >>123<<
-NOTICE:  [4] >><<
-NOTICE:  [5] >>[1=1, 2=2, 3=3, 4=4, 5=5]<<
-NOTICE:  >><NULL><<
- checkflushfile 
-----------------
- 
-(1 row)
-
-SELECT utl_file.fremove(utl_file.tmpdir(), 'regressflush_orafce.txt');
- fremove 
----------
- 
-(1 row)
-
-SET ROLE TO DEFAULT;
-DROP ROLE test_role_files;
-DROP FUNCTION checkFlushFile(text);
-DELETE FROM utl_file.utl_file_dir;
--- try to use named directory
-INSERT INTO utl_file.utl_file_dir(dir, dirname) VALUES(utl_file.tmpdir(), 
'TMPDIR');
-SELECT gen_file('TMPDIR');
- gen_file 
-----------
- 
-(1 row)
-
-SELECT read_file('TMPDIR');
-NOTICE:  [1] >>ABC<<
-NOTICE:  [2] >>123<<
-NOTICE:  [3] >>-----<<
-NOTICE:  [4] >><<
-NOTICE:  [5] >>-----<<
-NOTICE:  [6] >>-----<<
-NOTICE:  [7] >><<
-NOTICE:  [8] >><<
-NOTICE:  [9] >>-----<<
-NOTICE:  [10] >>AB<<
-NOTICE:  [11] >>[1=1, 2=2, 3=3, 4=4, 5=5]<<
-NOTICE:  >>1234<<
-NOTICE:  >>5678<<
-NOTICE:  >>90<<
-NOTICE:  finish no data found 
-NOTICE:  is_open = t
-NOTICE:  is_open = f
- read_file 
------------
- 
-(1 row)
-
-SELECT utl_file.fremove('TMPDIR', 'regress_orafce.txt');
- fremove 
----------
- 
-(1 row)
-
-DROP FUNCTION gen_file(text);
-DROP FUNCTION read_file(text);
-DELETE FROM utl_file.utl_file_dir;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/expected/orafce.out 
new/orafce-4.10.2+git0.8d10ace/expected/orafce.out
--- old/orafce-4.10.0+git0.cfdcdf2/expected/orafce.out  2024-04-25 
12:49:24.000000000 +0200
+++ new/orafce-4.10.2+git0.8d10ace/expected/orafce.out  2024-05-20 
19:36:36.000000000 +0200
@@ -2740,6 +2740,10 @@
 
 select dbms_assert.object_name('dbms_assert.fooo');
 ERROR:  invalid object name
+select dbms_assert.qualified_sql_name('1broken');
+ERROR:  string is not qualified SQL name
+select dbms_assert.simple_sql_name('1broken');
+ERROR:  string is not simple SQL name
 select dbms_assert.enquote_literal(NULL);
  enquote_literal 
 -----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/file.c 
new/orafce-4.10.2+git0.8d10ace/file.c
--- old/orafce-4.10.0+git0.cfdcdf2/file.c       2024-04-25 12:49:24.000000000 
+0200
+++ new/orafce-4.10.2+git0.8d10ace/file.c       2024-05-20 19:36:36.000000000 
+0200
@@ -131,6 +131,8 @@
 
 static Oid orafce_set_umask_roleid = InvalidOid;
 
+extern bool orafce_initialized;
+
 void
 orafce_umask_assign_hook(const char *newvalue, void *extra)
 {
@@ -144,7 +146,7 @@
        char       *ptr = *newval;
        int                *myextra;
 
-       if (IsNormalProcessingMode())
+       if (orafce_initialized && IsNormalProcessingMode())
        {
                if (!superuser())
                {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/orafce.c 
new/orafce-4.10.2+git0.8d10ace/orafce.c
--- old/orafce-4.10.0+git0.cfdcdf2/orafce.c     2024-04-25 12:49:24.000000000 
+0200
+++ new/orafce-4.10.2+git0.8d10ace/orafce.c     2024-05-20 19:36:36.000000000 
+0200
@@ -29,6 +29,8 @@
 
 extern char *orafce_sys_guid_source;
 
+bool  orafce_initialized = false;
+
 static const struct config_enum_entry orafce_compatibility_options[] = {
        {"warning_oracle", ORAFCE_COMPATIBILITY_WARNING_ORACLE, false},
        {"warning_orafce", ORAFCE_COMPATIBILITY_WARNING_ORAFCE, false},
@@ -175,4 +177,6 @@
        EmitWarningsOnPlaceholders("orafce");
 
        RegisterXactCallback(orafce_xact_cb, NULL);
+
+       orafce_initialized = true;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/sql/files.sql 
new/orafce-4.10.2+git0.8d10ace/sql/files.sql
--- old/orafce-4.10.0+git0.cfdcdf2/sql/files.sql        2024-04-25 
12:49:24.000000000 +0200
+++ new/orafce-4.10.2+git0.8d10ace/sql/files.sql        2024-05-20 
19:36:36.000000000 +0200
@@ -121,7 +121,6 @@
 SELECT utl_file.fremove(utl_file.tmpdir(), 'regressflush_orafce.txt');
 
 SET ROLE TO DEFAULT;
-DROP ROLE test_role_files;
 
 DROP FUNCTION checkFlushFile(text);
 DELETE FROM utl_file.utl_file_dir;
@@ -136,3 +135,14 @@
 DROP FUNCTION read_file(text);
 
 DELETE FROM utl_file.utl_file_dir;
+
+-- reconnect
+\c
+
+SET ROLE TO test_role_files;
+
+-- use any function from orafce, should not to fail
+SELECT oracle.add_months('2024-05-20', 1);
+
+SET ROLE TO DEFAULT;
+DROP ROLE test_role_files;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orafce-4.10.0+git0.cfdcdf2/sql/orafce.sql 
new/orafce-4.10.2+git0.8d10ace/sql/orafce.sql
--- old/orafce-4.10.0+git0.cfdcdf2/sql/orafce.sql       2024-04-25 
12:49:24.000000000 +0200
+++ new/orafce-4.10.2+git0.8d10ace/sql/orafce.sql       2024-05-20 
19:36:36.000000000 +0200
@@ -564,6 +564,8 @@
 select dbms_assert.simple_sql_name('ajajaj -- ajaj');
 select dbms_assert.object_name('pg_catalog.pg_class');
 select dbms_assert.object_name('dbms_assert.fooo');
+select dbms_assert.qualified_sql_name('1broken');
+select dbms_assert.simple_sql_name('1broken');
 
 select dbms_assert.enquote_literal(NULL);
 select dbms_assert.enquote_name(NULL);

++++++ orafce.obsinfo ++++++
--- /var/tmp/diff_new_pack.eEHfcH/_old  2024-05-24 19:52:00.923428732 +0200
+++ /var/tmp/diff_new_pack.eEHfcH/_new  2024-05-24 19:52:00.927428878 +0200
@@ -1,5 +1,5 @@
 name: orafce
-version: 4.10.0+git0.cfdcdf2
-mtime: 1714042164
-commit: cfdcdf258f7dc3ca5586bdbe7e6f472b672cdbc5
+version: 4.10.2+git0.8d10ace
+mtime: 1716226596
+commit: 8d10acec102616d9825d2f6e1b7c9f8b25dbc7cd
 

Reply via email to