Changeset: 6f276159d3f3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6f276159d3f3
Removed Files:
        gdk/gdk_interprocess.c
        gdk/gdk_interprocess.h
Modified Files:
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        clients/Tests/exports.stable.out
        cmake/monetdb-defines.cmake
        gdk/CMakeLists.txt
        gdk/gdk_heap.c
        monetdb5/mal/mal_linker.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        monetdb_config.h.in
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.test
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.test
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_27.test
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.test
        sql/backends/monet5/UDF/pyapi3/connection.h
        sql/backends/monet5/UDF/pyapi3/connection3.c
        sql/backends/monet5/UDF/pyapi3/conversion3.c
        sql/backends/monet5/UDF/pyapi3/convert_loops.h
        sql/backends/monet5/UDF/pyapi3/emit3.c
        sql/backends/monet5/UDF/pyapi3/pyapi3.c
        sql/backends/monet5/UDF/pyapi3/pyloader3.c
        sql/backends/monet5/sql_gencode.c
        sql/include/sql_catalog.h
        sql/scripts/10_sys_schema_extension.sql
        sql/server/rel_psm.c
        sql/server/sql_parser.y
        sql/storage/store.c
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/testdb/Tests/dump-nogeom.stable.out
        sql/test/testdb/Tests/dump.stable.out
Branch: default
Log Message:

removed forking mserver in pyapi code.


