Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfd3ad7d

Browse files
committed
Allow to call utility funcs without SPI_connect.
1 parent7f97e05 commitfd3ad7d

File tree

1 file changed

+5
-47
lines changed
  • src/backend/executor

1 file changed

+5
-47
lines changed

‎src/backend/executor/spi.c

Lines changed: 5 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ static void _SPI_fetch(FetchStmt * stmt);
4848
#endif
4949
staticint
5050
_SPI_execute_plan(_SPI_plan*plan,
51-
char**Values,char*Nulls,inttcount);
51+
Datum*Values,char*Nulls,inttcount);
5252

5353
#define_SPI_CPLAN_CURCXT0
5454
#define_SPI_CPLAN_PROCXT1
@@ -199,7 +199,7 @@ SPI_exec(char *src, int tcount)
199199
}
200200

201201
int
202-
SPI_execp(void*plan,char**Values,char*Nulls,inttcount)
202+
SPI_execp(void*plan,Datum*Values,char*Nulls,inttcount)
203203
{
204204
intres;
205205

@@ -282,10 +282,7 @@ int
282282
SPI_fnumber(TupleDesctupdesc,char*fname)
283283
{
284284
intres;
285-
286-
if (_SPI_curid+1!=_SPI_connected)
287-
return (SPI_ERROR_UNCONNECTED);
288-
285+
289286
for (res=0;res<tupdesc->natts;res++)
290287
{
291288
if (strcasecmp(tupdesc->attrs[res]->attname.data,fname)==0)
@@ -300,20 +297,13 @@ SPI_fname(TupleDesc tupdesc, int fnumber)
300297
{
301298

302299
SPI_result=0;
303-
if (_SPI_curid+1!=_SPI_connected)
304-
{
305-
SPI_result=SPI_ERROR_UNCONNECTED;
306-
return (NULL);
307-
}
308-
309300
if (tupdesc->natts<fnumber||fnumber <=0)
310301
{
311302
SPI_result=SPI_ERROR_NOATTRIBUTE;
312303
return (NULL);
313304
}
314305

315306
return (nameout(&(tupdesc->attrs[fnumber-1]->attname)));
316-
317307
}
318308

319309
char*
@@ -324,12 +314,6 @@ SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber)
324314
Oidfoutoid;
325315

326316
SPI_result=0;
327-
if (_SPI_curid+1!=_SPI_connected)
328-
{
329-
SPI_result=SPI_ERROR_UNCONNECTED;
330-
return (NULL);
331-
}
332-
333317
if (tuple->t_natts<fnumber||fnumber <=0)
334318
return (NULL);
335319

@@ -353,12 +337,6 @@ SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool * isnull)
353337

354338
*isnull= true;
355339
SPI_result=0;
356-
if (_SPI_curid+1!=_SPI_connected)
357-
{
358-
SPI_result=SPI_ERROR_UNCONNECTED;
359-
return (NULL);
360-
}
361-
362340
if (tuple->t_natts<fnumber||fnumber <=0)
363341
return (NULL);
364342

@@ -373,12 +351,6 @@ SPI_gettype(TupleDesc tupdesc, int fnumber)
373351
HeapTupletypeTuple;
374352

375353
SPI_result=0;
376-
if (_SPI_curid+1!=_SPI_connected)
377-
{
378-
SPI_result=SPI_ERROR_UNCONNECTED;
379-
return (NULL);
380-
}
381-
382354
if (tupdesc->natts<fnumber||fnumber <=0)
383355
{
384356
SPI_result=SPI_ERROR_NOATTRIBUTE;
@@ -403,12 +375,6 @@ SPI_gettypeid(TupleDesc tupdesc, int fnumber)
403375
{
404376

405377
SPI_result=0;
406-
if (_SPI_curid+1!=_SPI_connected)
407-
{
408-
SPI_result=SPI_ERROR_UNCONNECTED;
409-
return (InvalidOid);
410-
}
411-
412378
if (tupdesc->natts<fnumber||fnumber <=0)
413379
{
414380
SPI_result=SPI_ERROR_NOATTRIBUTE;
@@ -421,14 +387,6 @@ SPI_gettypeid(TupleDesc tupdesc, int fnumber)
421387
char*
422388
SPI_getrelname(Relationrel)
423389
{
424-
425-
SPI_result=0;
426-
if (_SPI_curid+1!=_SPI_connected)
427-
{
428-
SPI_result=SPI_ERROR_UNCONNECTED;
429-
return (NULL);
430-
}
431-
432390
return (pstrdup(rel->rd_rel->relname.data));
433391
}
434392

@@ -581,7 +539,7 @@ _SPI_execute(char *src, int tcount, _SPI_plan * plan)
581539
}
582540

583541
staticint
584-
_SPI_execute_plan(_SPI_plan*plan,char**Values,char*Nulls,inttcount)
542+
_SPI_execute_plan(_SPI_plan*plan,Datum*Values,char*Nulls,inttcount)
585543
{
586544
QueryTreeList*queryTree_list=plan->qtlist;
587545
List*planTree_list=plan->ptlist;
@@ -634,7 +592,7 @@ _SPI_execute_plan(_SPI_plan * plan, char **Values, char *Nulls, int tcount)
634592
paramLI->kind=PARAM_NUM;
635593
paramLI->id=k+1;
636594
paramLI->isnull= (Nulls!=NULL&&Nulls[k]!='n');
637-
paramLI->value=(Datum)Values[k];
595+
paramLI->value=Values[k];
638596
}
639597
paramLI->kind=PARAM_INVALID;
640598
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp