Patent US5937401A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5937401A Expired / Lapsed US ⏱️ 0.0 years remaining

Database system with improved methods for filtering duplicates from a tuple stream

Assignee: Sybase Inc
•
Filing: 1996-11-27
•
Granted: 1999-08-10
•
Expires: 2016-11-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A Client/Server Database system is described which includes a Database Server providing methods eliminating duplicates from an ordered tuple stream (e.g., resulting from a query involving a database "join"), without the need for performing an expensive sort operation. Specifically, the system provides a "filter" which eliminates duplicates without having to perform a sort. The filter, which is implemented as an optimization at the level of the query processor, comprises two basic pieces. The first piece, INIT -- FILTER, simply serves to initialize the filter--that is, the piece sets a flag that forces the filter to pass the first tuple encountered and to construct a first key from it. The second piece, FILTER, serves as the actual filter, when the system scans the tuple stream. If the current tuple has the same key as the preceding tuple, then the current tuple is thrown away. Otherwise, the current tuple is passed and a new key is constructed from it. The positions of both INIT -- FILTER and FILTER in a given join order are important. INIT -- FILTER immediately preceeds the scan which initializes the filter; FILTER immediately follows the scan which actually performs the filtering.

Inventors

  • 👤 Richard Hillegas

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 02:20
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/24; G06F16/245; G06F16/2455; G06F16/24553; G06F16/24554; G06F16/24556; G06F16/24568; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99951; Y10S707/99952

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 297 words
In a database system storing a plurality of database tables, each database table comprising a plurality of tuples storing columns of information, each column representing a particular category of information for which each tuple stores a data value, a method for eliminating duplicate tuples from a tuple stream, the method comprising: receiving a query specifying selection criteria for selecting information of interest from the database system, said query specifying that said information of interest is to be selected by a database join operation which joins selected ones of said database tables by one or more columns shared between tables (key columns), said query further specifying that the particular information is to be returned as distinct tuples; determining a join order specifying a sequence indicating how said selected ones of said database tables are to be preferentially scanned by the system for determining which tuples of each said selected ones of said database tables qualify, said join order indicating innermost and outermost tables of the join and being selected so as to guarantee that tuples will stream in order during execution of the query; initializing a filter at the outermost table for said one or more key columns, for forcing the method to pass a first tuple encountered and to construct an initial key from it; attaching the filter to the innermost table, so that the filter is executed for each tuple which qualifies on the innermost table; executing the query for generating a tuple stream satisfying said selection criteria, said executing step including scanning, according to said determined join order, said selected ones of said database tables; and as the innermost table is scanned, executing the filter for filtering duplicate tuples from the tuple stream by discarding those tuples having keys already encountered in the tuple stream.
Claim 2
Dependent Claim 297 words
In a database system storing a plurality of database tables, each database table comprising a plurality of tuples storing columns of information, each column representing a particular category of information for which each tuple stores a data value, a method for eliminating duplicate tuples from a tuple stream, the method comprising: receiving a query specifying selection criteria for selecting information of interest from the database system, said query specifying that said information of interest is to be selected by a database join operation which joins selected ones of said database tables by one or more columns shared between tables (key columns), said query further specifying that the particular information is to be returned as distinct tuples; determining a join order specifying a sequence indicating how said selected ones of said database tables are to be preferentially scanned by the system for determining which tuples of each said selected ones of said database tables qualify, said join order indicating innermost and outermost tables of the join and being selected so as to guarantee that tuples will stream in order during execution of the query; initializing a filter at the outermost table for said one or more key columns, for forcing the method to pass a first tuple encountered and to construct an initial key from it; attaching the filter to the innermost table, so that the filter is executed for each tuple which qualifies on the innermost table; executing the query for generating a tuple stream satisfying said selection criteria, said executing step including scanning, according to said determined join order, said selected ones of said database tables; and as the innermost table is scanned, executing the filter for filtering duplicate tuples from the tuple stream by discarding those tuples having keys already encountered in the tuple stream.
Claim 3
Dependent Claim 19 words
The method of claim 1, wherein said query comprises a structured query language (SQL) statement including a DISTINCT command.
Claim 4
Dependent Claim 21 words
The method of claim 1, wherein said one or more columns shared between tables comprises a single column shared between tables.
Claim 5
Dependent Claim 22 words
The method of claim 1, wherein said one or more columns shared between tables comprises two or more columns shared between tables.
Claim 6
Dependent Claim 25 words
The method of claim 1, wherein said determining a join order step includes: determining by a optimizer, an optimal join order for executing the query.
Claim 7
Dependent Claim 61 words
The method of claim 1, wherein said executing the filter step includes: constructing a key for each tuple; if the key has changed from that of a previous key, passing the tuple into the tuple stream; and if the key has not changed from that of a previous key, discarding the tuple, so that it is eliminated from the tuple stream.
Claim 8
Dependent Claim 24 words
The method of claim 1, wherein said query comprises a structured query language (SQL) statement having a general form of: SELECT DISTINCT FROM WHERE.
Claim 9
Dependent Claim 19 words
The method of claim 1, wherein duplicate tuples are eliminated from the tuple stream without sorting the tuple stream.
Claim 10
Dependent Claim 19 words
The method of claim 1, wherein duplicate tuples are eliminated from the tuple stream without hashing keys for lookup.
Claim 11
Dependent Claim 38 words
The method of claim 1, further comprising: determining before application of the filter, whether the tuple stream is already unique; and if the tuple steam is already known to be unique, passing all tuples of the tuple stream.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-08-09 2003-02-08 2003-08-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-08-09 2007-02-08 2007-08-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-08-09 2011-02-08 2011-08-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag