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]