diff options
Diffstat (limited to 'src/include/access/strat.h')
| -rw-r--r-- | src/include/access/strat.h | 29 |
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; |