diffs (truncated from 2582 to 300 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -33478,21 +33478,6 @@ subeval_aggr
 unsafe pattern batpyapi3.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
 PYAPI3PyAPIevalAggr;
 grouped aggregates through Python
-batpyapi3map
-eval
-pattern batpyapi3map.eval(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalStdMap;
-Execute a simple Python script value
-batpyapi3map
-eval_aggr
-pattern batpyapi3map.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
-batpyapi3map
-subeval_aggr
-pattern batpyapi3map.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
 batrapi
 eval
 pattern batrapi.eval(X_0:lng, X_1:ptr, X_2:str):any... 
@@ -48858,26 +48843,6 @@ subeval_aggr
 unsafe pattern pyapi3.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
 PYAPI3PyAPIevalAggr;
 grouped aggregates through Python
-pyapi3map
-eval
-pattern pyapi3map.eval(X_0:ptr, X_1:str):any 
-PYAPI3PyAPIevalStdMap;
-Execute a simple Python script returning a single value
-pyapi3map
-eval
-pattern pyapi3map.eval(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalStdMap;
-Execute a simple Python script value
-pyapi3map
-eval_aggr
-pattern pyapi3map.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
-pyapi3map
-subeval_aggr
-pattern pyapi3map.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
 querylog
 append
 pattern querylog.append(X_0:str, X_1:str, X_2:str, X_3:timestamp):void 
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -24673,21 +24673,6 @@ subeval_aggr
 unsafe pattern batpyapi3.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
 PYAPI3PyAPIevalAggr;
 grouped aggregates through Python
-batpyapi3map
-eval
-pattern batpyapi3map.eval(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalStdMap;
-Execute a simple Python script value
-batpyapi3map
-eval_aggr
-pattern batpyapi3map.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
-batpyapi3map
-subeval_aggr
-pattern batpyapi3map.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
 batrapi
 eval
 pattern batrapi.eval(X_0:lng, X_1:ptr, X_2:str):any... 
@@ -37288,26 +37273,6 @@ subeval_aggr
 unsafe pattern pyapi3.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
 PYAPI3PyAPIevalAggr;
 grouped aggregates through Python
-pyapi3map
-eval
-pattern pyapi3map.eval(X_0:ptr, X_1:str):any 
-PYAPI3PyAPIevalStdMap;
-Execute a simple Python script returning a single value
-pyapi3map
-eval
-pattern pyapi3map.eval(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalStdMap;
-Execute a simple Python script value
-pyapi3map
-eval_aggr
-pattern pyapi3map.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
-pyapi3map
-subeval_aggr
-pattern pyapi3map.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
-PYAPI3PyAPIevalAggrMap;
-grouped aggregates through Python
 querylog
 append
 pattern querylog.append(X_0:str, X_1:str, X_2:str, X_3:timestamp):void 
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -264,15 +264,9 @@ gdk_return GDKanalyticalprod(BAT *r, BAT
 gdk_return GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, 
int tp1, int tp2, int frame_type);
 gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l, const 
void *restrict bound, int tp1, int tp2, int unit, bool preceding, oid 
first_half);
 int GDKatomcnt;
-size_t GDKbatcopy(char *dest, BAT *bat, const char *colname);
-size_t GDKbatcopysize(BAT *bat, const char *colname);
-size_t GDKbatread(char *src, BAT **bat, str *colname);
-gdk_return GDKchangesemval(int sem_id, int number, int change);
-gdk_return GDKchangesemval_timeout(int sem_id, int number, int change, int 
timeout_mseconds, bool *succeed);
 void GDKclrerr(void);
 gdk_return GDKcopyenv(BAT **key, BAT **val, bool writable);
 gdk_return GDKcreatedir(const char *nme);
-gdk_return GDKcreatesem(int id, int count, int *semid);
 ATOMIC_TYPE GDKdebug;
 bool GDKembedded(void);
 bool GDKexiting(void);
@@ -288,11 +282,8 @@ int GDKgetenv_int(const char *name, int 
 bool GDKgetenv_istext(const char *name, const char *text);
 bool GDKgetenv_istrue(const char *name);
 bool GDKgetenv_isyes(const char *name);
-gdk_return GDKgetsem(int sem_id, int count, int *semid);
-gdk_return GDKgetsemval(int sem_id, int number, int *semval);
 gdk_return GDKinit(struct opt *set, int setlen, bool embedded, const char 
*caller_revision);
 BAT *GDKinitialize_segment_tree(void);
-void *GDKinitmmap(size_t id, size_t size, size_t *return_size);
 bool GDKinmemory(int farmid);
 const char *GDKlibversion(void) __attribute__((__const__));
 ATOMIC_TYPE GDKlockcnt;
@@ -313,8 +304,6 @@ void GDKprepareExit(void);
 void GDKqsort(void *restrict h, void *restrict t, const void *restrict base, 
size_t n, int hs, int ts, int tpe, bool reverse, bool nilslast);
 void *GDKrealloc(void *pold, size_t size) __attribute__((__alloc_size__(2))) 
__attribute__((__warn_unused_result__));
 gdk_return GDKrebuild_segment_tree(oid ncount, oid data_size, BAT *st, void 
**segment_tree, oid **levels_offset, oid *nlevels);
-gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id);
-gdk_return GDKreleasesem(int sem_id);
 void GDKreset(int status);
 void GDKsetdebug(unsigned debug);
 gdk_return GDKsetenv(const char *name, const char *value);
@@ -337,7 +326,6 @@ gdk_return GDKtracer_set_flush_level(con
 gdk_return GDKtracer_set_layer_level(const char *layer, const char *lvl);
 gdk_return GDKtracer_set_tracefile(const char *tracefile);
 gdk_return GDKtracer_stop(void);
-size_t GDKuniqueid(size_t offset);
 gdk_return GDKupgradevarheap(BAT *b, var_t v, BUN cap, BUN ncopy) 
__attribute__((__warn_unused_result__));
 lng GDKusec(void);
 const char *GDKversion(void) __attribute__((__const__));
@@ -1174,7 +1162,6 @@ const char *putName(const char *nme);
 const char *putNameLen(const char *nme, size_t len);
 const char *putRef;
 const char *pyapi3Ref;
-const char *pyapi3mapRef;
 const char *querylogRef;
 const char *raiseRef;
 const char *rangejoinRef;
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -72,7 +72,6 @@ function(monetdb_configure_defines)
   # Linux specific, in the future, it might be ported to other platforms
   check_symbol_exists("fallocate" "fcntl.h" HAVE_FALLOCATE)
   check_function_exists("fcntl" HAVE_FCNTL)
-  check_symbol_exists("fork" "unistd.h" HAVE_FORK)
   check_symbol_exists("fsync" "unistd.h" HAVE_FSYNC)
   check_symbol_exists("ftime" "sys/timeb.h" HAVE_FTIME)
   check_function_exists("getentropy" HAVE_GETENTROPY)
diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt
--- a/gdk/CMakeLists.txt
+++ b/gdk/CMakeLists.txt
@@ -81,7 +81,6 @@ target_sources(bat
   gdk_project.c
   gdk_time.c gdk_time.h
   gdk_unique.c
-  gdk_interprocess.c gdk_interprocess.h
   gdk_firstn.c
   gdk_subquery.c gdk_subquery.h
   gdk_analytic_bounds.c
diff --git a/gdk/gdk_heap.c b/gdk/gdk_heap.c
--- a/gdk/gdk_heap.c
+++ b/gdk/gdk_heap.c
@@ -47,7 +47,6 @@
 #include "monetdb_config.h"
 #include "gdk.h"
 #include "gdk_private.h"
-#include "gdk_interprocess.h"
 #include "mutils.h"
 
 static void *
@@ -671,14 +670,6 @@ HEAPfree(Heap *h, bool rmheap)
                } else if (h->storage == STORE_CMEM) {
                        //heap is stored in regular C memory rather than GDK 
memory,so we call free()
                        free(h->base);
-#ifdef HAVE_FORK
-               } else if (h->storage == STORE_MMAPABS) {
-                       size_t id;
-                       sscanf(h->filename, "%zu", &id);
-                       GDKreleasemmap(h->base, h->size, id);
-                       /* the heap has already been removed */
-                       rmheap = false;
-#endif
                } else if (h->storage != STORE_NOWN) {  /* mapped file, or 
STORE_PRIV */
                        gdk_return ret = GDKmunmap(h->base, h->size);
 
diff --git a/gdk/gdk_interprocess.c b/gdk/gdk_interprocess.c
deleted file mode 100644
--- a/gdk/gdk_interprocess.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * SPDX-License-Identifier: MPL-2.0
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0.  If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V.
- */
-
-#include "monetdb_config.h"
-
-#ifdef HAVE_FORK
-
-#include "gdk_interprocess.h"
-#include "gdk.h"
-#include "gdk_private.h"
-#include "mutils.h"
-
-#include <string.h>
-
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sched.h>
-#include <sys/sem.h>
-#include <time.h>
-
-static ATOMIC_TYPE interprocess_unique_id = ATOMIC_VAR_INIT(1);
-static key_t base_key = 800000000;
-
-// Regular ftok produces too many collisions
-static inline void
-ftok_enhanced(int id, key_t * return_key)
-{
-       *return_key = base_key + id;
-}
-
-//! Obtain a set of unique identifiers that can be used to create memory 
mapped files or semaphores
-/* offset: The amount of unique identifiers necessary
- * return: The first unique identifier reserved. The consecutive [offset] 
identifiers are also reserved.
- *  (ex. if offset = 5 and the return value is 10, then the identifiers 10-14 
are reserved)
-*/
-size_t
-GDKuniqueid(size_t offset)
-{
-       return (size_t) ATOMIC_ADD(&interprocess_unique_id, (ATOMIC_BASE_TYPE) 
offset);
-}
-
-//! snprintf the file name of a memory mapped file (as created by GDKinitmmap)
-/* buffer: The buffer to write the name to
- * max: The maxsize of the buffer (should be at least ~10 characters)
- * id: Identifier of the file
-*/
-static inline void
-GDKmmapfile(char *buffer, size_t max, size_t id)
-{
-       snprintf(buffer, max, "pymmap%zu", id);
-}
-
-//! Create a memory mapped file if it does not exist and open it
-/* id: The unique identifier of the memory mapped file (use GDKuniqueid to get 
a unique identifier)
- * size: Minimum required size of the file
- * return: Return value pointing into the file, NULL if not successful
-*/
-void *
-GDKinitmmap(size_t id, size_t size, size_t *return_size)
-{
-       char address[100];
-       void *ptr;
-       int fd;
-       int mod = MMAP_READ | MMAP_WRITE | MMAP_SEQUENTIAL | MMAP_SYNC | 
MAP_SHARED;
-       char *path;
-
-       GDKmmapfile(address, sizeof(address), id);
-
-       /* round up to multiple of GDK_mmap_pagesize with a
-        * minimum of one */
-       size = (size + GDK_mmap_pagesize - 1) & ~(GDK_mmap_pagesize - 1);
-       if (size == 0)
-               size = GDK_mmap_pagesize;
-       int farmid = BBPselectfarm(TRANSIENT, TYPE_bte, dataheap);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to