From: | jwieck(at)debis(dot)com (Jan Wieck) |
---|---|
To: | maillist(at)candle(dot)pha(dot)pa(dot)us (Bruce Momjian) |
Cc: | jwieck(at)debis(dot)com, Inoue(at)tpf(dot)co(dot)jp, hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] What about LIMIT in SELECT ? |
Date: | 1998-10-22 08:53:10 |
Message-ID: | m0zWGUY-000EBPC@orion.SAPserv.Hamburg.dsh.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs pgsql-hackers |
> Jan, we found that I am having to require an initdb for the INET/CIDR
> type, so if you want stuff to change the views/rules for the limit
> addition post 6.4, please send them in and I will apply them.
>
> You clearly have the syntax down, so I think you should go ahead.
This is the part that will enable post 6.4 add of the
LIMIT stuff without initdb.
Regression tested.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck(at)debis(dot)com (Jan Wieck) #
diff -cr src.orig/backend/nodes/copyfuncs.c src/backend/nodes/copyfuncs.c
*** src.orig/backend/nodes/copyfuncs.c Fri Oct 16 11:53:40 1998
--- src/backend/nodes/copyfuncs.c Fri Oct 16 13:32:35 1998
***************
*** 1578,1583 ****
--- 1578,1586 ----
newnode->unionClause = temp_list;
}
+ Node_Copy(from, newnode, limitOffset);
+ Node_Copy(from, newnode, limitCount);
+
return newnode;
}
diff -cr src.orig/backend/nodes/outfuncs.c src/backend/nodes/outfuncs.c
*** src.orig/backend/nodes/outfuncs.c Fri Oct 16 11:53:40 1998
--- src/backend/nodes/outfuncs.c Fri Oct 16 13:30:50 1998
***************
*** 259,264 ****
--- 259,268 ----
appendStringInfo(str, (node->hasSubLinks ? "true" : "false"));
appendStringInfo(str, " :unionClause ");
_outNode(str, node->unionClause);
+ appendStringInfo(str, " :limitOffset ");
+ _outNode(str, node->limitOffset);
+ appendStringInfo(str, " :limitCount ");
+ _outNode(str, node->limitCount);
}
static void
diff -cr src.orig/backend/nodes/readfuncs.c src/backend/nodes/readfuncs.c
*** src.orig/backend/nodes/readfuncs.c Fri Oct 16 11:53:40 1998
--- src/backend/nodes/readfuncs.c Fri Oct 16 13:31:43 1998
***************
*** 163,168 ****
--- 163,174 ----
token = lsptok(NULL, &length); /* skip :unionClause */
local_node->unionClause = nodeRead(true);
+ token = lsptok(NULL, &length); /* skip :limitOffset */
+ local_node->limitOffset = nodeRead(true);
+
+ token = lsptok(NULL, &length); /* skip :limitCount */
+ local_node->limitCount = nodeRead(true);
+
return local_node;
}
diff -cr src.orig/include/nodes/parsenodes.h src/include/nodes/parsenodes.h
*** src.orig/include/nodes/parsenodes.h Fri Oct 16 11:53:58 1998
--- src/include/nodes/parsenodes.h Fri Oct 16 13:35:32 1998
***************
*** 60,65 ****
--- 60,67 ----
List *unionClause; /* unions are linked under the previous
* query */
+ Node *limitOffset; /* # of result tuples to skip */
+ Node *limitCount; /* # of result tuples to return */
/* internal to planner */
List *base_rel_list; /* base relation list */
***************
*** 639,644 ****
--- 641,648 ----
char *portalname; /* the portal (cursor) to create */
bool binary; /* a binary (internal) portal? */
bool unionall; /* union without unique sort */
+ Node *limitOffset; /* # of result tuples to skip */
+ Node *limitCount; /* # of result tuples to return */
} SelectStmt;
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 1998-10-22 13:52:14 | Re: [HACKERS] What about LIMIT in SELECT ? |
Previous Message | Bruce Momjian | 1998-10-21 06:09:26 | Re: [HACKERS] What about LIMIT in SELECT ? |
From | Date | Subject | |
---|---|---|---|
Next Message | Jan Wieck | 1998-10-22 10:30:38 | Re: [HACKERS] psql \d command |
Previous Message | Jan Wieck | 1998-10-22 08:50:17 | Re: [HACKERS] ACL's |