int nparams = 0;
int nalloc = 0;
- pset.bind_params = NULL;
+ clean_bind_state();
while ((opt = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, false)))
{
}
/* clean up after \bind */
- if (pset.bind_flag)
- {
- for (i = 0; i < pset.bind_nparams; i++)
- free(pset.bind_params[i]);
- free(pset.bind_params);
- pset.bind_params = NULL;
- pset.bind_flag = false;
- }
+ clean_bind_state();
/* reset \gset trigger */
if (pset.gset_prefix)
return 0;
}
+/*
+ * Reset state related to \bind
+ *
+ * Clean up any state related to bind parameters and bind_flag. This needs
+ * to be called after processing a query or when running \bind.
+ */
+void
+clean_bind_state(void)
+{
+ if (pset.bind_flag)
+ {
+ for (int i = 0; i < pset.bind_nparams; i++)
+ free(pset.bind_params[i]);
+ free(pset.bind_params);
+ }
+
+ pset.bind_params = NULL;
+ pset.bind_flag = false;
+}
+
/*
* Recognized connection string either starts with a valid URI prefix or
* contains a "=" in it.
extern const char *session_username(void);
extern void expand_tilde(char **filename);
+extern void clean_bind_state(void);
extern bool recognized_connection_string(const char *connstr);