Changeset: a8e4749f8754 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a8e4749f8754
Modified Files:
gdk/gdk_utils.c
sql/backends/monet5/sql_cat.c
sql/server/rel_schema.c
sql/server/sql_mvc.c
Branch: default
Log Message:
Merge with Mar2025 branch.
diffs (83 lines):
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -61,6 +61,11 @@ static void GDKunlockHome(int farmid);
#undef realloc
#undef free
+#ifdef WITH_TCMALLOC
+#include <gperftools/tcmalloc.h>
+#include <gperftools/malloc_extension_c.h>
+#endif
+
/* when the number of updates to a BAT is less than 1 in this number, we
* keep the unique_est property */
BUN gdk_unique_estimate_keep_fraction = GDK_UNIQUE_ESTIMATE_KEEP_FRACTION; /*
should become a define once */
@@ -2063,6 +2068,24 @@ GDKprintinfo(void)
jeresident, humansize(jeresident, (char[24]){0}, 24),
jeretained, humansize(jeretained, (char[24]){0}, 24));
#endif
+#ifdef WITH_TCMALLOC
+ size_t tcallocated = 0, tchsize = 0, tcfree = 0, tcunmapped = 0, tcmax
= 0, tccur = 0;
+ MallocExtension_GetNumericProperty("generic.current_allocated_bytes",
&tcallocated);
+ MallocExtension_GetNumericProperty("generic.heap_size", &tchsize);
+ MallocExtension_GetNumericProperty("tcmalloc.pageheap_free_bytes",
&tcfree);
+ MallocExtension_GetNumericProperty("tcmalloc.pageheap_unmapped_bytes",
&tcunmapped);
+
MallocExtension_GetNumericProperty("tcmalloc.max_total_thread_cache_bytes",
&tcmax);
+
MallocExtension_GetNumericProperty("tcmalloc.current_total_thread_cache_bytes",
&tccur);
+ printf("tcmalloc: allocated %zu%s, heap size %zu%s, free %zu%s, "
+ "unmapped %zu%s, max total thread cache %zu%s, "
+ "current total thread cache %zu%s\n",
+ tcallocated, humansize(tcallocated, (char[24]){0}, 24),
+ tchsize, humansize(tchsize, (char[24]){0}, 24),
+ tcfree, humansize(tcfree, (char[24]){0}, 24),
+ tcunmapped, humansize(tcunmapped, (char[24]){0}, 24),
+ tcmax, humansize(tcmax, (char[24]){0}, 24),
+ tccur, humansize(tccur, (char[24]){0}, 24));
+#endif
#elif defined(HAVE_MALLINFO2)
struct mallinfo2 mi = mallinfo2();
printf("mallinfo: arena %zu%s, ordblks %zu, smblks %zu, hblks %zu, "
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -2197,7 +2197,7 @@ SQLrename_schema(Client cntxt, MalBlkPtr
throw(SQL, "sql.rename_schema", SQLSTATE(3F000)
"ALTER SCHEMA: there is a schema named '%s' in the
database", new_name);
- if (mvc_check_dependency(sql, s->base.id, SCHEMA_DEPENDENCY, NULL) ==
HAS_DEPENDENCY) {
+ if (mvc_check_dependency(sql, s->base.id, SCHEMA_DEPENDENCY, NULL)) {
throw(SQL, "sql.rename_schema", "ALTER SCHEMA: unable to"
" rename schema '%s', there are database objects"
" which depend on it", old_name);
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -2877,8 +2877,11 @@ rel_rename_schema(mvc *sql, char *old_na
if (mvc_bind_schema(sql, new_name))
return sql_error(sql, 02, SQLSTATE(3F000) "ALTER SCHEMA: there
is a schema named '%s' in the database", new_name);
- if (mvc_check_dependency(sql, s->base.id, SCHEMA_DEPENDENCY, NULL) !=
NO_DEPENDENCY) {
- return sql_error(sql, 02, SQLSTATE(2BM37) "ALTER SCHEMA: unable
to rename schema '%s', there are database objects which depend on it",
old_name);
+ if (mvc_check_dependency(sql, s->base.id, SCHEMA_DEPENDENCY, NULL)) {
+ return sql_error(sql, 02,
+ SQLSTATE(2BM37) "ALTER SCHEMA:
unable to"
+ " rename schema '%s', there
are database objects"
+ " which depend on it",
old_name);
}
rel = rel_create(sql->sa);
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -1426,9 +1426,7 @@ mvc_check_dependency(mvc *m, sqlid id, s
dep_list =
sql_trans_owner_schema_dependencies(m->session->tr, id);
break;
case SCHEMA_DEPENDENCY:
- dep_list =
sql_trans_schema_user_dependencies(m->session->tr, id);
- if (!dep_list)
- dep_list =
sql_trans_get_dependents(m->session->tr, id, SCHEMA_DEPENDENCY, NULL);
+ dep_list = sql_trans_get_dependents(m->session->tr, id,
SCHEMA_DEPENDENCY, NULL);
break;
case TABLE_DEPENDENCY:
dep_list = sql_trans_get_dependents(m->session->tr, id,
TABLE_DEPENDENCY, NULL);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]