Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package orafce for openSUSE:Factory checked in at 2023-04-03 17:45:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/orafce (Old) and /work/SRC/openSUSE:Factory/.orafce.new.9019 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "orafce" Mon Apr 3 17:45:45 2023 rev:4 rq:1076778 version:4.2.4+git0.2499240 Changes: -------- --- /work/SRC/openSUSE:Factory/orafce/orafce.changes 2023-03-14 18:17:28.747999426 +0100 +++ /work/SRC/openSUSE:Factory/.orafce.new.9019/orafce.changes 2023-04-03 17:45:46.582754194 +0200 @@ -1,0 +2,30 @@ +Sun Apr 02 20:30:20 UTC 2023 - [email protected] + +- Update to version 4.2.4+git0.2499240: + * prepare for 4.2.4 + * fix issue #218 + * prepare for 4.2.3 + * completation of support unicode API for IO operation on WIN32 + * use wide char file API for win + * prepare for 4.2.2 + * win win32 build + +------------------------------------------------------------------- +Tue Mar 14 08:59:26 UTC 2023 - [email protected] + +- Update to version 4.2.1+git0.82ab40c: + * prepare for 4.2.1 + * fix build Postgres 15 + * update copyright year + * formmatting, removing white spaces + * typo + * update copyright year + * Use function _wfopen on WIN32 platform instead fopen. It should to work with file names where are used not ANSI chars. + * fix PostgreSQL 15 build + * fix build for PostgreSQL 16 + * Update README.asciidoc + * possibility to use gen_random_uuid for making result in sys_guid function + * fix build for all supported pg releases + * implementation of oracle.sys_guid() based on uuid-ossp + +------------------------------------------------------------------- Old: ---- orafce-4.2.1+git0.82ab40c.obscpio New: ---- orafce-4.2.4+git0.2499240.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ orafce.spec ++++++ --- /var/tmp/diff_new_pack.aIkkgf/_old 2023-04-03 17:45:47.251271796 +0200 +++ /var/tmp/diff_new_pack.aIkkgf/_new 2023-04-03 17:45:47.255274896 +0200 @@ -20,7 +20,7 @@ %define realname orafce Name: %{pgname}-orafce -Version: 4.2.1+git0.82ab40c +Version: 4.2.4+git0.2499240 Release: 0 Summary: Implementation of some Oracle functions into PostgreSQL Group: Productivity/Databases/Tools ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.aIkkgf/_old 2023-04-03 17:45:47.323327586 +0200 +++ /var/tmp/diff_new_pack.aIkkgf/_new 2023-04-03 17:45:47.327330685 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/orafce/orafce.git</param> - <param name="changesrevision">82ab40cfd1649588c92ef1b9d94d89a1316f01fb</param></service></servicedata> + <param name="changesrevision">24992406c27786f007d3eb2afe9dc64475fd3a68</param></service></servicedata> (No newline at EOF) ++++++ orafce-4.2.1+git0.82ab40c.obscpio -> orafce-4.2.4+git0.2499240.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orafce-4.2.1+git0.82ab40c/META.json new/orafce-4.2.4+git0.2499240/META.json --- old/orafce-4.2.1+git0.82ab40c/META.json 2023-03-13 18:07:21.000000000 +0100 +++ new/orafce-4.2.4+git0.2499240/META.json 2023-04-02 09:21:09.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.2.1", + "version": "4.2.4", "maintainer": [ "Pavel Stehule <[email protected]>", "Takahiro Itagaki <[email protected]>" @@ -25,7 +25,7 @@ "orafce": { "file": "sql/orafce.sql", "docfile": "README.orafce", - "version": "4.2.1", + "version": "4.2.4", "abstract": "Oracle's compatibility functions and packages" } }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orafce-4.2.1+git0.82ab40c/builtins.h new/orafce-4.2.4+git0.2499240/builtins.h --- old/orafce-4.2.1+git0.82ab40c/builtins.h 2023-03-13 18:07:21.000000000 +0100 +++ new/orafce-4.2.4+git0.2499240/builtins.h 2023-04-02 09:21:09.000000000 +0200 @@ -130,6 +130,7 @@ extern PGDLLEXPORT Datum ora_get_status(PG_FUNCTION_ARGS); extern PGDLLEXPORT Datum ora_greatest(PG_FUNCTION_ARGS); extern PGDLLEXPORT Datum ora_least(PG_FUNCTION_ARGS); +extern PGDLLEXPORT Datum orafce_sys_guid(PG_FUNCTION_ARGS); /* from pipe.c */ extern PGDLLEXPORT Datum dbms_pipe_pack_message_text(PG_FUNCTION_ARGS); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orafce-4.2.1+git0.82ab40c/file.c new/orafce-4.2.4+git0.2499240/file.c --- old/orafce-4.2.1+git0.82ab40c/file.c 2023-03-13 18:07:21.000000000 +0100 +++ new/orafce-4.2.4+git0.2499240/file.c 2023-04-02 09:21:09.000000000 +0200 @@ -1010,9 +1010,30 @@ fullname = get_safe_path(PG_GETARG_TEXT_P(0), PG_GETARG_TEXT_P(1)); +#ifndef WIN32 + if (unlink(fullname) != 0) IO_EXCEPTION(); +#else + + if (pg_database_encoding_max_length() > 1) + { + wchar_t *_fullname = to_wchar(fullname); + + if (_wunlink(_fullname) != 0) + IO_EXCEPTION(); + + pfree(_fullname); + } + else + { + if (unlink(fullname) != 0) + IO_EXCEPTION(); + } + +#endif + PG_RETURN_VOID(); } @@ -1040,6 +1061,8 @@ srcpath = get_safe_path(PG_GETARG_TEXT_P(0), PG_GETARG_TEXT_P(1)); dstpath = get_safe_path(PG_GETARG_TEXT_P(2), PG_GETARG_TEXT_P(3)); +#ifndef WIN32 + if (!overwrite) { struct stat st; @@ -1053,6 +1076,47 @@ if (rename(srcpath, dstpath) != 0) IO_EXCEPTION(); +#else + + if (pg_database_encoding_max_length() > 1) + { + wchar_t *_dstpath = to_wchar(dstpath); + wchar_t *_srcpath = to_wchar(srcpath); + + if (!overwrite) + { + struct _stat _st; + if (_wstat(_dstpath, &_st) == 0) + CUSTOM_EXCEPTION(WRITE_ERROR, "File exists"); + else if (errno != ENOENT) + IO_EXCEPTION(); + } + + /* rename() overwrites existing files. */ + if (_wrename(_srcpath, _dstpath) != 0) + IO_EXCEPTION(); + + pfree(_dstpath); + pfree(_srcpath); + } + else + { + if (!overwrite) + { + struct stat st; + if (stat(dstpath, &st) == 0) + CUSTOM_EXCEPTION(WRITE_ERROR, "File exists"); + else if (errno != ENOENT) + IO_EXCEPTION(); + } + + /* rename() overwrites existing files. */ + if (rename(srcpath, dstpath) != 0) + IO_EXCEPTION(); + } + +#endif + PG_RETURN_VOID(); } @@ -1095,14 +1159,54 @@ (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("end_line must be positive (%d passed)", end_line))); - srcfile = AllocateFile(srcpath, "rt"); +#ifndef WIN32 + + srcfile = fopen(srcpath, "rt"); + +#else + + if (pg_database_encoding_max_length() > 1) + { + wchar_t *_srcpath = to_wchar(srcpath); + wchar_t *_mode = to_wchar("rt"); + + srcfile = _wfopen(_srcpath, _mode); + + pfree(_srcpath); + pfree(_mode); + } + else + srcfile = fopen(srcpath, "rt"); + +#endif + if (srcfile == NULL) { /* failed to open src file. */ IO_EXCEPTION(); } - dstfile = AllocateFile(dstpath, "wt"); +#ifndef WIN32 + + dstfile = fopen(dstpath, "wt"); + +#else + + if (pg_database_encoding_max_length() > 1) + { + wchar_t *_dstpath = to_wchar(dstpath); + wchar_t *_mode = to_wchar("wt"); + + dstfile = _wfopen(_dstpath, _mode); + + pfree(_dstpath); + pfree(_mode); + } + else + dstfile = fopen(dstpath, "wt"); + +#endif + if (dstfile == NULL) { /* failed to open dst file. */ @@ -1113,8 +1217,8 @@ if (copy_text_file(srcfile, dstfile, start_line, end_line)) IO_EXCEPTION(); - FreeFile(srcfile); - FreeFile(dstfile); + fclose(srcfile); + fclose(dstfile); PG_RETURN_VOID(); } @@ -1193,15 +1297,49 @@ fullname = get_safe_path(PG_GETARG_TEXT_P(0), PG_GETARG_TEXT_P(1)); +#ifndef WIN32 + if (stat(fullname, &st) == 0) { values[0] = BoolGetDatum(true); values[1] = Int64GetDatum(st.st_size); -#ifndef WIN32 values[2] = Int32GetDatum(st.st_blksize); + } + else + { + values[0] = BoolGetDatum(false); + nulls[1] = true; + nulls[2] = true; + } + #else + + if (pg_database_encoding_max_length() > 1) + { + wchar_t *_fullname = to_wchar(fullname); + struct _stat _st; + + if (_wstat(_fullname, &_st) == 0) + { + values[0] = BoolGetDatum(true); + values[1] = Int64GetDatum(_st.st_size); + values[2] = 512; /* NTFS block size */ + + } + else + { + values[0] = BoolGetDatum(false); + nulls[1] = true; + nulls[2] = true; + } + + pfree(_fullname); + } + else if (stat(fullname, &st) == 0) + { + values[0] = BoolGetDatum(true); + values[1] = Int64GetDatum(st.st_size); values[2] = 512; /* NTFS block size */ -#endif } else { @@ -1210,6 +1348,8 @@ nulls[2] = true; } +#endif + tuple = heap_form_tuple(tupdesc, values, nulls); result = HeapTupleGetDatum(tuple); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/orafce-4.2.1+git0.82ab40c/orafce.c new/orafce-4.2.4+git0.2499240/orafce.c --- old/orafce-4.2.1+git0.82ab40c/orafce.c 2023-03-13 18:07:21.000000000 +0100 +++ new/orafce-4.2.4+git0.2499240/orafce.c 2023-04-02 09:21:09.000000000 +0200 @@ -32,7 +32,7 @@ #if PG_VERSION_NUM >= 150000 -shmem_request_hook_type prev_shmem_request_hook = NULL; +static shmem_request_hook_type prev_shmem_request_hook = NULL; #endif ++++++ orafce.obsinfo ++++++ --- /var/tmp/diff_new_pack.aIkkgf/_old 2023-04-03 17:45:47.583529048 +0200 +++ /var/tmp/diff_new_pack.aIkkgf/_new 2023-04-03 17:45:47.591535247 +0200 @@ -1,5 +1,5 @@ name: orafce -version: 4.2.1+git0.82ab40c -mtime: 1678727241 -commit: 82ab40cfd1649588c92ef1b9d94d89a1316f01fb +version: 4.2.4+git0.2499240 +mtime: 1680420069 +commit: 24992406c27786f007d3eb2afe9dc64475fd3a68
