MCPcopy Create free account
hub / github.com/MariaDB/server / AddCol

Method AddCol

storage/connect/cmgoconn.cpp:36–89  ·  view source on GitHub ↗

/ Add a column in the column list. */ /

Source from the content-addressed store, hash-verified

34/* Add a column in the column list. */
35/***********************************************************************/
36void INCOL::AddCol(PGLOBAL g, PCOL colp, char *jp)
37{
38 char *p;
39 PKC kp, kcp;
40
41 if ((p = strchr(jp, '.'))) {
42 PINCOL icp;
43
44 *p++ = 0;
45
46 for (kp = Klist; kp; kp = kp->Next)
47 if (kp->Incolp && !strcmp(jp, kp->Key))
48 break;
49
50 if (!kp) {
51 icp = new(g) INCOL();
52 kcp = (PKC)PlugSubAlloc(g, NULL, sizeof(KEYCOL));
53 kcp->Next = NULL;
54 kcp->Incolp = icp;
55 kcp->Colp = NULL;
56 kcp->Key = PlugDup(g, jp);
57 kcp->Array = IsArray(p);
58
59 if (Klist) {
60 for (kp = Klist; kp->Next; kp = kp->Next);
61
62 kp->Next = kcp;
63 } else
64 Klist = kcp;
65
66 } else
67 icp = kp->Incolp;
68
69 *(p - 1) = '.';
70 icp->AddCol(g, colp, p);
71 } else {
72 kcp = (PKC)PlugSubAlloc(g, NULL, sizeof(KEYCOL));
73
74 kcp->Next = NULL;
75 kcp->Incolp = NULL;
76 kcp->Colp = colp;
77 kcp->Key = jp;
78 kcp->Array = IsArray(jp);
79
80 if (Klist) {
81 for (kp = Klist; kp->Next; kp = kp->Next);
82
83 kp->Next = kcp;
84 } else
85 Klist = kcp;
86
87 } // endif jp
88
89} // end of AddCol
90
91/***********************************************************************/
92/* Clear. */

Callers 1

MakeColumnGroupsMethod · 0.45

Calls 3

PlugSubAllocFunction · 0.85
PlugDupFunction · 0.85
IsArrayFunction · 0.85

Tested by

no test coverage detected