File: sql_code_vdb.c

package info (click to toggle)
virtuoso-opensource 6.1.6+dfsg2-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid, stretch
  • size: 260,992 kB
  • ctags: 125,220
  • sloc: ansic: 652,748; sql: 458,419; xml: 282,834; java: 61,031; sh: 40,031; cpp: 36,890; cs: 25,240; php: 12,692; yacc: 9,523; lex: 7,018; makefile: 6,157; jsp: 4,484; awk: 1,643; perl: 1,013; ruby: 1,003; python: 326
file content (79 lines) | stat: -rw-r--r-- 1,852 bytes parent folder | download | duplicates (3)
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)
{
}