Changeset: 2db1736428c2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2db1736428c2
Modified Files:
sql/server/rel_remote.c
sql/server/rel_remote.h
Branch: odbc_loader
Log Message:
Add sa_msettings_to_string()
diffs (60 lines):
diff --git a/sql/server/rel_remote.c b/sql/server/rel_remote.c
--- a/sql/server/rel_remote.c
+++ b/sql/server/rel_remote.c
@@ -41,8 +41,20 @@ sa_msettings_create(allocator *sa)
return msettings_create_with(msettings_sa_allocator, sa);
}
-#define mapi_prefix "mapi:"
-#define monetdb_prefix "monetdb"
+char*
+sa_msettings_to_string(const msettings *mp, allocator *sa, size_t size_hint)
+{
+ size_t buffer_size = size_hint ? size_hint + 1 : 80;
+ do {
+ char *buffer = sa_alloc(sa, buffer_size);
+ if (!buffer)
+ return NULL;
+ size_t needed = msettings_write_url(mp, buffer, buffer_size);
+ if (needed + 1 <= buffer_size)
+ return buffer;
+ buffer_size = needed + 1;
+ } while (1);
+}
int
mapiuri_valid( const char *uri, allocator *sa)
@@ -62,21 +74,7 @@ mapiuri_uri( const char *uri, allocator
return NULL;
msetting_set_string(mp, MP_TABLESCHEMA, "");
msetting_set_string(mp, MP_TABLE, "");
-
- size_t buffer_size = strlen(uri) + 1;
- do {
- char *buffer = sa_alloc(sa, buffer_size);
- if (!buffer)
- return NULL;
- size_t needed = msettings_write_url(mp, buffer, buffer_size);
- if (needed + 1 <= buffer_size)
- return buffer;
- // it's unlikely but remotely possible that the url as written
by
- // msettings_write_url is longer, for example because it
escapes some
- // characters that were not escaped in the original
- buffer_size = needed + 1;
- } while (1);
-
+ return sa_msettings_to_string(mp, sa, strlen(uri));
}
const char *
diff --git a/sql/server/rel_remote.h b/sql/server/rel_remote.h
--- a/sql/server/rel_remote.h
+++ b/sql/server/rel_remote.h
@@ -18,6 +18,7 @@
// maybe this needs to be somewhere more global?
extern msettings *sa_msettings_create(allocator *sa);
+extern char *sa_msettings_to_string(const msettings *mp, allocator *sa, size_t
size_hint);
sql_export int mapiuri_valid( const char *uri, allocator *sa);
extern const char *mapiuri_uri(const char *uri, allocator *sa);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]