MCPcopy Create free account
hub / github.com/apache/cloudberry / transformColumnRef

Function transformColumnRef

src/backend/parser/parse_expr.c:473–856  ·  view source on GitHub ↗

* Transform a ColumnRef. * * If you find yourself changing this code, see also ExpandColumnRefStar. */

Source from the content-addressed store, hash-verified

471 * If you find yourself changing this code, see also ExpandColumnRefStar.
472 */
473static Node *
474transformColumnRef(ParseState *pstate, ColumnRef *cref)
475{
476 Node *node = NULL;
477 char *nspname = NULL;
478 char *relname = NULL;
479 char *colname = NULL;
480 ParseNamespaceItem *nsitem;
481 int levels_up;
482 enum
483 {
484 CRERR_NO_COLUMN,
485 CRERR_NO_RTE,
486 CRERR_WRONG_DB,
487 CRERR_TOO_MANY
488 } crerr = CRERR_NO_COLUMN;
489 const char *err;
490
491 /*
492 * Check to see if the column reference is in an invalid place within the
493 * query. We allow column references in most places, except in default
494 * expressions and partition bound expressions.
495 */
496 err = NULL;
497 switch (pstate->p_expr_kind)
498 {
499 case EXPR_KIND_NONE:
500 Assert(false); /* can't happen */
501 break;
502 case EXPR_KIND_OTHER:
503 case EXPR_KIND_JOIN_ON:
504 case EXPR_KIND_JOIN_USING:
505 case EXPR_KIND_FROM_SUBSELECT:
506 case EXPR_KIND_FROM_FUNCTION:
507 case EXPR_KIND_WHERE:
508 case EXPR_KIND_POLICY:
509 case EXPR_KIND_HAVING:
510 case EXPR_KIND_FILTER:
511 case EXPR_KIND_WINDOW_PARTITION:
512 case EXPR_KIND_WINDOW_ORDER:
513 case EXPR_KIND_WINDOW_FRAME_RANGE:
514 case EXPR_KIND_WINDOW_FRAME_ROWS:
515 case EXPR_KIND_WINDOW_FRAME_GROUPS:
516 case EXPR_KIND_SELECT_TARGET:
517 case EXPR_KIND_INSERT_TARGET:
518 case EXPR_KIND_UPDATE_SOURCE:
519 case EXPR_KIND_UPDATE_TARGET:
520 case EXPR_KIND_GROUP_BY:
521 case EXPR_KIND_ORDER_BY:
522 case EXPR_KIND_DISTINCT_ON:
523 case EXPR_KIND_LIMIT:
524 case EXPR_KIND_OFFSET:
525 case EXPR_KIND_RETURNING:
526 case EXPR_KIND_VALUES:
527 case EXPR_KIND_VALUES_SINGLE:
528 case EXPR_KIND_CHECK_CONSTRAINT:
529 case EXPR_KIND_DOMAIN_CHECK:
530 case EXPR_KIND_FUNCTION_DEFAULT:

Callers 1

transformExprRecurseFunction · 0.85

Calls 15

parser_errpositionFunction · 0.85
list_lengthFunction · 0.85
colNameToVarFunction · 0.85
refnameNamespaceItemFunction · 0.85
transformWholeRowRefFunction · 0.85
scanNSItemForColumnFunction · 0.85
ParseFuncOrColumnFunction · 0.85
makeStringFunction · 0.85
get_database_nameFunction · 0.85
NameListToStringFunction · 0.85
errorMissingColumnFunction · 0.85
errorMissingRTEFunction · 0.85

Tested by

no test coverage detected