summaryrefslogtreecommitdiff
path: root/src/include/access/strat.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/access/strat.h')
-rw-r--r--src/include/access/strat.h29
1 files changed, 8 insertions, 21 deletions
diff --git a/src/include/access/strat.h b/src/include/access/strat.h
index b35ecca590..ffe63926cf 100644
--- a/src/include/access/strat.h
+++ b/src/include/access/strat.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: strat.h,v 1.21 2001/03/22 06:16:20 momjian Exp $
+ * $Id: strat.h,v 1.22 2001/05/30 19:53:39 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,6 +17,7 @@
#include "access/skey.h"
+
typedef uint16 StrategyNumber;
#define InvalidStrategy 0
@@ -24,29 +25,14 @@ typedef uint16 StrategyNumber;
typedef struct StrategyTransformMapData
{
StrategyNumber strategy[1]; /* VARIABLE LENGTH ARRAY */
-} StrategyTransformMapData; /* VARIABLE LENGTH
-
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- * STRUCTURE */
+} StrategyTransformMapData; /* VARIABLE LENGTH STRUCTURE */
typedef StrategyTransformMapData *StrategyTransformMap;
typedef struct StrategyOperatorData
{
StrategyNumber strategy;
- bits16 flags; /* scan qualification flags h/skey.h */
+ bits16 flags; /* scan qualification flags, see skey.h */
} StrategyOperatorData;
typedef StrategyOperatorData *StrategyOperator;
@@ -54,7 +40,7 @@ typedef StrategyOperatorData *StrategyOperator;
typedef struct StrategyTermData
{ /* conjunctive term */
uint16 degree;
- StrategyOperatorData operatorData[1]; /* VARIABLE LENGTH */
+ StrategyOperatorData operatorData[1]; /* VARIABLE LENGTH ARRAY */
} StrategyTermData; /* VARIABLE LENGTH STRUCTURE */
typedef StrategyTermData *StrategyTerm;
@@ -69,11 +55,12 @@ typedef StrategyExpressionData *StrategyExpression;
typedef struct StrategyEvaluationData
{
StrategyNumber maxStrategy;
+ /* each of these must point to an array of maxStrategy elements: */
StrategyTransformMap negateTransform;
StrategyTransformMap commuteTransform;
StrategyTransformMap negateCommuteTransform;
- StrategyExpression expression[12]; /* XXX VARIABLE LENGTH */
-} StrategyEvaluationData; /* VARIABLE LENGTH STRUCTURE */
+ StrategyExpression *expression;
+} StrategyEvaluationData;
typedef StrategyEvaluationData *StrategyEvaluation;