Skip to content

Commit 3f9b5c0

Browse files
committed
Version 1.0
1 parent 27ccbd0 commit 3f9b5c0

File tree

5 files changed

+35
-26
lines changed

5 files changed

+35
-26
lines changed

Diff for: distlib.sqbpro

+21-8
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,42 @@ select lcseql('cärpenter', 'shärpener');
2121

2222
select * from subseq('ABC');
2323

24+
WITH orig_ AS (SELECT 'Z''Hansrüed' AS orig),
25+
perm_ AS (SELECT orig, permut FROM perm(orig) JOIN orig_ ON 1=1)
26+
SELECT * FROM perm_;
27+
2428
DROP TABLE IF EXISTS perm_gen;
2529
CREATE TABLE IF NOT EXISTS perm_gen AS
2630
WITH orig_ AS (SELECT 'Gerät' AS orig),
2731
perm_ AS (SELECT orig, permut FROM perm(orig) JOIN orig_ ON 1=1)
2832
SELECT * FROM perm_;
2933

34+
WITH orig_ AS (SELECT 'Geräte' AS orig),
35+
perm_ AS (SELECT orig, permut FROM perm(orig) JOIN orig_ ON 1=1)
36+
SELECT * FROM (
37+
SELECT orig, permut, orig||permut test1, lcstr(orig, permut) lcstr, lcstrl(orig, permut) lcstrl,
38+
lcseq(orig, permut) lcseq, lcseql(orig, permut) lcseql FROM perm_
39+
) WHERE permut = 'tGeäer';
40+
;
41+
select lcstr('Geräte','tGeäer');
42+
3043
--CREATE TABLE IF NOT EXISTS perm_test AS
3144
--WITH orig_ AS (SELECT 'Z''Hansrüedi' AS orig),
3245
--perm_ AS (SELECT orig, permut FROM perm(orig) JOIN orig_ ON 1=1)
33-
--SELECT * FROM perm_;
34-
35-
--SELECT orig, permut, lcstr(orig, permut) lcstr
36-
--,lcseq(orig, permut) lcseq
46+
--SELECT * FROM perm_;
47+
48+
--SELECT orig, permut, lcstr(orig, permut) lcstr
49+
--,lcseq(orig, permut) lcseq
3750
--FROM perm_gen;
38-
51+
3952
DROP TABLE IF EXISTS perm_test;
4053
CREATE TABLE IF NOT EXISTS perm_test AS
41-
SELECT orig, permut, lcstr(orig, permut) lcstr, lcseq(orig, permut) lcseq ,
54+
SELECT orig, permut, lcstr(orig, permut) lcstr, lcseq(orig, permut) lcseq ,
4255
lcstrl(orig, permut) lcstrl, lcseql(orig, permut) lcseql, lsim(orig, permut) lsim,
4356
dlsim(orig, permut) dlsim, jsim(orig, permut) jsim, jwsim(orig, permut) jwsim FROM perm_gen
4457
;
45-
46-
--SELECT * FROM perm_test;
58+
59+
--SELECT * FROM perm_test;
4760

4861
DROP TABLE IF EXISTS subseq_gen;
4962
CREATE TABLE IF NOT EXISTS subseq_gen AS

Diff for: distlib_64.dll

0 Bytes
Binary file not shown.

Diff for: lcsubstr.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ using std::string;
1111
using std::vector;
1212
using std::max;
1313

14-
// Function to find longest common subsequence.
14+
// Function to find longest common substring.
1515
string lcstr(const string &str1, const string &str2)
1616
{
17-
if (str1 == "" || str2 == "")
18-
return "";
19-
structRet ret;
20-
ret = lcs2_length_(str1, str2);
21-
vector<string> str1v = utf8_split(str1);
22-
return vect2str(slice(str1v, ret.start, ret.start + ret.max - 1));
17+
if (str1 == "" || str2 == "")
18+
return "";
19+
structRet ret;
20+
ret = lcs2_length_(str1, str2);
21+
vector<string> str1v = utf8_split(str1);
22+
return vect2str(slice(str1v, ret.start, ret.start + ret.max - 1));
2323
}
2424

2525

Diff for: perm.cpp

+5-9
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ struct perm_cursor {
7272
sqlite3_int64 iRowid; /* The rowid */
7373
string perm;
7474
sqlite3_int64 nrows;
75-
vector<string> permv;
76-
vector<string>::iterator it;
75+
vector<string> permv;
7776
};
7877

7978

@@ -140,7 +139,8 @@ int permClose(sqlite3_vtab_cursor *cur){
140139
int permNext(sqlite3_vtab_cursor *cur){
141140
perm_cursor *pCur = (perm_cursor*)cur;
142141
pCur->iRowid++;
143-
pCur->it++;
142+
//pCur->it++;
143+
next_permutation(pCur->permv.begin(), pCur->permv.end());
144144
return SQLITE_OK;
145145
}
146146

@@ -154,10 +154,7 @@ int permColumn(
154154
int i /* Which column to return */
155155
){
156156
perm_cursor *pCur = (perm_cursor*)cur;
157-
if (i==0) { // only one column to return
158-
if (pCur->iRowid > 0 ){
159-
next_permutation(pCur->permv.begin(), pCur->permv.end());
160-
}
157+
if (i==0) { // only one column to return
161158
pCur->perm = vect2str(pCur->permv);
162159
sqlite3_result_text(ctx, pCur->perm.c_str(), pCur->perm.size(),0);
163160
}
@@ -208,8 +205,7 @@ int permFilter(
208205
if(l>0 && l <= max_len)
209206
{
210207
pCur->permv = utf8_split(s);
211-
sort(pCur->permv.begin(), pCur->permv.end()); // initial sorting is important !!!
212-
pCur->it = pCur->permv.begin();
208+
sort(pCur->permv.begin(), pCur->permv.end()); // initial sorting is important !!!
213209
pCur->perm = vect2str(pCur->permv);
214210
pCur->nrows = (l > 0) ? factorial(l) : 0;
215211
pCur->iRowid = 0;

Diff for: pylcs.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// https://github.com/Meteorix/pylcs
1+
// L. Schiffmann, July 2021
22

33
#ifndef PYLCS_HPP
44
#define PYLCS_HPP
55

66
#include <string>
77

8-
// L. Schiffmann
8+
// L. Schiffmann, July 2021
99
// struct for max length and start position
1010

1111
struct structRet {

0 commit comments

Comments
 (0)