1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
/* This file is automatically generated by sql_to_c.awk */
#include "sqlnode.h"
#include "sqlfn.h"
#include "sqltype.h"
/* vdb.sql */
static const char *proc0 =
"#line 26 \"[executable]/vdb.sql\"\n"
"create procedure att_fill_non_pk_parts (in local_name varchar, in pk_id integer,\n"
"in pk_n_parts integer)\n"
"{\n"
"declare c_id, inx integer;\n"
"declare col_cr cursor for\n"
"select COL_ID from SYS_COLS where \"TABLE\" = local_name\n"
"and not exists (\n"
"select 1 from SYS_KEY_PARTS\n"
"where\n"
"KP_KEY_ID = pk_id and\n"
"KP_NTH < pk_n_parts and\n"
"KP_COL = COL_ID)\n"
"order by COL_ID;\n"
"\n"
"inx := pk_n_parts;\n"
"whenever not found goto done;\n"
"open col_cr;\n"
"while (1)\n"
"{\n"
"fetch col_cr into c_id;\n"
"insert into SYS_KEY_PARTS (KP_KEY_ID, KP_NTH, KP_COL)\n"
"values (pk_id, inx, c_id);\n"
"inx := inx + 1;\n"
"}\n"
"done:\n"
"return;\n"
"}\n"
"--src vdb.sql:24\n";
static int
sch_proc_def_exists (client_connection_t *cli, const char *proc_name, const int report)
{
query_t *proc = NULL;
char *full_name = sch_full_proc_name (isp_schema(NULL), proc_name,
cli->cli_qualifier, CLI_OWNER (cli));
if (full_name)
proc = sch_proc_def (isp_schema(NULL), full_name);
if (report && proc != NULL)
log_debug ("built-in procedure \"%s\" overruled by the RDBMS", proc_name);
return (proc != NULL);
}
#define DEFINE_PROC(name, proc) \
if (!sch_proc_def_exists (bootstrap_cli, (name), log_proc_overwrite)) \
ddl_std_proc_1 (proc, 0x0, 1)
#define DEFINE_PUBLIC_PROC(name, proc) \
if (!sch_proc_def_exists (bootstrap_cli, (name), log_proc_overwrite)) \
ddl_std_proc_1 (proc, 0x1, 1)
#define DEFINE_OVERWRITE_PROC(name, proc) \
ddl_std_proc_1 (proc, 0x1, 1)
void
sqls_define_vdb (void)
{
/* vdb.sql */
DEFINE_PROC ("att_fill_non_pk_parts", proc0);
}
void
sqls_arfw_define_vdb (void)
{
}
|