diff options
| author | Heikki Linnakangas | 2011-11-03 11:16:28 +0000 |
|---|---|---|
| committer | Heikki Linnakangas | 2011-11-03 11:42:15 +0000 |
| commit | 4429f6a9e3e12bb4af6e3677fbc78cd80f160252 (patch) | |
| tree | a2e272129e5515f7ef2f4e09989bddf0fd8158ea /src/backend/nodes | |
| parent | 43342891861cc2d08dea2b1c8b190e15e5a36551 (diff) | |
Support range data types.
Selectivity estimation functions are missing for some range type operators,
which is a TODO.
Jeff Davis
Diffstat (limited to 'src/backend/nodes')
| -rw-r--r-- | src/backend/nodes/copyfuncs.c | 14 | ||||
| -rw-r--r-- | src/backend/nodes/equalfuncs.c | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 24ac5295f60..63958c3afc6 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -3055,6 +3055,17 @@ _copyCreateEnumStmt(CreateEnumStmt *from) return newnode; } +static CreateRangeStmt * +_copyCreateRangeStmt(CreateRangeStmt *from) +{ + CreateRangeStmt *newnode = makeNode(CreateRangeStmt); + + COPY_NODE_FIELD(typeName); + COPY_NODE_FIELD(params); + + return newnode; +} + static AlterEnumStmt * _copyAlterEnumStmt(AlterEnumStmt *from) { @@ -4297,6 +4308,9 @@ copyObject(void *from) case T_CreateEnumStmt: retval = _copyCreateEnumStmt(from); break; + case T_CreateRangeStmt: + retval = _copyCreateRangeStmt(from); + break; case T_AlterEnumStmt: retval = _copyAlterEnumStmt(from); break; diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 4052a9a1fc9..f3a34a12e20 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -1439,6 +1439,15 @@ _equalCreateEnumStmt(CreateEnumStmt *a, CreateEnumStmt *b) } static bool +_equalCreateRangeStmt(CreateRangeStmt *a, CreateRangeStmt *b) +{ + COMPARE_NODE_FIELD(typeName); + COMPARE_NODE_FIELD(params); + + return true; +} + +static bool _equalAlterEnumStmt(AlterEnumStmt *a, AlterEnumStmt *b) { COMPARE_NODE_FIELD(typeName); @@ -2826,6 +2835,9 @@ equal(void *a, void *b) case T_CreateEnumStmt: retval = _equalCreateEnumStmt(a, b); break; + case T_CreateRangeStmt: + retval = _equalCreateRangeStmt(a, b); + break; case T_AlterEnumStmt: retval = _equalAlterEnumStmt(a, b); break; |
