aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_target.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/parse_target.c')
-rw-r--r--src/backend/parser/parse_target.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index ce3f51ca6e5..007a3cc6936 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.174 2009/10/31 01:41:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.175 2009/12/23 02:35:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1410,13 +1410,40 @@ FigureColname(Node *node)
{
char *name = NULL;
- FigureColnameInternal(node, &name);
+ (void) FigureColnameInternal(node, &name);
if (name != NULL)
return name;
/* default result if we can't guess anything */
return "?column?";
}
+/*
+ * FigureIndexColname -
+ * choose the name for an expression column in an index
+ *
+ * This is actually just like FigureColname, except we return NULL if
+ * we can't pick a good name.
+ */
+char *
+FigureIndexColname(Node *node)
+{
+ char *name = NULL;
+
+ (void) FigureColnameInternal(node, &name);
+ return name;
+}
+
+/*
+ * FigureColnameInternal -
+ * internal workhorse for FigureColname
+ *
+ * Return value indicates strength of confidence in result:
+ * 0 - no information
+ * 1 - second-best name choice
+ * 2 - good name choice
+ * The return value is actually only used internally.
+ * If the result isn't zero, *name is set to the chosen name.
+ */
static int
FigureColnameInternal(Node *node, char **name)
{